హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

మొదటి నుండి వెబ్ సర్వర్‌ను సెటప్ చేయడం ద్వారా మరియు ఇంటర్నెట్‌లోకి విడుదల చేయడం ద్వారా ఇంటర్నెట్ సేవలపై "నా చేతులను తాకాలని" నేను చాలా కాలంగా కోరుకుంటున్నాను. ఈ ఆర్టికల్‌లో నేను చాలా ఫంక్షనల్ పరికరం నుండి హోమ్ రూటర్‌ను దాదాపు పూర్తి స్థాయి సర్వర్‌గా మార్చడంలో నా అనుభవాన్ని పంచుకోవాలనుకుంటున్నాను.

విశ్వసనీయంగా సేవలందించిన TP-Link TL-WR1043ND రౌటర్ ఇకపై హోమ్ నెట్‌వర్క్ అవసరాలను తీర్చలేదు; నాకు 5 GHz బ్యాండ్ మరియు రౌటర్‌కి కనెక్ట్ చేయబడిన స్టోరేజ్ పరికరంలోని ఫైల్‌లకు శీఘ్ర ప్రాప్యత కావాలి అనే వాస్తవంతో ఇదంతా ప్రారంభమైంది. . ప్రత్యేక ఫోరమ్‌లు (4pda, ixbt), సమీక్షలతో సైట్‌లు మరియు స్థానిక దుకాణాల కలగలుపును చూసిన తర్వాత, నేను కీనెటిక్ అల్ట్రాను కొనుగోలు చేయాలని నిర్ణయించుకున్నాను.

యజమానుల నుండి మంచి సమీక్షలు ఈ నిర్దిష్ట పరికరానికి అనుకూలంగా పనిచేశాయి:

  • వేడెక్కడంతో సమస్యలు లేవు (ఇక్కడ మేము ఆసుస్ ఉత్పత్తులను వదిలివేయవలసి వచ్చింది);
  • కార్యాచరణ విశ్వసనీయత (ఇక్కడ నేను TP-లింక్‌ని దాటాను);
  • సెటప్ చేయడం సులభం (నేను దీన్ని నిర్వహించలేనని భయపడ్డాను మరియు మైక్రోటిక్‌ని అధిగమించాను).

నేను ప్రతికూలతలతో ఒప్పుకోవలసి వచ్చింది:

  • WiFi6 లేదు, నేను భవిష్యత్తు కోసం రిజర్వ్‌తో పరికరాలను తీసుకోవాలనుకుంటున్నాను;
  • 4 LAN పోర్ట్‌లు, నాకు మరిన్ని కావాలి, కానీ ఇది ఇకపై హోమ్ కేటగిరీ కాదు.

ఫలితంగా, మేము ఈ “సర్వర్” పొందాము:

హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

  • ఎడమ వైపున Rostelecom యొక్క ఆప్టికల్ టెర్మినల్ ఉంది;
  • కుడివైపున మా ప్రయోగాత్మక రూటర్ ఉంది;
  • ఒక 2 GB m.128 SSD చుట్టూ పడి ఉంది, Aliexpress నుండి USB3 బాక్స్‌లో ఉంచబడింది, వైర్‌తో రూటర్‌కి కనెక్ట్ చేయబడింది, ఇప్పుడు అది గోడపై చక్కగా అమర్చబడింది;
  • ముందుభాగంలో స్వతంత్రంగా డిస్‌కనెక్ట్ చేయబడిన సాకెట్లతో పొడిగింపు త్రాడు ఉంది, దాని నుండి వైర్ చవకైన UPSకి వెళుతుంది;
  • నేపథ్యంలో వక్రీకృత జత కేబుల్స్ సమూహం ఉంది - అపార్ట్మెంట్ను పునరుద్ధరించే దశలో, నేను వెంటనే పరికరాలు ఉన్న ప్రదేశాలలో RJ45 సాకెట్లను ప్లాన్ చేసాను, తద్వారా చెత్తగా ఉన్న WiFi మీద ఆధారపడకూడదు.

కాబట్టి, మాకు పరికరాలు ఉన్నాయి, మేము దానిని కాన్ఫిగర్ చేయాలి:

హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

  • రౌటర్ యొక్క ప్రారంభ సెటప్ సుమారు 2 నిమిషాలు పడుతుంది, మేము ప్రొవైడర్‌కు కనెక్షన్ పారామితులను సూచిస్తాము (నా ఆప్టికల్ టెర్మినల్ బ్రిడ్జ్ మోడ్‌కు మార్చబడింది, PPPoE కనెక్షన్ రౌటర్‌ను ఎత్తివేస్తుంది), వైఫై నెట్‌వర్క్ పేరు మరియు పాస్‌వర్డ్ - ప్రాథమికంగా అంతే , రూటర్ ప్రారంభమవుతుంది మరియు పని చేస్తుంది.

హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

మేము "నెట్‌వర్క్ నియమాలు - ఫార్వార్డింగ్" విభాగంలో బాహ్య పోర్ట్‌లను రూటర్ యొక్క పోర్ట్‌లకు ఫార్వార్డ్ చేయడాన్ని సెట్ చేసాము:

హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

ఇప్పుడు మనం రౌటర్ నుండి నేను కోరుకున్న “అధునాతన” భాగానికి వెళ్లవచ్చు:

  1. హోమ్ నెట్‌వర్క్ కోసం చిన్న NAS యొక్క కార్యాచరణ;
  2. అనేక ప్రైవేట్ పేజీల కోసం వెబ్ సర్వర్ విధులను నిర్వహించడం;
  3. ప్రపంచంలో ఎక్కడి నుండైనా వ్యక్తిగత డేటాను యాక్సెస్ చేయడానికి వ్యక్తిగత క్లౌడ్ కార్యాచరణ.

మొదటిది అంతర్నిర్మిత సాధనాలను ఉపయోగించి చాలా ప్రయత్నం అవసరం లేకుండా అమలు చేయబడుతుంది:

  • మేము ఈ పాత్ర కోసం ఉద్దేశించిన డ్రైవ్‌ను తీసుకుంటాము (ఫ్లాష్ డ్రైవ్, కార్డ్ రీడర్‌లో మెమరీ కార్డ్, హార్డ్ డ్రైవ్ లేదా SSD ఎక్స్‌టర్నల్ బాక్స్‌లో మరియు దానిని ఉపయోగించి Ext4కి ఫార్మాట్ చేయండి మినీటూల్ విభజన విజార్డ్ ఉచిత ఎడిషన్ (నా వద్ద Linux ఉన్న కంప్యూటర్ లేదు, ఇది అంతర్నిర్మిత సాధనాలతో సాధ్యమవుతుంది). నేను అర్థం చేసుకున్నట్లుగా, ఆపరేషన్ సమయంలో సిస్టమ్ ఫ్లాష్ డ్రైవ్‌కు మాత్రమే లాగ్‌లను వ్రాస్తుంది, కాబట్టి మీరు సిస్టమ్‌ను సెటప్ చేసిన తర్వాత వాటిని పరిమితం చేస్తే, మీరు డ్రైవ్‌కు చాలా మరియు తరచుగా వ్రాయాలని ప్లాన్ చేస్తే మీరు మెమరీ కార్డ్‌లను కూడా ఉపయోగించవచ్చు - ఒక SSD లేదా HDD ఉత్తమం.

హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

దీని తరువాత, మేము డ్రైవ్‌ను రౌటర్‌కు కనెక్ట్ చేస్తాము మరియు సిస్టమ్ మానిటర్ స్క్రీన్‌లో దాన్ని గమనించండి

హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

“అప్లికేషన్స్” విభాగానికి “USB డ్రైవ్‌లు మరియు ప్రింటర్లు”పై క్లిక్ చేసి, “Windows Network” విభాగంలో వాటాను కాన్ఫిగర్ చేయండి:

హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

మరియు మేము Windows కంప్యూటర్ల నుండి ఉపయోగించగల నెట్‌వర్క్ వనరును కలిగి ఉన్నాము, అవసరమైతే డిస్క్‌గా కనెక్ట్ చేస్తాము: నికర ఉపయోగం y: \192.168.1.1SSD /పెర్సిస్టెంట్:అవును

అటువంటి మెరుగుపరచబడిన NAS యొక్క వేగం గృహ వినియోగానికి చాలా సరిపోతుంది; వైర్ ద్వారా ఇది మొత్తం గిగాబిట్‌ను ఉపయోగిస్తుంది, WiFi ద్వారా వేగం 400-500 మెగాబిట్‌లు.

హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

సర్వర్‌ను కాన్ఫిగర్ చేయడానికి అవసరమైన దశల్లో నిల్వను సెటప్ చేయడం ఒకటి, అప్పుడు మనకు ఇది అవసరం:
- డొమైన్‌ను కొనుగోలు చేయండి మరియు స్టాటిక్ IP చిరునామా (మీరు డైనమిక్ DNSని ఉపయోగించడం ద్వారా ఇది లేకుండా చేయవచ్చు, కానీ నేను ఇప్పటికే స్టాటిక్ IPని కలిగి ఉన్నాను, కనుక ఇది ఉపయోగించడానికి సులభమైనది ఉచిత Yandex సేవలు - అక్కడ డొమైన్‌ను అప్పగించడం ద్వారా, మేము మా డొమైన్‌లో DNS హోస్టింగ్ మరియు మెయిల్‌ని అందుకుంటాము);

హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

- DNS సర్వర్‌లను కాన్ఫిగర్ చేయండి మరియు మీ IPకి సూచించే A రికార్డులను జోడించండి:

హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

డొమైన్ మరియు DNS డెలిగేషన్ సెట్టింగ్‌లు అమలులోకి రావడానికి చాలా గంటలు పడుతుంది, కాబట్టి మేము ఏకకాలంలో రూటర్‌ని సెటప్ చేస్తున్నాము.

ముందుగా, మనం ఎంట్‌వేర్ రిపోజిటరీని ఇన్‌స్టాల్ చేయాలి, దాని నుండి మనం రూటర్‌లో అవసరమైన ప్యాకేజీలను ఇన్‌స్టాల్ చేయవచ్చు. నేను సద్వినియోగం చేసుకున్నాను ఈ సూచనతో, కేవలం FTP ద్వారా ఇన్‌స్టాలేషన్ ప్యాకేజీని అప్‌లోడ్ చేయలేదు, కానీ మునుపు కనెక్ట్ చేయబడిన నెట్‌వర్క్ డ్రైవ్‌లో నేరుగా ఫోల్డర్‌ను సృష్టించి, ఫైల్‌ను అక్కడ సాధారణ పద్ధతిలో కాపీ చేసింది.

SSH ద్వారా యాక్సెస్ పొందిన తరువాత, పాస్‌వర్డ్‌ను పాస్‌వర్డ్ కమాండ్‌తో మార్చండి మరియు opkg install [package names] కమాండ్‌తో అవసరమైన అన్ని ప్యాకేజీలను ఇన్‌స్టాల్ చేయండి:

హోమ్ రూటర్‌లో వెబ్‌సైట్‌ను హోస్ట్ చేస్తోంది

సెటప్ సమయంలో, కింది ప్యాకేజీలు రూటర్‌లో ఇన్‌స్టాల్ చేయబడ్డాయి (opkg జాబితా-ఇన్‌స్టాల్ చేయబడిన కమాండ్ యొక్క అవుట్‌పుట్):

ప్యాకేజీల జాబితా
బాష్ - 5.0-3
busybox - 1.31.1-1
ca-bundle - 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
డ్రాప్‌బేర్ - 2019.78-3
entware-release - 1.0-2
ఫైన్యుటిల్స్ - 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
లిబ్ప్థ్రెడ్ - 2.27-9
లిబ్రెడ్‌లైన్ - 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
లిబుయిడ్ - 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
terminfo - 6.2-1
zlib - 1.2.11-3
zoneinfo-asia - 2019c-1
zoneinfo-europe - 2019c-1

బహుశా ఇక్కడ నిరుపయోగంగా ఏదో ఉంది, కానీ డ్రైవ్‌లో చాలా స్థలం ఉంది, కాబట్టి నేను దానిని చూడటంలో ఇబ్బంది పడలేదు.

ప్యాకేజీలను ఇన్‌స్టాల్ చేసిన తర్వాత, మేము nginxని కాన్ఫిగర్ చేసాము, నేను దీన్ని రెండు డొమైన్‌లతో ప్రయత్నించాను - రెండవది httpsతో కాన్ఫిగర్ చేయబడింది మరియు ప్రస్తుతానికి స్టబ్ ఉంది. రూటర్ అడ్మిన్ ప్యానెల్ సాధారణ పోర్ట్‌లపై వేలాడదీయబడినందున, 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 పునఃప్రారంభించు” ఆదేశంతో 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/owncloudని చూస్తున్నాను, అటువంటి హార్డ్‌వేర్‌లో విజయవంతమైన ఇన్‌స్టాలేషన్‌లు ఉన్నట్లు అనిపిస్తుంది). ప్యాకేజీలను ఇన్‌స్టాల్ చేసే సామర్థ్యం దాని ప్రయోజనాన్ని పెంచుతుంది - ఉదాహరణకు, స్థానిక నెట్‌వర్క్‌లో PC యొక్క RDP పోర్ట్‌ను రక్షించాల్సిన అవసరం వచ్చినప్పుడు, నేను రూటర్‌లో నాక్డ్‌ను ఇన్‌స్టాల్ చేసాను - మరియు పోర్ట్ నాకింగ్ తర్వాత మాత్రమే PC కి పోర్ట్ ఫార్వార్డింగ్ తెరవబడుతుంది.

ఎందుకు రూటర్ మరియు సాధారణ PC కాదు? అనేక అపార్ట్‌మెంట్‌లలో గడియారం చుట్టూ పనిచేసే కొన్ని కంప్యూటర్ హార్డ్‌వేర్‌లలో రౌటర్ ఒకటి; హోమ్ రౌటర్ సాధారణంగా పూర్తిగా నిశ్శబ్దంగా ఉంటుంది మరియు రోజుకు వంద కంటే తక్కువ సందర్శనలు ఉన్న లైట్ సైట్ అస్సలు ఇబ్బంది పెట్టదు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి