Servicio Nginx (compilación e instalación-control de acceso-host virtual) detallado

1. Conceptos básicos del servicio Nginx

1.1, descripción general de Nginx

Nginx es un servidor proxy inverso y HTTP de alto rendimiento, así como un servidor proxy IMAP / POP3 / SMTP.
Nginx es un servidor web ligero / servidor proxy inverso y servidor proxy de correo electrónico, y se distribuye bajo un protocolo similar a BSD. Desarrollado por el programador ruso lgor Sysoev, es utilizado por el portal ruso a gran escala y el motor de búsqueda Rambler. Su característica es que ocupa menos memoria y tiene una fuerte concurrencia, de hecho, la concurrencia de nginx funciona mejor en el mismo tipo de servidor web.
Comparado con Apache \ lighttpd, Nginx tiene las ventajas de menos memoria y mayor estabilidad, y es conocido por su fuerte concurrencia, biblioteca de módulos rica y configuración amigable y flexible. Bajo el sistema operativo Linux, nginx usa el modelo de eventos epoll, gracias a esto, nginx es muy eficiente bajo el sistema operativo Linux. Al mismo tiempo, Nginx utiliza un modelo de eventos eficiente kqueue similar a Epoll en el sistema operativo OpenBSD o FreeBSD. Un
software de servicio web ligero y de alto rendimiento,
alta estabilidad, bajo
consumo de recursos del sistema, alta
capacidad de procesamiento para conexiones HTTP concurrentes y un
único servidor físico. Admite 30000 ~ 50000 solicitudes simultáneas

1.2. Compile e instale Nginx

1.2.1, compilar e instalar pasos

1. Monte la carpeta compartida del host y lea el archivo fuente descargado

2. Descomprima el paquete de componentes multiplataforma y el paquete de código fuente
Mueva el paquete de componentes multiplataforma al directorio del paquete fuente

3. Instale el compilador y otras herramientas

yum -y install gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl \
zlib-devel \
pcre

4.configurar la configuración

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

5.hacer compilar y hacer instalar

6. Optimización de la ruta

ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin	'//nginx命令执行路径优化'
useradd -M -s /sbin/nologin nginx

1.2.2, use el control systemctl

vim /lib/systemd/system/nginx.service		'//添加使用systemctl工具进行管理'
[Unit]
Description=nginx	'//描述'
After=network.target	'//描述服务类别'

[Service]
Type=forking	'//后台运行形势'
PIDFile =/usr/local/nginx/logs/nginx.pid	'//PID文件位置'
ExecStart=/usr/local/nginx/sbin/nginx		'//启动服务'
ExecReload=/usr/bin/kill -S HUP $MAINPID	'//根据PID重载配置'
ExecStop=/usr/bin/kill -S QUIT $MAINPID		'//根据PID终止进程'
PrivateTmp=true

[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/nginx.service

1.2.3, abra nginx, cierre el firewall

[root@localhost system]# chmod +754 nginx.service 
[root@localhost system]# systemctl start nginx.service 
[root@localhost system]# netstat -ntap |grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5396/nginx: master  
tcp        0      0 192.168.197.192:56680   192.168.100.3:445       ESTABLISHED -                   
[root@localhost system]# systemctl stop firewalld.service 
[root@localhost system]# setenforce 0

Una vez completada la instalación, inicie el servicio, ingrese la IP en el navegador, aparece esta pantalla y el servicio se inicia con éxito
Inserte la descripción de la imagen aquí

1.3, estadísticas de estado de acceso a Nginx

Ginx tiene un módulo de estadísticas de estado http_stub_status incorporado, que se usa para retroalimentar el acceso web actual. Al configurar los parámetros de compilación, puede agregar
–with-http_stub_status_module para habilitar el soporte de este módulo. Puede usar el comando / usr / local / nginx / sbin / nginx -V para ver ¿El nginx instalado incluye el módulo http_stub_status?
Para usar la función de estadísticas de estado de nginx, además de habilitar el módulo incorporado, también necesita modificar el archivo de configuración nginx.conf, especificar la ubicación de acceso y agregar el código de configuración stub_status

1.3.1, experimento estadístico

Modifique el archivo de configuración nginx.conf

[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
http{
    
    
	server {
    
    
		listen 80;
		server name localhost;
		charset utf-8;
		location / {
    
    
			root html;
			index index.html index.php;
        }
		location ~/status {
    
    		'//添加此段'
			stub_ status on;
			access_ log off;
        }
    }
}

Después de la modificación, guarde wq y luego use Nginx -t para verificar si hay errores en la sintaxis. Si no hay ningún error, actualice el archivo de configuración
. Ingrese 20.0.0.25 en la máquina real
Inserte la descripción de la imagen aquí

Dos, control de acceso Nginx

2.1, control de acceso basado en autorización

Generar archivo de autenticación de contraseña de usuario

[root@localhost ~]# yum install -y httpd-tools	##因为没有htpasswd工具,所以需要安装##
[root@localhost ~]# htpasswd -c /usr/local/nginx/.passwd.db test
New password:
Re-type new password:
Adding password for user test
root@localhost ~]# cat /usr/local/nginx/.passwd.db
test:$apr1$x.UaSXIM$RRLa2KJcKwsGBVsikGcrR/

Modifique el archivo de configuración principal al directorio correspondiente, agregue elementos de configuración de autenticación

root@localhost ~]# chmod 400 /usr/local/nginx/.passwd.db
[root@localhost ~]# chown nginx /usr/local/nginx/.passwd.db

