Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

Интернэтийн үйлчилгээнүүдийг эхнээс нь вэб сервер суулгаж, интернетэд гаргах замаар "гартаа хүрэхийг" би эртнээс хүсч байсан. Энэ нийтлэлд би гэрийн чиглүүлэгчийг өндөр ажиллагаатай төхөөрөмжөөс бараг бүрэн сервер болгон хувиргах туршлагаа хуваалцахыг хүсч байна.

Энэ бүхэн үнэнчээр үйлчилж байсан TP-Link TL-WR1043ND чиглүүлэгч нь гэрийн сүлжээний хэрэгцээг хангахаа больсоноос эхэлсэн; би 5 GHz давтамжтай, чиглүүлэгчтэй холбогдсон хадгалах төхөөрөмж дээрх файлуудад хурдан хандахыг хүссэн. . Мэргэшсэн форум (4pda, ixbt), тойм бүхий сайтуудыг үзэж, орон нутгийн дэлгүүрүүдийн нэр төрлийг харсны дараа би Keenetic Ultra худалдаж авахаар шийдсэн.

Эзэмшигчдийн сайн тоймууд нь энэ төхөөрөмжийг дэмжсэн:

  • хэт халалтын асуудал байхгүй (энд бид Asus-ийн бүтээгдэхүүнээс татгалзах шаардлагатай болсон);
  • үйл ажиллагааны найдвартай байдал (энд би TP-Link-ийг хассан);
  • тохируулахад хялбар (би үүнийг даван туулж чадахгүй гэж айж, Microtik-ийг хассан).

Би сул талуудтай эвлэрэх ёстой байсан:

  • WiFi6 байхгүй, би ирээдүйд нөөцтэй тоног төхөөрөмж авахыг хүссэн;
  • 4 LAN порт, би илүү ихийг хүсч байсан ч энэ нь гэрийн ангилал байхаа больсон.

Үүний үр дүнд бид энэ "сервер"-тэй болсон:

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

  • зүүн талд Ростелекомын оптик терминал;
  • баруун талд нь бидний туршилтын чиглүүлэгч;
  • Aliexpress-ийн USB2 хайрцагт байрлуулсан 128 ГБ м.3 SSD нь чиглүүлэгчтэй утсаар холбогдсон, одоо хананд сайтар суурилуулсан;
  • урд талд нь бие даан салгагдсан залгуур бүхий өргөтгөлийн утас байгаа бөгөөд үүнээс утас нь хямд UPS руу ордог;
  • цаана нь олон эрчилсэн хос кабель байдаг - орон сууцыг засварлах шатанд би Wi-Fi хог хаягдлаас хамаарахгүйн тулд тоног төхөөрөмж байх ёстой газруудад RJ45 залгууруудыг нэн даруй төлөвлөсөн.

Тиймээс, бидэнд тоног төхөөрөмж байгаа тул бид үүнийг тохируулах хэрэгтэй:

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

  • Чиглүүлэгчийн анхны тохиргоо 2 минут орчим үргэлжилдэг, бид холболтын параметрүүдийг үйлчилгээ үзүүлэгч рүү зааж өгдөг (миний оптик терминал гүүр горимд шилжсэн, PPPoE холболт нь чиглүүлэгчийг өргөдөг), WiFi сүлжээний нэр, нууц үг - үндсэндээ ийм байна. , чиглүүлэгч эхэлж, ажиллаж байна.

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

Бид "Сүлжээний дүрэм - Дамжуулах" хэсэгт гадаад портуудыг чиглүүлэгчийн портууд руу дамжуулахыг тохируулсан.

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

Одоо бид чиглүүлэгчээс миний хүссэн "дэвшилтэт" хэсэг рүү шилжиж болно.

  1. гэрийн сүлжээнд зориулсан жижиг NAS-ийн ажиллагаа;
  2. хэд хэдэн хувийн хуудасны вэб серверийн функцийг гүйцэтгэх;
  3. дэлхийн хаанаас ч хувийн мэдээлэлд хандах хувийн үүлэн функц.

Эхнийх нь маш их хүчин чармайлт шаарддаггүй, суурилуулсан хэрэгслүүдийг ашиглан хэрэгжүүлдэг.

  • Бид энэ үүрэгт зориулагдсан дискийг (флаш диск, карт уншигч дахь санах ойн карт, гадаад хайрцагт хатуу диск эсвэл SSD) аваад Ext4 болгон форматлана. MiniTool хуваалтын шидтэний үнэгүй хувилбар (Надад Линукс бүхий компьютер байхгүй, үүнийг суулгасан хэрэгслүүдээр хийх боломжтой). Миний ойлгож байгаагаар систем нь ажиллах явцад зөвхөн флаш диск рүү лог бичдэг тул хэрэв та системийг тохируулсны дараа тэдгээрийг хязгаарлавал санах ойн картуудыг диск рүү олон удаа бичихээр төлөвлөж байгаа бол SSD эсвэл санах ойн карт ашиглаж болно. HDD илүү сайн.

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

Үүний дараа бид драйвыг чиглүүлэгч рүү холбож, системийн дэлгэцийн дэлгэц дээр ажиглана

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

"Applications" хэсэгт "USB drives and printers" дээр дарж, "Windows Network" хэсэгт хуваалцах тохиргоог хийнэ үү.

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

Мөн бид Windows компьютерээс ашиглах боломжтой сүлжээний нөөцтэй бөгөөд шаардлагатай бол диск болгон холбох боломжтой: цэвэр хэрэглээ y: \192.168.1.1SSD /байнгын:тийм

Ийм хиймэл NAS-ийн хурд нь гэрийн хэрэглээнд хангалттай бөгөөд утсаар бүх гигабитыг ашигладаг, WiFi дээр 400-500 мегабит хурдтай байдаг.

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

Хадгалах санг тохируулах нь серверийг тохируулах шаардлагатай алхмуудын нэг бөгөөд бидэнд дараах зүйлс хэрэгтэй болно:
- домэйн худалдаж авах болон статик IP хаяг (та Динамик DNS ашиглан үүнийг хийхгүйгээр хийж болно, гэхдээ би аль хэдийн статик IP-тэй байсан тул ашиглахад илүү хялбар болсон. үнэгүй Yandex үйлчилгээ - тэнд домэйныг шилжүүлэх замаар, бид өөрсдийн домэйн дээр DNS хостинг болон шуудан хүлээн авдаг);

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

- DNS серверүүдийг тохируулах мөн таны IP руу заасан А бичлэгүүдийг нэмнэ үү:

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

Домэйн болон DNS төлөөлөгчийн тохиргоо хүчин төгөлдөр болох хүртэл хэдэн цаг шаардагдах тул бид чиглүүлэгчийг нэгэн зэрэг тохируулж байна.

Эхлээд бид чиглүүлэгч дээр шаардлагатай багцуудыг суулгаж болох Entware репозиторыг суулгах хэрэгтэй. Би давуу талыг ашигласан энэ зааварчилгааны дагуу, зүгээр л суулгах багцыг FTP-ээр байршуулаагүй, харин өмнө нь холбогдсон сүлжээний драйв дээр шууд хавтас үүсгэж, файлыг ердийн аргаар хуулсан.

SSH-ээр нэвтрэх эрх авсны дараа passwd тушаалаар нууц үгээ сольж, opkg install [package names] тушаалаар шаардлагатай бүх багцуудыг суулгана уу.

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

Тохируулгын явцад чиглүүлэгч дээр дараах багцуудыг суулгасан (opkg жагсаалтад суулгасан тушаалын гаралт):

Багцуудын жагсаалт
bash - 5.0-3
завгүй хайрцаг - 1.31.1-1
ca-багц - 20190110-2
ca-сертификатууд - 20190110-2
coreutils - 8.31-1
coreutils-mktemp - 8.31-1
крон - 4.1-3
буржгар - 7.69.0-1
diffutils - 3.7-2
dropbear - 2019.78-3
програм хангамжийн хувилбар - 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-full - 1.11.1-4
libintl-full - 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
орон нутаг - 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
ядуу хайрцаг - 1.31.1-2
нэр томъёо - 6.2-1
zlib - 1.2.11-3
zoneinfo-asia - 2019c-1
zoneinfo-europe - 2019c-1

Магадгүй энд ямар нэгэн илүүц зүйл байсан байх, гэхдээ жолоодлогын зай их байсан тул би үүнийг хайж байсангүй.

