Pag-host sa usa ka website sa imong home router

Dugay na kong gusto nga "makahikap sa akong mga kamot" sa mga serbisyo sa Internet pinaagi sa pag-set up sa usa ka web server gikan sa wala ug ipagawas kini sa Internet. Niini nga artikulo gusto nakong ipaambit ang akong kasinatian sa pagbag-o sa usa ka home router gikan sa usa ka kaayo nga gamit nga gamit ngadto sa usa ka halos bug-os nga server.

Nagsugod ang tanan sa kamatuoran nga ang TP-Link TL-WR1043ND router, nga nagserbisyo nga matinud-anon, wala na makatubag sa mga panginahanglanon sa usa ka home network; Gusto nako ang usa ka 5 GHz band ug dali nga pag-access sa mga file sa usa ka storage device nga konektado sa router . Pagkahuman sa pagtan-aw sa mga espesyal nga forum (4pda, ixbt), mga site nga adunay mga pagsusi ug pagtan-aw sa lainlaing mga lokal nga tindahan, nakahukom ko nga paliton ang Keenetic Ultra.

Ang maayo nga mga pagsusi gikan sa mga tag-iya nagtrabaho pabor sa kini nga partikular nga aparato:

  • walay mga problema sa sobrang kainit (dinhi kinahanglan namon nga biyaan ang mga produkto sa Asus);
  • kasaligan sa operasyon (dinhi akong gitabok ang TP-Link);
  • sayon ​​nga i-set up (nahadlok ko nga dili nako makaya ug gi-cross out ang Microtik).

Kinahanglan nakong dawaton ang mga disbentaha:

  • walay WiFi6, gusto nakong kuhaon ang mga ekipo nga adunay reserba alang sa umaabot;
  • 4 LAN ports, gusto ko og dugang, apan kini dili na usa ka home category.

Ingon usa ka sangputanan, nakuha namon kini nga "server":

Pag-host sa usa ka website sa imong home router

  • sa wala mao ang optical terminal sa Rostelecom;
  • sa tuo mao ang among eksperimento nga router;
  • usa ka 2 GB m.128 SSD nga naghigda, gibutang sa usa ka USB3 nga kahon gikan sa Aliexpress, konektado sa router gamit ang wire, karon kini hapsay nga gitaod sa bungbong;
  • sa foreground usa ka extension cord nga adunay independente nga disconnected sockets, ang wire gikan niini moadto sa usa ka barato nga UPS;
  • sa luyo adunay usa ka hugpong sa mga twisted pair nga mga kable - sa yugto sa pag-ayo sa apartment, giplano dayon nako ang mga socket sa RJ45 sa mga dapit diin ang mga ekipo unta nahimutang, aron dili magdepende sa WiFi nga nagkatag.

Mao nga, kami adunay kagamitan, kinahanglan namon nga i-configure kini:

Pag-host sa usa ka website sa imong home router

  • Ang una nga pag-setup sa router mokabat mga 2 minuto, gipakita namon ang mga parameter sa koneksyon sa provider (ang akong optical terminal gibalhin sa bridge mode, ang koneksyon sa PPPoE nagpataas sa router), ang ngalan sa WiFi network ug ang password - sa panguna mao kana , ang router nagsugod ug nagtrabaho.

Pag-host sa usa ka website sa imong home router

Gibutang namon ang pagpasa sa mga eksternal nga pantalan sa mga pantalan sa router mismo sa seksyon nga "Mga lagda sa network - Pagpasa":

Pag-host sa usa ka website sa imong home router

Pag-host sa usa ka website sa imong home router

Karon makapadayon kami sa "advanced" nga bahin, kung unsa ang gusto nako gikan sa router:

  1. pagpaandar sa usa ka gamay nga NAS alang sa usa ka home network;
  2. paghimo sa mga gimbuhaton sa web server alang sa daghang pribadong mga panid;
  3. personal nga cloud functionality alang sa pag-access sa personal nga datos gikan sa bisan asa sa kalibutan.

Ang una gipatuman gamit ang built-in nga mga himan, nga wala magkinahanglan daghang paningkamot:

  • Nagkuha kami usa ka drive nga gituyo alang niini nga papel (flash drive, memory card sa usa ka card reader, hard drive o SSD sa usa ka eksternal nga kahon ug i-format kini sa Ext4 gamit ang MiniTool Partition Wizard Libre nga Edisyon (Wala koy kompyuter nga adunay Linux sa kamot, posible kini sa mga built-in nga himan). Sama sa akong nasabtan, sa panahon sa operasyon ang sistema nagsulat lamang sa mga troso sa flash drive, mao nga kung imong limitahan kini human sa pag-set up sa sistema, mahimo usab nimo gamiton ang mga memory card kung nagplano ka nga magsulat og daghan ug kanunay sa drive - usa ka SSD o Mas maayo ang HDD.

Pag-host sa usa ka website sa imong home router

Pagkahuman niini, among gikonektar ang drive sa router ug giobserbahan kini sa screen sa monitor sa system

Pag-host sa usa ka website sa imong home router

Pag-klik sa "USB drives and printers" sa seksyon nga "Applications" ug i-configure ang bahin sa seksyon nga "Windows Network":

Pag-host sa usa ka website sa imong home router

Ug kami adunay usa ka kapanguhaan sa network nga magamit gikan sa mga kompyuter sa Windows, nga nagkonektar ingon usa ka disk kung kinahanglan: net use y: \192.168.1.1SSD /persistent:oo

Ang katulin sa ingon nga usa ka improvised nga NAS igo na alang sa paggamit sa balay; sa usa ka wire kini naggamit sa tibuuk nga gigabit, sa WiFi ang katulin mga 400-500 megabits.

Pag-host sa usa ka website sa imong home router

Ang pag-set up sa storage maoy usa sa gikinahanglang mga lakang aron ma-configure ang server, unya kinahanglan nato:
- pagpalit ug domain ug usa ka static nga IP address (mahimo nimo nga wala kini pinaagi sa paggamit sa Dynamic DNS, apan ako adunay usa ka static nga IP, mao nga kini dali nga gamiton libre nga serbisyo sa Yandex - pinaagi sa pagdelegar sa domain didto, makadawat kami og DNS hosting ug mail sa among domain);

Pag-host sa usa ka website sa imong home router

- i-configure ang mga DNS server ug idugang ang usa ka rekord nga nagtudlo sa imong IP:

Pag-host sa usa ka website sa imong home router

Nagkinahanglan kini og pipila ka oras aron ang mga setting sa domain ug DNS delegation moepekto, mao nga dungan namong gi-set up ang router.

Una, kinahanglan natong i-install ang Entware repository, diin mahimo natong i-install ang gikinahanglan nga mga pakete sa router. Gipahimuslan nako uban niini nga panudlo, wala lang i-upload ang package sa pag-install pinaagi sa FTP, apan naghimo usa ka folder nga direkta sa kaniadto konektado nga network drive ug gikopya ang file didto sa naandan nga paagi.

Pag-angkon og access pinaagi sa SSH, usba ang password gamit ang passwd command ug i-install ang tanang gikinahanglan nga mga package gamit ang opkg install [mga pangalan sa package] nga sugo:

Pag-host sa usa ka website sa imong home router

Atol sa pag-setup, ang mosunod nga mga pakete gi-install sa router (ang output sa opkg list-installed command):

Listahan sa mga pakete
bash - 5.0-3
busybox - 1.31.1-1
ca-bundle - 20190110-2
ca-certificate - 20190110-2
coreutils - 8.31-1
coreutils-mktemp - 8.31-1
cron - 4.1-3
kulot - 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-puno - 1.11.1-4
libintl-puno - 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
opt-ndmsv2 - 1.0-12
php7 - 7.4.3-1
php7-mod-openssl - 7.4.3-1
poorbox - 1.31.1-2
terminfo - 6.2-1
zlib - 1.2.11-3
zoneinfo-asia - 2019c-1
zoneinfo-europe - 2019c-1

Tingali adunay usa ka butang nga sobra dinhi, apan adunay daghang luna sa pagmaneho, mao nga wala ako maghasol sa pagtan-aw niini.

Pagkahuman sa pag-instalar sa mga pakete, among gi-configure ang nginx, gisulayan nako kini sa duha ka mga domain - ang ikaduha gi-configure sa https, ug sa pagkakaron adunay usa ka stub. Ang mga internal nga pantalan 81 ug 433 gigamit imbes nga 80 ug 443, tungod kay ang admin panel sa router nagbitay sa mga normal nga pantalan.

etc/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;

Aron magtrabaho ang site pinaagi sa https, gigamit nako ang bantog nga dehydrated script, gi-install kini gamit kini nga panudlo. Kini nga proseso wala magpahinabog bisan unsang mga kalisud, napandol ra ako sa kamatuoran nga sa teksto sa script alang sa pagtrabaho sa akong router kinahanglan nimo nga i-comment ang linya sa file /opt/etc/ssl/openssl.cnf:

[openssl_conf]
#engines=engines

Ug namatikdan nako nga ang pagmugna og dhparams.pem nga adunay command "openssl dhparam -out dhparams.pem 2048" sa akong router nagkinahanglan og labaw sa 2 ka oras, kung dili alang sa pag-uswag nga timailhan, mawad-an ako og pasensya ug mag-reboot.

Human madawat ang mga sertipiko, i-restart ang nginx gamit ang command "/opt/etc/init.d/S80nginx restart". Sa prinsipyo, kompleto na ang setup, pero wala pay website - kung ibutang nato ang index.html file sa /share/nginx/html directory, makakita ta ug stub.

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>

Aron nindot ibutang ang impormasyon, mas sayon ​​para sa dili propesyonal nga sama nako nga mogamit ug andam nga mga templates; human sa dugay nga pagpangita sa lain-laing mga katalogo, akong nakit-an templatemo.com - adunay usa ka maayo nga pagpili sa libre nga mga templates nga wala magkinahanglan og attribution (nga talagsa ra sa Internet; kadaghanan sa mga templates sa lisensya nagkinahanglan kanimo sa pagluwas sa usa ka link sa kapanguhaan diin sila nakuha).

Gipili namo ang usa ka angay nga template - adunay mga alang sa lain-laing mga kaso, i-download ang archive ug i-unpack kini sa /share/nginx/html directory, mahimo nimo kini gikan sa imong computer, unya i-edit ang template (dinhi kinahanglan nimo ang gamay nga kahibalo sa HTML aron dili maguba ang istruktura) ug ilisan ang mga graphic sama sa gipakita sa numero sa ubos.

Pag-host sa usa ka website sa imong home router

Katingbanan: ang router angayan alang sa pag-host sa usa ka gaan nga website niini, sa prinsipyo - kung wala nimo gipaabut ang usa ka dako nga karga, mahimo nimo instalar ug php, ug pag-eksperimento sa mas komplikado nga mga proyekto (gitan-aw nako ang nextcloud/owncloud, morag adunay malampuson nga mga instalasyon sa maong hardware). Ang abilidad sa pag-instalar sa mga pakete nagdugang sa kapuslanan niini - pananglitan, kung gikinahanglan aron mapanalipdan ang RDP port sa usa ka PC sa usa ka lokal nga network, akong gi-install ang knockd sa router - ug ang port forwarding sa PC giablihan lamang human sa port knocking.

Ngano nga usa ka router ug dili usa ka regular nga PC? Ang usa ka router usa sa pipila ka mga piraso sa kompyuter sa hardware nga nagtrabaho sa tibuok orasan sa daghang mga apartment; ang usa ka router sa balay kasagaran hingpit nga hilom ug ang usa ka gaan nga site nga wala’y usa ka gatos nga pagbisita matag adlaw dili makahasol niini.

Source: www.habr.com

Idugang sa usa ka comment