Reiniciar el servicio, prueba de acceso

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
    
    
	location / {
    
    
		auth_basic "secret";
		auth_basic_user_file /usr/local/nginx/.passwd.db;
	}
[root@localhost ~]# killall -s HUP nginx	

Ingrese 20.0.0.25 en el navegador de la máquina real y solicite ingresar la contraseña de la cuenta. Después de
Inserte la descripción de la imagen aquí
hacer clic en iniciar sesión, aparece la bienvenida a nginx
Inserte la descripción de la imagen aquí

2.2. Control de acceso basado en el cliente

Determinar si permitir el acceso a la página a través de la dirección IP del cliente.

Reglas de configuración:
denegar IP / segmento de IP: denegar el acceso del cliente a una determinada IP o segmento de IP

Permitir segmento de IP / IP: permitir el acceso de clientes de una determinada IP o segmento de IP

La regla se ejecuta de arriba a abajo, si coincide, se detiene y ya no coincide

Pasos de configuración:
modifique el archivo de configuración principal nginx.conf, agregue los elementos de configuración correspondientes
excepto el host 20.0.0.1 para permitir que otros clientes accedan

[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
location / {
    
    
            Order deny,allow;
            Deny from 20.0.0.1;
        }
[root@localhost ~]# killall -s HUP nginx

Inserte la descripción de la imagen aquí

Tres, host virtual Nginx

3.1, host virtual basado en el nombre de dominio

Prepare el directorio del sitio web y los archivos de prueba

[root@localhost ~]# mkdir -p /var/www/html/51xit/
[root@localhost ~]# mkdir -p /var/www/html/52xit/
[root@localhost ~]# echo "www.51xit.top" >> /var/www/html/51xit/index.html
[root@localhost ~]# echo "www.52xit.top" >> /var/www/html/52xit/index.html
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
    
    
        listen       80;
        server_name  www.51xit.top;
        charset utf-8;
        access_log  logs/www.51xit.top.access.log;
       location / {
    
    
            root /var/www/html/51xit;
            index  index.html index.htm;
        }
        location /status {
    
    
            stub_status on;
            access_log off;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }
server {
    
    
        listen       80;
        server_name  www.52xit.top;
        charset utf-8;
        access_log  logs/www.52xit.top.access.log;
       location / {
    
    
            root /var/www/html/52xit;
            index  index.html index.htm;
        }
        location /status {
    
    
            stub_status on;
            access_log off;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }
[root@localhost ~]# killall -s HUP nginx

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

3.2. Host virtual basado en IP

El host está configurado con dos direcciones IP

Modificar el archivo de configuración

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
    
    
	listen	20.0.0.25:80;
	server name 20.0.0.25:80;
	....}
server {
    
    
	listen	192.168.100.25:80;
	server name 192.168.100.25:80;
	....}
[root@localhost ~]# killall -s HUP nginx

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3.3, host virtual basado en puerto

Modificar el archivo de configuración

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
    
    
	listen	20.0.0.25:6666;
	server name 20.0.0.25:6666;
	......}
server {
    
    
	listen	20.0.0.25:8888;
	server name 20.0.0.25:8888;
	......}
[root@localhost ~]# killall -s HUP nginx

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_48191211/article/details/108516987
Recomendado
Clasificación