Bii o ṣe le Fi Nginx sii pẹlu Awọn ọmọ ogun foju ati Iwe-ẹri SSL


Nginx (kukuru fun Engine-x) jẹ ọfẹ, orisun ṣiṣi, agbara, iṣẹ giga ati HTTP ti o le ṣe iwọn ati olupin aṣoju yiyipada, meeli ati boṣewa olupin aṣoju TCP/UDP. O rọrun lati lo ati tunto, pẹlu ede iṣeto kan ti o rọrun. Nginx ni bayi sọfitiwia olupin wẹẹbu ti o fẹ julọ fun agbara awọn aaye ti kojọpọ ti o wuwo, nitori iwọn ati iṣẹ rẹ.

Ninu àpilẹkọ yii yoo jiroro bi o ṣe le lo Nginx bi olupin HTTP, tunto rẹ lati ṣe iranṣẹ akoonu wẹẹbu, ati ṣeto awọn ọmọ ogun ti o da lori orukọ, ati lati ṣẹda ati fi sori ẹrọ SSL fun awọn gbigbe data to ni aabo, pẹlu ijẹrisi ti a fowo si ti ara ẹni lori Ubuntu ati CentOS .

Bii o ṣe le Fi Nginx Web Server sii

Ni ibẹrẹ akọkọ nipa fifi package Nginx sori ẹrọ lati awọn ibi ipamọ osise ni lilo oluṣakoso package rẹ bi o ti han.

------------ On Ubuntu ------------ 
$ sudo apt update 
$ sudo apt install nginx 

------------ On CentOS ------------
$ sudo yum update 
$ sudo yum install epel-release 
$ sudo yum install nginx 

Lẹhin ti o ti fi package Nginx sii, o nilo lati bẹrẹ iṣẹ fun bayi, muu ṣiṣẹ lati bẹrẹ-adaṣe ni akoko bata ati wo ipo rẹ, ni lilo awọn ofin wọnyi. Akiyesi pe lori Ubuntu, o yẹ ki o bẹrẹ ati muu ṣiṣẹ laifọwọyi lakoko ti o ti tunto package naa tẹlẹ.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx

Ni aaye yii, olupin ayelujara Nginx yẹ ki o wa ni ṣiṣiṣẹ, o le ṣayẹwo ipo naa pẹlu aṣẹ netstat.

$ sudo netstat -tlpn | grep nginx

Ti eto rẹ ba ti ṣiṣẹ ogiriina, o nilo lati ṣii ibudo 80 ati 443 lati gba HTTP ati ijabọ HTTPS lẹsẹsẹ, nipasẹ rẹ, nipa ṣiṣiṣẹ.

------------ On CentOS ------------
$ sudo firewall-cmd --permanent --add-port=80/tcp
$ sudo firewall-cmd --permanent --add-port=443/tcp
$ sudo firewall-cmd --reload

------------ On Ubuntu ------------ 
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw reload 

Ọna ti o dara julọ fun idanwo fifi sori Nginx ati ṣayẹwo boya o nṣiṣẹ ati ni anfani lati sin awọn oju-iwe wẹẹbu jẹ nipa ṣiṣi ẹrọ lilọ kiri lori ayelujara kan ati tọka si IP ti olupin naa.

http://Your-IP-Address
OR
http://Your-Domain.com

Fifi sori ẹrọ ṣiṣẹ yẹ ki o tọka nipasẹ iboju atẹle.

Bii o ṣe le Tunto Olupin Wẹẹbu Nginx

Awọn faili iṣeto Nginx wa ninu itọsọna /etc/nginx ati faili iṣeto agbaye ti wa ni /etc/nginx/nginx.conf lori mejeeji CentOS ati Ubuntu.

Nginx jẹ awọn modulu ti o ṣakoso nipasẹ ọpọlọpọ awọn aṣayan iṣeto, ti a mọ ni awọn itọsọna. Itọsọna kan le jẹ rọrun (ni orukọ fọọmu ati awọn iye ti o fopin si pẹlu ; ) tabi Àkọsílẹ (ni awọn itọnisọna ni afikun ti o wa ni lilo pẹlu {} ). Ati pe itọsọna iwe-aṣẹ eyiti o ni awọn itọsọna miiran ni a pe ni ayika.

Gbogbo awọn itọsọna ni a ṣalaye ni kikun ninu iwe Nginx ni oju opo wẹẹbu iṣẹ akanṣe. O le tọka si fun alaye diẹ sii.