Багцуудыг суулгасны дараа бид nginx-ийг тохируулсан, би үүнийг хоёр домэйн дээр туршиж үзсэн - хоёр дахь нь https-ээр тохируулагдсан бөгөөд одоогоор stub байна. Чиглүүлэгчийн админ самбар нь ердийн портууд дээр өлгөөтэй байдаг тул 81 ба 433-ын оронд 80 ба 443 дотоод портуудыг ашигладаг.

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;

Сайтыг https-ээр дамжуулан ажиллуулахын тулд би сайн мэддэг усгүйжүүлсэн скриптийг ашигласан бөгөөд үүнийг ашиглан суулгасан энэ заавар. Энэ үйл явц нь ямар ч хүндрэл учруулаагүй, би зөвхөн чиглүүлэгч дээрээ ажиллах скриптийн текстэнд бүдэрсэн. Та файл дахь мөрийг тайлбарлах хэрэгтэй /opt/etc/ssl/openssl.cnf:

[openssl_conf]
#engines=engines

Миний чиглүүлэгч дээр "openssl dhparam -out dhparams.pem 2048" командыг ашиглан dhparams.pem-ийг үүсгэхэд 2 цаг гаруй хугацаа шаардагддаг, хэрэв ахиц дэвшлийн үзүүлэлт байхгүй бол би тэвчээр алдаж, дахин ачаалах байсан.

Сертификатуудыг хүлээн авсны дараа "/opt/etc/init.d/S80nginx restart" командыг ашиглан nginx-г дахин эхлүүлнэ үү. Зарчмын хувьд тохиргоо дууссан, гэхдээ одоогоор вэбсайт байхгүй байна - хэрэв бид index.html файлыг /share/nginx/html санд оруулбал бид бүдүүвчийг харах болно.

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>

Мэдээллийг сайхан байрлуулахын тулд над шиг мэргэжлийн бус хүмүүст бэлэн загвар ашиглах нь илүү хялбар байдаг; янз бүрийн каталогоор удаан хайсны эцэст би олсон. templatemo.com - хамаарал шаарддаггүй үнэ төлбөргүй загваруудын сайн сонголт байдаг (энэ нь интернетэд ховор тохиолддог; лицензийн ихэнх загварууд нь олж авсан эх сурвалжийн холбоосыг хадгалахыг шаарддаг).

Бид тохирох загварыг сонгодог - янз бүрийн тохиолдлуудад зориулагдсан загварууд байдаг, архивыг татаж аваад /share/nginx/html лавлах руу задлаарай, та үүнийг компьютерээсээ хийж, дараа нь загварыг засах боломжтой (энд танд хамгийн бага мэдлэг хэрэгтэй болно) бүтцийг эвдэхгүйн тулд HTML-ийн) болон доорх зурагт үзүүлсэн шиг графикийг солино.

Гэрийн чиглүүлэгч дээрээ вэбсайт байршуулах

Дүгнэлт: чиглүүлэгч нь үүн дээр хөнгөн вэбсайт байрлуулахад тохиромжтой, зарчмын хувьд - хэрэв та том ачаалал хүлээхгүй бол та боломжтой. суулгаж, php, мөн илүү нарийн төвөгтэй төслүүдийг туршиж үзээрэй (Би nextcloud/owcloud-г харлаа, ийм тоног төхөөрөмж дээр амжилттай суулгацууд байгаа бололтой). Багцуудыг суулгах чадвар нь түүний ашиг тусыг нэмэгдүүлдэг - жишээлбэл, локал сүлжээнд PC-ийн RDP портыг хамгаалах шаардлагатай үед би чиглүүлэгч дээр knockd суулгасан - порт тогшсоны дараа л портыг компьютер руу дамжуулах нь нээгддэг.

Яагаад ердийн компьютер биш чиглүүлэгч вэ? Чиглүүлэгч нь олон орон сууцанд өдөр бүр ажилладаг компьютерийн цөөн хэдэн техник хангамжийн нэг бөгөөд гэрийн чиглүүлэгч нь ихэвчлэн чимээгүй байдаг бөгөөд өдөрт зуу хүрэхгүй удаа зочилдог хөнгөн сайт нь түүнд огт саад болохгүй.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх