Að hýsa vefsíðu á heimabeini þínum

Mig hefur lengi langað til að „snerta hendurnar“ á internetþjónustu með því að setja upp vefþjón frá grunni og gefa út á internetið. Í þessari grein vil ég deila reynslu minni af því að breyta heimabeini úr mjög virku tæki í næstum fullgildan netþjón.

Þetta byrjaði allt með því að TP-Link TL-WR1043ND beininn, sem hafði þjónað dyggilega, uppfyllti ekki lengur þarfir heimanets, ég vildi 5 GHz band og skjótan aðgang að skrám á geymslutæki sem var tengt við beininn. . Eftir að hafa skoðað sérhæfða spjallborð (4pda, ixbt), síður með umsögnum og skoðað úrval staðbundinna verslana ákvað ég að kaupa Keenetic Ultra.

Góðar umsagnir frá eigendum virkuðu þessu tiltekna tæki í hag:

  • engin vandamál með ofhitnun (hér þurftum við að yfirgefa Asus vörur);
  • rekstraráreiðanleiki (hér strikaði ég yfir TP-Link);
  • auðvelt að setja upp (ég var hræddur um að ég gæti ekki höndlað það og strikaði yfir Microtik).

Ég varð að sætta mig við ókostina:

  • ekkert WiFi6, ég vildi taka búnað með varasjóði til framtíðar;
  • 4 LAN tengi, mig langaði í fleiri, en þetta er ekki lengur heimaflokkur.

Fyrir vikið fengum við þennan „þjón“:

Að hýsa vefsíðu á heimabeini þínum

  • til vinstri er sjónstöð Rostelecom;
  • hægra megin er tilraunaleiðin okkar;
  • 2 GB m.128 SSD liggjandi, settur í USB3 kassa frá Aliexpress, er tengdur við routerinn með vír, núna er hann snyrtilegur upp á vegg;
  • í forgrunni er framlengingarsnúra með sjálfstætt aftengdum innstungum, vírinn frá henni fer í ódýr UPS;
  • í bakgrunni er fullt af snúnum pörum snúrum - á stigi endurbóta á íbúðinni skipulagði ég strax RJ45 innstungur á þeim stöðum þar sem búnaðurinn átti að vera staðsettur, til að vera ekki háður því að WiFi væri rusl.

Svo við höfum búnaðinn, við þurfum að stilla hann:

Að hýsa vefsíðu á heimabeini þínum

  • Uppsetning beinisins tekur um það bil 2 mínútur, við gefum þjónustuveitunni upplýsingar um tengibreytur (sjónstöðin mín er kveikt á brúarstillingu, PPPoE tengingin lyftir beininum), nafn WiFi netsins og lykilorðið - í rauninni er það allt , beini fer í gang og virkar.

Að hýsa vefsíðu á heimabeini þínum

Við stillum áframsendingu á ytri höfnum til hafna á beininum sjálfum í hlutanum „Netkerfisreglur - Áframsending“:

Að hýsa vefsíðu á heimabeini þínum

Að hýsa vefsíðu á heimabeini þínum

Nú getum við haldið áfram í „háþróaða“ hlutann, það sem ég vildi frá leiðinni:

  1. virkni lítils NAS fyrir heimanet;
  2. framkvæma vefþjónsaðgerðir fyrir nokkrar einkasíður;
  3. persónuleg skýjavirkni til að fá aðgang að persónulegum gögnum hvar sem er í heiminum.

Hið fyrra er útfært með innbyggðum verkfærum, án þess að þurfa mikla fyrirhöfn:

  • Við tökum drif sem ætlað er fyrir þetta hlutverk (glampi drif, minniskort í kortalesara, harðan disk eða SSD í utanáliggjandi kassa og forsníða það í Ext4 með því að nota MiniTool Skipting töframaður Ókeypis útgáfa (Ég er ekki með tölvu með Linux við höndina, það er hægt með innbyggðum verkfærum). Eins og ég skil það þá skrifar kerfið aðeins logs á flash-drifið á meðan á notkun stendur, þannig að ef þú takmarkar þá eftir uppsetningu á kerfinu geturðu líka notað minniskort ef þú ætlar að skrifa mikið og oft í drifið - SSD eða HDD er betri.

Að hýsa vefsíðu á heimabeini þínum

Eftir þetta tengjum við drifið við beininn og fylgjumst með því á kerfisskjánum

Að hýsa vefsíðu á heimabeini þínum

Smelltu á „USB drif og prentarar“ í „Forrit“ hlutann og stilltu hlutdeildina í „Windows Network“ hlutanum:

Að hýsa vefsíðu á heimabeini þínum

Og við höfum netkerfi sem hægt er að nota frá Windows tölvum, tengja sem diskur ef nauðsyn krefur: netnotkun y: \192.168.1.1SSD /persistent:yes

Hraði slíkrar spuna NAS er alveg nægjanlegur fyrir heimanotkun; yfir vír notar það allt gígabit, yfir WiFi er hraðinn um 400-500 megabitar.

Að hýsa vefsíðu á heimabeini þínum

Að setja upp geymslu er eitt af nauðsynlegum skrefum til að stilla netþjóninn, þá þurfum við:
- kaupa lén og kyrrstæða IP tölu (þú getur verið án þessa með því að nota Dynamic DNS, en ég var þegar með kyrrstæða IP tölu, svo það reyndist vera auðveldara í notkun ókeypis Yandex þjónusta - með því að framselja lénið þangað, við fáum DNS hýsingu og póst á léninu okkar);

Að hýsa vefsíðu á heimabeini þínum

- stilla DNS netþjóna og bættu við A-skrám sem benda á IP-töluna þína:

Að hýsa vefsíðu á heimabeini þínum

Það tekur nokkrar klukkustundir fyrir léns- og DNS-úthlutunarstillingarnar að taka gildi, þannig að við erum samtímis að setja upp beininn.

Í fyrsta lagi þurfum við að setja upp Entware geymsluna, þaðan sem við getum sett upp nauðsynlega pakka á leiðinni. Ég fór á kostum þessari fræðslu, hlóð bara ekki uppsetningarpakkanum í gegnum FTP, heldur bjó til möppu beint á áður tengda netdrifið og afritaði skrána þangað á venjulegan hátt.

Eftir að hafa fengið aðgang í gegnum SSH, breyttu lykilorðinu með passwd skipuninni og settu upp alla nauðsynlega pakka með opkg install [pakkanöfnum] skipuninni:

Að hýsa vefsíðu á heimabeini þínum

Meðan á uppsetningu stóð voru eftirfarandi pakkar settir upp á beini (úttak skipunarinnar sem er uppsett á lista opkg):

Listi yfir pakka
bash - 5.0-3
busybox - 1.31.1-1
ca-búnt - 20190110-2
ca-vottorð - 20190110-2
coreutils - 8.31-1
coreutils-mktemp - 8.31-1
cron - 4.1-3
krulla - 7.69.0-1
diffutils - 3.7-2
dropbear - 2019.78-3
entware-útgáfu - 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-fullur - 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
staðir - 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
hugtök - 6.2-1
zlib - 1.2.11-3
zoneinfo-asía - 2019c-1
zoneinfo-europe - 2019c-1

Kannski var eitthvað óþarfi hérna, en það var mikið pláss á disknum, svo ég nennti ekki að skoða það.

Eftir uppsetningu pakkana stillum við nginx, ég prófaði það með tveimur lénum - annað er stillt með https, og í bili er stubbur. Innri tengi 81 og 433 eru notuð í stað 80 og 443, þar sem stjórnborð leiðar hangir á venjulegum tengjum.

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;

Til þess að vefsíðan gæti virkað í gegnum https notaði ég hið vel þekkta þurrkaforskrift og setti það upp með því að nota þessari fræðslu. Þetta ferli olli engum erfiðleikum, ég rakst aðeins á þá staðreynd að í texta handritsins til að vinna á leiðinni minni þú þarft að kommenta út línuna í skránni /opt/etc/ssl/openssl.cnf:

[openssl_conf]
#engines=engines

Og ég tek eftir því að það tekur meira en 2048 klukkustundir að búa til dhparams.pem með skipuninni “openssl dhparam -out dhparams.pem 2” á beini mínum, ef ekki væri fyrir framfaravísirinn hefði ég misst þolinmæðina og endurræst.

Eftir að hafa fengið vottorðin skaltu endurræsa nginx með skipuninni "/opt/etc/init.d/S80nginx endurræsa". Í grundvallaratriðum er uppsetningunni lokið, en það er engin vefsíða ennþá - ef við setjum index.html skrána í /share/nginx/html möppuna munum við sjá stubb.

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>

Til að staðsetja upplýsingar fallega er auðveldara fyrir ófagmann eins og mig að nota tilbúin sniðmát; eftir langa leit í ýmsum vörulistum fann ég templatemo.com — það er gott úrval af ókeypis sniðmátum sem krefjast ekki tilvísunar (sem er sjaldgæft á netinu; flest sniðmát í leyfinu krefjast þess að þú vistir tengil á auðlindina sem þau voru fengin úr).

Við veljum viðeigandi sniðmát - það eru til fyrir margvísleg tilvik, hlaðið niður skjalasafninu og pakkið því niður í /share/nginx/html möppuna, þú getur gert þetta úr tölvunni þinni og breytt síðan sniðmátinu (hér þarftu lágmarksþekkingu af HTML til að brjóta ekki uppbygginguna) og skiptu um grafíkina eins og sýnt er á myndinni hér að neðan.

Að hýsa vefsíðu á heimabeini þínum

Samantekt: beininn er mjög hentugur til að hýsa létta vefsíðu á honum, í grundvallaratriðum - ef þú býst ekki við miklu álagi geturðu setja upp og php, og gera tilraunir með flóknari verkefni (ég skoða nextcloud/owncloud, það virðast vera farsælar uppsetningar á slíkum vélbúnaði). Hæfni til að setja upp pakka eykur notagildi þess - til dæmis þegar nauðsynlegt var að vernda RDP tengi tölvu á staðarneti, setti ég knockd á beininn - og portframsending á tölvu var aðeins opnuð eftir að bankað var á port.

Af hverju router en ekki venjuleg PC? Bein er einn af fáum tölvubúnaði sem virkar allan sólarhringinn í mörgum íbúðum; heimabein er venjulega algjörlega hljóðlaus og létt síða með minna en hundrað heimsóknir á dag mun alls ekki trufla hann.

Heimild: www.habr.com

Bæta við athugasemd