Ni ipele ipilẹ, a le lo Nginx lati ṣe iranṣẹ akoonu aimi gẹgẹbi HTML ati awọn faili media, ni ipo aduro, nibiti o ti lo bulọọki olupin aiyipada nikan (ti o jọra si Apache nibiti ko ti ṣe atunto awọn ọmọ ogun foju).

A yoo bẹrẹ nipasẹ ṣiṣe alaye ni ṣoki iṣeto iṣeto ni faili iṣeto akọkọ.

 
$ sudo vim /etc/nginx/nginx.conf

Ti o ba wo inu faili iṣeto Nginx yii, iṣeto iṣeto yẹ ki o han bi atẹle ati pe eyi ni a tọka si bi ọrọ akọkọ, eyiti o ni ọpọlọpọ awọn ilana miiran ti o rọrun ati awọn bulọọki miiran. Gbogbo awọn ijabọ oju-iwe ayelujara ni a ṣakoso ni ipo http.

user  nginx;
worker_processes  1;
.....

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
.....

events {
       	.....
}

http {
	server{
		…….
	}
	.....
}

Atẹle yii jẹ ayẹwo iṣeto ni akọkọ Nginx (/etc/nginx/nginx.conf) faili, nibiti bulọọki http ti o wa loke wa ninu itọsọna pẹlu eyiti o sọ fun Nginx ibiti o ti le wa awọn faili iṣeto oju opo wẹẹbu (awọn atunto ogun eleto).

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
        worker_connections 768;
        # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

   include /etc/nginx/mime.types;
   default_type application/octet-stream;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
	
    include /etc/nginx/conf.d/*.conf;
}

Akiyesi pe lori Ubuntu, iwọ yoo tun wa afikun pẹlu itọsọna (pẹlu/ati be be/nginx/awọn aaye ti o ṣiṣẹ/*;), nibiti itọsọna// ati be be/nginx/awọn aaye-sise/awọn ile itaja jẹ awọn ọna asopọ si awọn faili iṣeto wẹẹbu ti a ṣẹda ni/ati be be/nginx/ojula-wa /, lati jẹki awọn aaye naa. Ati piparẹ aami-iṣẹ kan mu aaye naa pato.

Ni ibamu si orisun fifi sori ẹrọ rẹ, iwọ yoo wa faili iṣeto ni oju opo wẹẹbu aiyipada ni /etc/nginx/conf.d/default.conf (ti o ba fi sii lati ibi ipamọ NGINX osise ati EPEL) tabi/abbl/nginx/ojula-sise/aiyipada (ti o ba fi sii lati awọn ibi ipamọ Ubuntu).

Eyi ni apẹẹrẹ aiyipada olupin nginx wa ti o wa ni /etc/nginx/conf.d/default.conf lori eto idanwo naa.

server {
    listen    80 default_server;
    listen    [::]:80 default_server;
    server_name    _;
    root           /var/www/html/;
    index          index.html;
    location / {
                try_files $uri $uri/ =404;
        }
}

Alaye ni ṣoki ti awọn itọsọna ninu iṣeto loke:

  • gbọ: ṣalaye ibudo ti olupin ngbọ.
  • olupin_orukọ: ṣalaye orukọ olupin eyiti o le jẹ awọn orukọ gangan, awọn orukọ egan, tabi awọn ifihan deede.
  • gbongbo: ṣalaye itọsọna jade ninu eyiti Nginx yoo sin awọn oju-iwe wẹẹbu ati awọn iwe miiran.
  • atọka: ṣalaye iru (s) ti faili (s) atọka lati sin.
  • ipo: lo lati ṣe ilana awọn ibeere fun awọn faili kan pato ati awọn folda.

Lati aṣawakiri wẹẹbu kan, nigbati o tọka si olupin naa nipa lilo hosthost localhost tabi adiresi IP rẹ, o ṣe ilana ibeere naa o sin faili /var/www/html/index.html, ati lẹsẹkẹsẹ fi iṣẹlẹ naa pamọ si akọọlẹ wiwọle rẹ (/ var/log/nginx/access.log) pẹlu idahun 200 (O dara). Ni ọran ti aṣiṣe (iṣẹlẹ ti o kuna), o ṣe igbasilẹ ifiranṣẹ ni log aṣiṣe (/var/log/nginx/error.log).

Lati ni imọ siwaju sii nipa wíwọlé ní Nginx, o le tọka si Bii o ṣe le Tunto Wiwọle Aṣa tabi Awọn ọna kika Aṣiṣe aṣiṣe ni Nginx.

Dipo lilo awọn faili log aiyipada, o le ṣalaye awọn faili igbasilẹ aṣa fun oriṣiriṣi awọn oju opo wẹẹbu, bi a yoo ṣe wo ni igbamiiran, labẹ abala\"siseto awọn ọmọ ogun ti o da lori orukọ (awọn bulọọki olupin)”.

Lati le ni ihamọ wiwọle si oju opo wẹẹbu/ohun elo rẹ tabi diẹ ninu awọn apakan rẹ, o le ṣeto ijẹrisi HTTP ipilẹ. Eyi le ṣee lo ni pataki lati ni ihamọ iraye si gbogbo olupin HTTP, awọn bulọọki olupin kọọkan tabi awọn bulọọki ipo.

Bẹrẹ nipa ṣiṣẹda faili kan ti yoo tọju awọn iwe eri iwọle rẹ (orukọ olumulo/ọrọ igbaniwọle) nipa lilo iwulo htpasswd.

 
$ yum install httpd-tools		#RHEL/CentOS
$ sudo apt install apache2-utils	#Debian/Ubuntu

Fun apẹẹrẹ, jẹ ki a ṣafikun abojuto olumulo si atokọ yii (o le ṣafikun ọpọlọpọ awọn olumulo bi o ti ṣee), nibiti a ti lo aṣayan -c lati ṣalaye faili ọrọ igbaniwọle, ati -B lati encrypt ọrọ igbaniwọle. Lọgan ti o ba lu [Tẹ], ao beere lọwọ rẹ lati tẹ ọrọ igbaniwọle awọn olumulo sii:

$ sudo htpasswd -Bc /etc/nginx/conf.d/.htpasswd admin

Lẹhinna, jẹ ki a fi awọn igbanilaaye to dara ati nini si faili ọrọ igbaniwọle (rọpo olumulo ati nginx ẹgbẹ pẹlu www-data lori Ubuntu).

$ sudo chmod 640 /etc/nginx/conf.d/.htpasswd
$ sudo chown nginx:nginx /etc/nginx/conf.d/.htpasswd

Gẹgẹbi a ti mẹnuba ni iṣaaju lori, o le ni ihamọ wiwọle si oju opo wẹẹbu rẹ, oju opo wẹẹbu kan (lilo bulọọki olupin rẹ) tabi itọsọna kan pato tabi faili. Awọn itọnisọna to wulo meji ni a le lo lati ṣaṣeyọri eyi:

  • auth_basic - tan afọwọsi ti orukọ olumulo ati ọrọ igbaniwọle ni lilo ilana Ilana\"HTTP Authentication Basic".
  • auth_basic_user_file - ṣalaye faili ijẹrisi.

Gẹgẹbi apẹẹrẹ, a yoo fihan bi a ṣe le ṣe aabo ọrọ igbaniwọle-daabobo itọsọna/var/www/html/idaabobo.

server {
    listen         80 default_server;
    server_name    localhost;
    root           /var/www/html/;
    index          index.html;
    location / {
                try_files $uri $uri/ =404;
        }
     
    location /protected/ {
        auth_basic              "Restricted Access!";
        auth_basic_user_file    /etc/nginx/conf.d/.htpasswd;
    }
}

Bayi, fipamọ awọn ayipada ki o tun bẹrẹ iṣẹ Nginx.

$ sudo systemctl restart nginx 

Nigbamii ti o ba tọka aṣawakiri rẹ si itọsọna ti o wa loke (http:// localhost/ni idaabobo) ao beere lọwọ rẹ lati tẹ awọn iwe eri iwọle rẹ (abojuto orukọ olumulo ati ọrọ igbaniwọle ti o yan).

Wiwọle wọle aṣeyọri ngbanilaaye lati wọle si awọn akoonu ti itọsọna naa, bibẹkọ ti iwọ yoo gba aṣiṣe\"401 Aṣẹ Aṣẹ Kan".

Bii o ṣe le Ṣeto Awọn ọmọ ogun ti o da lori Orukọ (Awọn bulọọki olupin) ni Nginx

Oju apamọ olupin ngbanilaaye awọn ibugbe/aaye pupọ lati wa ni fipamọ sinu ati lati ṣiṣẹ lati ẹrọ ti ara kanna tabi olupin ikọkọ olupin (VPS). Awọn bulọọki olupin lọpọlọpọ (ti o nsoju awọn ọmọ ogun foju) ni a le kede laarin ipo http fun aaye/ibugbe kọọkan. Nginx pinnu eyi ti olupin ṣe ilana ibeere ti o da lori akọle ibeere ti o gba.

A yoo ṣe afihan imọran yii nipa lilo awọn ibugbe alaini atẹle, ọkọọkan wa ni itọsọna ti o sọ:

  • wearelinux-console.net - /var/www/html/wearelinux-console.net/
  • welovelinux.com - /var/www/html/welovelinux.com/

Nigbamii, fi awọn igbanilaaye ti o yẹ si itọsọna fun aaye kọọkan.

$ sudo chmod -R 755 /var/www/html/wearelinux-console.net/public_html 
$ sudo chmod -R 755 /var/www/html/welovelinux.com/public_html 

Bayi, ṣẹda faili index.html ayẹwo ninu itọsọna kọọkan_html kọọkan.

<html>
	<head>
		<title>www.wearelinux-console.net</title>
	</head>
<body>
	<h1>This is the index page of www.wearelinux-console.net</h1>
</body>
</html>

Nigbamii, ṣẹda awọn faili iṣeto iṣeto olupin fun aaye kọọkan inu itọsọna /etc/httpd/conf.d.

$ sudo vi /etc/nginx/conf.d/wearelinux-console.net.conf
$ sudo vi /etc/nginx/conf.d/welovelinux.com.conf

Ṣafikun ikede idiwọ olupin ni faili wearelinux-console.net.conf.

server {
    listen         80;
    server_name  wearelinux-console.net;
    root           /var/www/html/wearelinux-console.net/public_html ;
    index          index.html;
    location / {
                try_files $uri $uri/ =404;
        }
     
}

Nigbamii, ṣafikun ikede idiwọ olupin ni faili welovelinux.com.conf.

server {
    listen         80;
    server_name    welovelinux.com;
    root           /var/www/html/welovelinux.com/public_html;
    index          index.html;
    location / {
                try_files $uri $uri/ =404;
        }
     
}

Lati lo awọn ayipada aipẹ, tun bẹrẹ olupin ayelujara Nginx.

$ sudo systemctl restart nginx

ati titọka olupin wẹẹbu rẹ si awọn adirẹsi ti o wa loke yẹ ki o jẹ ki o wo awọn oju-iwe akọkọ ti awọn ibugbe idinile.

http://wearelinux-console.net
http://welovelinux.com

Pataki: Ti o ba ni sise SELinux, iṣeto aiyipada rẹ ko gba Nginx laaye lati wọle si awọn faili ni ita ti awọn ipo ti a fun ni aṣẹ ti a gbajumọ (bii/ati be be/nginx fun awọn atunto,/var/log/nginx for log,/var/www/html fun awọn faili wẹẹbu ati bẹbẹ lọ ..).

O le mu eyi nipasẹ boya mu SELinux kuro, tabi ṣeto ipo aabo to pe. Fun alaye diẹ sii, tọka si itọsọna yii: lilo Nginx ati Nginx Plus pẹlu SELinux lori oju opo wẹẹbu Nginx Plus.

Bii o ṣe le Fi sii ati Tunto SSL pẹlu Nginx

Awọn iwe-ẹri SSL ṣe iranlọwọ lati jẹ ki http (HTTPS) to ni aabo lori aaye rẹ, eyiti o ṣe pataki lati ṣe agbekalẹ asopọ igbẹkẹle/aabo laarin awọn olumulo ipari ati olupin rẹ nipa fifi ẹnọ kọ nkan ti alaye ti o tan kaakiri, lati, tabi laarin aaye rẹ.

A yoo bo bii o ṣe le ṣẹda ati fi sori ẹrọ ijẹrisi ti a fowo si ti ara ẹni, ati ipilẹṣẹ ibeere ijẹrisi ijẹrisi (CSR) lati gba iwe ijẹrisi SSL kan lati ọdọ aṣẹ ijẹrisi kan (CA), lati lo pẹlu Nginx.

Awọn iwe-ẹri ti a fowo si ti ara ẹni ni ominira lati ṣẹda ati pe o dara dara lati lọ fun awọn idi idanwo ati fun awọn iṣẹ LAN-nikan. Fun awọn olupin ti nkọju si gbogbo eniyan, o ni iṣeduro niyanju lati lo ijẹrisi ti CA ti gbe kalẹ (fun apẹẹrẹ Jẹ ki Encrypt) lati ṣe atilẹyin ododo rẹ.

Lati ṣẹda ijẹrisi ti a fowo si ti ara ẹni, kọkọ ṣẹda itọsọna kan nibiti awọn iwe-ẹri rẹ yoo wa ni fipamọ.

$ sudo mkdir /etc/nginx/ssl-certs/

Lẹhinna ṣe ina ijẹrisi ti o fowo si ti ara rẹ ati bọtini nipa lilo ọpa laini aṣẹ openssl.

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl-certs/nginx.key -out /etc/nginx/ssl-certs/nginx.crt

Jẹ ki a ṣe apejuwe ni ṣoki awọn aṣayan ti a lo ninu aṣẹ loke:

  • req -X509 - fihan pe a n ṣẹda ijẹrisi x509 kan.
  • -iwọn (KO SI DES) - tumọ si\"maṣe paroko bọtini naa".
  • -ọjọ 365 - ṣalaye nọmba awọn ọjọ ti ijẹrisi yoo wulo fun.
  • -newkey rsa: 2048 - ṣalaye pe bọtini ti ipilẹṣẹ nipa lilo algorithm RSA yẹ ki o jẹ 2048-bit.
  • -keyout /etc/nginx/ssl-certs/nginx.key - ṣalaye ọna kikun ti bọtini RSA.
  • -out /etc/nginx/ssl-certs/nginx.crt - ṣalaye ọna kikun ti ijẹrisi naa.

Nigbamii, ṣii faili iṣeto iṣeto ogun foju rẹ ki o ṣafikun awọn ila wọnyi si igbọran ikede ikede bulọọki lori ibudo 443. A yoo ṣe idanwo pẹlu faili ogun foju /etc/nginx/conf.d/wearelinux-console.net.conf.

$ sudo vi /etc/nginx/conf.d/wearelinux-console.net.conf

Lẹhinna ṣafikun ilana ssl si faili iṣeto ni nginx, o yẹ ki o dabi iru ni isalẹ.

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl;
    listen [::]:443 ssl;
    
    ssl on;
    ssl_certificate /etc/nginx/ssl-certs/nginx.crt;
    ssl_trusted_certificate /etc/nginx/ssl-certs/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl-certs/nginx.key;
    
    server_name  wearelinux-console.net;
    root           /var/www/html/wearelinux-console.net/public_html;
    index          index.html;
    location / {
                try_files $uri $uri/ =404;
        }

}

Bayi tun bẹrẹ Nginx ki o tọka aṣawakiri rẹ si adirẹsi atẹle.

https://www.wearelinux-console.net

Ti o ba fẹ lati ra ijẹrisi SSL kan lati CA, o nilo lati ṣe agbekalẹ ibeere iforukọsilẹ ijẹrisi kan (CSR) bi a ṣe han.

$ sudo openssl req -newkey rsa:2048 -nodes -keyout /etc/nginx/ssl-certs/example.com.key -out /etc/nginx/ssl-certs/example.com.csr

O tun le ṣẹda CSR lati bọtini ikọkọ ti o wa.

$ sudo openssl req -key /etc/nginx/ssl-certs/example.com.key -new -out /etc/nginx/ssl-certs/example.com.csr

Lẹhinna, o nilo lati firanṣẹ CSR ti o jẹ ipilẹṣẹ si CA lati beere ipinfunni ti ijẹrisi SSL ti CA ti fowo si. Lọgan ti o ba gba iwe-ẹri rẹ lati CA, o le tunto rẹ bi o ti han loke.

Ninu nkan yii, a ti ṣalaye bi o ṣe le fi sori ẹrọ ati tunto Nginx; bo bi o ṣe le ṣeto alejo gbigba ti o da lori orukọ pẹlu SSL lati ni aabo awọn gbigbe data laarin olupin ayelujara ati alabara kan.

Ti o ba ni iriri eyikeyi awọn ifasẹyin lakoko ilana fifi sori ẹrọ nginx rẹ/ilana iṣeto ni tabi ni eyikeyi ibeere tabi awọn asọye, lo fọọmu ifesi ni isalẹ lati de ọdọ wa.