Hosting situs wéb dina router bumi anjeun

Kuring geus lila hayang "ngarampa leungeun kuring" dina ladenan Internet ku nyetel hiji web server ti scratch tur ngaleupaskeun ka Internet. Dina artikel ieu abdi hoyong bagikeun pangalaman abdi di transforming router imah tina alat kacida fungsi kana server ampir full-fledged.

Éta sadayana dimimitian ku kanyataan yén router TP-Link TL-WR1043ND, anu parantos satia, henteu nyumponan kabutuhan jaringan asal; Abdi hoyong pita 5 GHz sareng aksés gancang kana file dina alat panyimpen anu nyambung ka router. . Saatos ningali forum khusus (4pda, ixbt), situs kalayan ulasan sareng ningali rupa-rupa toko lokal, kuring mutuskeun mésér Keenetic Ultra.

ulasan alus ti nu boga digawé di ni'mat alat husus ieu:

  • teu aya masalah sareng overheating (di dieu urang kedah ngantunkeun produk Asus);
  • reliabiliti operasional (di dieu kuring meuntas TP-Link);
  • gampang pikeun nyetél (Kuring sieun teu bisa nanganan eta sarta meuntas kaluar Microtik).

Kuring kungsi datang ka istilah jeung kalemahan:

  • euweuh WiFi6, Kuring hayang nyandak parabot kalawan cagar pikeun mangsa nu bakal datang;
  • 4 palabuhan LAN, Kuring hayang leuwih, tapi ieu téh euweuh kategori imah.

Hasilna, urang ngagaduhan "server" ieu:

Hosting situs wéb dina router bumi anjeun

  • di kénca nyaéta terminal optik Rostelecom;
  • di katuhu nyaéta router ékspérimén urang;
  • a 2 GB m.128 SSD bohong sabudeureun, disimpen dina kotak USB3 ti Aliexpress, disambungkeun ka router kalawan kawat, ayeuna geus dipasang rapih dina témbok;
  • di foreground mangrupa kabel extension kalawan sockets dipegatkeun mandiri, kawat ti dinya mana kana hiji UPS murah;
  • Di tukang aya kebat kabel twisted pair - dina tahap renovasi apartemen, kuring langsung ngarencanakeun sockets RJ45 di tempat dimana alat nu sakuduna dituju lokasina, ambéh teu gumantung kana WiFi keur littered.

Janten, urang gaduh alat, urang kedah ngonpigurasikeunana:

Hosting situs wéb dina router bumi anjeun

  • Setélan awal router butuh sakitar 2 menit, kami nunjukkeun parameter sambungan ka panyadia (terminal optik kuring dialihkeun kana mode sasak, sambungan PPPoE ngangkat router), nami jaringan WiFi sareng kecap akses - dasarna éta. , router dimimitian up na jalan.

Hosting situs wéb dina router bumi anjeun

Kami nyetél neraskeun palabuhan éksternal ka palabuhan tina router sorangan dina bagian "Aturan Jaringan - Neraskeun":

Hosting situs wéb dina router bumi anjeun

Hosting situs wéb dina router bumi anjeun

Ayeuna urang tiasa ngaléngkah ka bagian "maju", anu kuring hoyongkeun tina router:

  1. fungsionalitas NAS leutik pikeun jaringan asal;
  2. ngajalankeun fungsi pangladén wéb pikeun sababaraha halaman pribadi;
  3. fungsionalitas awan pribadi pikeun ngakses data pribadi ti mana waé di dunya.

Anu kahiji dilaksanakeun nganggo alat anu diwangun, tanpa peryogi seueur usaha:

  • Kami nyandak drive anu dimaksudkeun pikeun peran ieu (flash drive, kartu mémori dina pamaca kartu, hard drive atanapi SSD dina kotak éksternal sareng pormat kana Ext4 nganggo MiniTool Partition Wizard Gratis Edition (Kuring teu boga komputer kalawan Linux Ubuntu dina leungeun, éta mungkin kalawan diwangun-di parabot). Sakumaha anu kuring kahartos, nalika operasi sistem nyerat ngan ukur log kana flash drive, janten upami anjeun ngawatesan aranjeunna saatos nyetél sistem, anjeun ogé tiasa nganggo kartu mémori upami anjeun badé nyerat seueur sareng sering kana drive - SSD atanapi HDD langkung saé.

Hosting situs wéb dina router bumi anjeun

Saatos ieu, urang sambungkeun drive ka router sareng tingali dina layar monitor sistem

Hosting situs wéb dina router bumi anjeun

Pencét kana "USB drive sareng printer" ka bagian "Aplikasi" sareng konpigurasikeun pangsa dina bagian "Windows Network":

Hosting situs wéb dina router bumi anjeun

Sareng kami gaduh sumber jaringan anu tiasa dianggo tina komputer Windows, nyambungkeun salaku disk upami diperyogikeun: net use y: \192.168.1.1SSD /persistent:yes

Laju NAS improvisasi sapertos kitu cekap pikeun dianggo di bumi; ngalangkungan kawat nganggo sadayana gigabit, langkung laju WiFi kirang langkung 400-500 megabit.

Hosting situs wéb dina router bumi anjeun

Nyetél panyimpenan mangrupikeun salah sahiji léngkah anu dipikabutuh pikeun ngonpigurasikeun server, teras urang peryogi:
- meuli domain a sareng alamat IP statik (anjeun tiasa ngalakukeun tanpa ieu nganggo DNS Dinamis, tapi kuring parantos ngagaduhan IP statik, janten tétéla langkung gampang dianggo. jasa Yandex bébas - ku delegating domain aya, kami nampi DNS hosting sareng mail dina domain kami);

Hosting situs wéb dina router bumi anjeun

- ngonpigurasikeun server DNS sareng tambahkeun rékaman A nunjuk ka IP anjeun:

Hosting situs wéb dina router bumi anjeun

Butuh sababaraha jam kanggo setelan delegasi domain sareng DNS tiasa dianggo, janten urang sakaligus nyetél router.

Kahiji, urang kudu masang Repository Entware, ti mana urang tiasa install bungkusan diperlukeun dina router dina. Kuring ngamangpaatkeun kalawan parentah ieu, ngan henteu unggah pakét pamasangan via FTP, tapi nyiptakeun polder langsung dina drive jaringan anu dihubungkeun saacanna sareng nyalin file éta dina cara biasa.

Saatos nampi aksés liwat SSH, robih kecap akses nganggo paréntah passwd sareng pasang sadaya bungkusan anu diperyogikeun kalayan paréntah opkg install [ngaran pakét]:

Hosting situs wéb dina router bumi anjeun

Salila pangaturan, bungkusan di handap ieu dipasang dina router (kaluaran paréntah anu dipasang daptar opkg):

Daptar bungkusan
bash - 5.0-3
busybox - 1.31.1-1
ca-kebat - 20190110-2
ca-sertipikat - 20190110-2
coreutils - 8.31-1
coreutils-mktemp - 8.31-1
cron - 4.1-3
ngagulung - 7.69.0-1
diffutils - 3.7-2
dropbear - 2019.78-3
entware-release - 1.0-2
findutils - 4.7.0-1
glib2 - 2.58.3-5
grep - 3.4-1
ldconfig - 2.27-9
libattr - 2.4.48-2
libblkid - 2.35.1-1
libc - 2.27-9
libcurl - 7.69.0-1
libffi - 3.2.1-4
libgcc - 8.3.0-9
libiconv-pinuh - 1.11.1-4
libintl-pinuh - 0.19.8.1-2
liblua - 5.1.5-7
libmbedtls - 2.16.5-1
libmount - 2.35.1-1
libncurses - 6.2-1
libncursesw - 6.2-1
libndm - 1.1.10-1a
libopenssl - 1.1.1d-2
libopenssl-conf - 1.1.1d-2
libpcap - 1.9.1-2
libpcre - 8.43-2
libpcre2 - 10.34-1
libpthread - 2.27-9
libreadline - 8.0-1a
librt - 2.27-9
libslang2 - 2.3.2-4
libssh2 - 1.9.0-2
libssp - 8.3.0-9
libstdcpp - 8.3.0-9
libuid - 2.35.1-1
libxml2 - 2.9.10-1
lokal - 2.27-9
mc - 4.8.23-2
ndmq - 1.0.2-5a
nginx - 1.17.8-1
openssl-util - 1.1.1d-2
opkg — 2019-06-14-dcbc142e-2
milih-ndmsv2 - 1.0-12
php7 - 7.4.3-1
php7-mod-openssl - 7.4.3-1
poorbox - 1.31.1-2
terminologi - 6.2-1
zlib - 1.2.11-3
zoneinfo-asia - 2019c-1
zoneinfo-europe - 2019c-1

Meureun aya hal superfluous dieu, tapi aya loba spasi dina drive, jadi kuring teu ganggu pilari kana eta.

Saatos masang bungkusan, urang ngonpigurasikeun nginx, kuring nyobian dua domain - anu kadua dikonpigurasi sareng HTTPS, sareng ayeuna aya rintisan. palabuhan internal 81 jeung 433 dipaké gaganti 80 jeung 443, saprak panel admin router ngagantung dina palabuhan normal.

jsb/nginx/nginx.conf

user  nobody;
worker_processes  1;
#error_log  /opt/var/log/nginx/error.log;
#error_log  /opt/var/log/nginx/error.log  notice;
#error_log  /opt/var/log/nginx/error.log  info;
#pid        /opt/var/run/nginx.pid;

events {
    worker_connections  64;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  /opt/var/log/nginx/access.log main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;

server {
    listen 81;
    server_name milkov.su www.milkov.su;
    return 301 https://milkov.su$request_uri;
}

server {
        listen 433 ssl;
        server_name milkov.su;
        #SSL support
        include ssl.conf;
        location / {
            root   /opt/share/nginx/html;
            index  index.html index.htm;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
            }
        }
}
</spoiler>
<spoiler title="etc/nginx/ssl.conf">
ssl_certificate /opt/etc/nginx/certs/milkov.su/fullchain.pem;
ssl_certificate_key /opt/etc/nginx/certs/milkov.su/privkey.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
ssl_dhparam /opt/etc/nginx/dhparams.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_stapling on;

Supados situs tiasa dianggo via https, kuring nganggo skrip dehidrasi anu terkenal, masangna nganggo parentah ieu. Proses ieu henteu nyababkeun kasusah, kuring ngan ukur kasandung kanyataan yén dina téks naskah pikeun damel dina router kuring. Anjeun kudu mairan kaluar garis dina file /opt/etc/ssl/openssl.cnf:

[openssl_conf]
#engines=engines

Na kuring dicatet yén generating dhparams.pem kalawan paréntah "openssl dhparam -out dhparams.pem 2048" dina router kuring nyokot leuwih ti 2 jam, lamun henteu keur indikator kamajuan, Abdi geus leungit kasabaran tur rebooted.

Saatos nampi sertipikat, balikan deui nginx ku paréntah "/opt/etc/init.d/S80nginx restart". Sacara prinsip, setelan geus réngsé, tapi teu acan aya ramatloka - lamun urang nempatkeun file index.html dina /share/nginx/html diréktori, urang bakal ningali taratas a.

index.html

<!DOCTYPE html>
<html>
<head>
<title>Тестовая страничка!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Тестовая страничка!</h1>
<p>Это простая статическая тестовая страничка, абсолютно ничего интересного.</p>
</body>
</html>

Pikeun nempatkeun inpormasi anu saé, langkung gampang pikeun non-profésional sapertos kuring ngagunakeun témplat anu siap-siap; saatos milarian panjang dina sababaraha katalog, kuring mendakan templatemo.com - aya pilihan anu saé pikeun témplat gratis anu henteu meryogikeun atribusi (anu jarang aya dina Internét; kalolobaan témplat dina lisénsi ngabutuhkeun anjeun pikeun ngahemat tautan kana sumber daya anu dicandak).

Kami milih témplat anu cocog - aya anu pikeun sababaraha kasus, unduh arsip sareng bongkar kana diréktori /share/nginx/html, anjeun tiasa ngalakukeun ieu tina komputer anjeun, teras édit témplat (di dieu anjeun peryogi pangaweruh minimal. tina HTML ku kituna teu megatkeun struktur) jeung ngaganti grafik sakumaha ditémbongkeun dina gambar di handap ieu.

Hosting situs wéb dina router bumi anjeun

Ringkesan: router anu cukup cocog pikeun hosting ramatloka lampu on eta, prinsipna mah - lamun beban badag teu diperkirakeun, anjeun tiasa. masang sareng php, sarta ékspérimén kalawan proyék leuwih kompleks (Kuring nempo nextcloud / owncloud, sigana aya instalasi suksés dina hardware misalna). Kamampuhan pikeun masang bungkusan naek mangpaatna - contona, nalika perlu ngajaga port RDP tina PC dina jaringan lokal, abdi dipasang knockd on router dina - sarta port diteruskeun kana PC dibuka ngan sanggeus port knocking.

Naha router teu PC biasa? Router mangrupikeun salah sahiji ti saeutik hardware komputer anu tiasa dianggo sapanjang jam di seueur apartemen; router bumi biasana jempé sareng situs anu hampang kalayan kirang ti saratus kunjungan per dinten moal ngaganggu pisan.

sumber: www.habr.com

Tambahkeun komentar