Explicación de nivel superior de la distribución web de la arquitectura Nginx del sistema Linux

Servicio de sitio web de Nginx

  • Un software de servicio web ligero y de alto rendimiento
  • Alta estabilidad
  • Bajo consumo de recursos del sistema
  • Alta capacidad de procesamiento para conexiones concurrentes HTTP
  • Un solo servidor físico puede admitir 30.000 ~ 50.000 solicitudes simultáneas

Uno, compile e instale el servicio Nginx

Descarga del paquete de instalación de Nginx

(1) Apague el firewall y coloque los paquetes de software requeridos por nginx en el directorio / opt

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

nginx-1.18.0.tar.gz

(2) Paquetes dependientes del entorno de instalación

Nota: Necesita configurar la biblioteca yum de antemano

yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-develgcc gcc-c++ make 

Complete la imagen:
Inserte la descripción de la imagen aquí
(3) Cree y ejecute usuarios y grupos

(El programa de servicio Nginx se ejecuta como nadie de forma predeterminada, se recomienda crear una cuenta de usuario especial para que controle sus permisos de acceso con mayor precisión)

useradd -M -s /sbin/nologin nginx

(4) Compile e instale Nginx

cd /opt
tar zxvf nginx-1.18.0.tar.gz -C /opt/

cd nginx-1.18.0/
./configure \
--prefix=/usr/local/nginx \				            #指定nginx的安装路径
--user=nginx \										#指定用户名
--group=nginx \										#指定组名
--with-http_stub_status_module						#启用 http_stub_status_module 模块以支持状态统计

make && make install

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/		#让系统识别nginx的操作命令

Imagen completa:
Inserte la descripción de la imagen aquí

(5) Verifique, inicie, reinicie y detenga el servicio nginx

nginx -t								#检查配置文件是否配置正确
nginx							#启动		
cat /usr/local/nginx/logs/nginx.pid		#先查看nginx的PID号
kill -3 <PID号>
kill -s QUIT <PID号>				#停止
killall -3 nginx
killall -s QUIT nginx

kill -1 <PID号>					#重载
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx
#日志分隔,重新打开日志文件
kill -USR1 <PID号>
#平滑升级
kill -USR2 <PID号>

(6) Agregue el servicio del sistema Nginx

Dividido en dos métodos para usar de acuerdo con los hábitos personales.

1. Método de operación del archivo de configuración:

Si se informa un error al iniciar el servicio, se recomienda eliminar el proceso nginx antes de comenzar

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

2. Método de ejecución del script de shell:

vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
  $COM
;;

stop)
  kill -s QUIT $(cat $PID)
;;

restart)
  $0 stop
  $0 start
;;

reload)
  kill -s HUP $(cat $PID)
;;

*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1

esac
exit 0


chmod +x /etc/init.d/nginx
chkconfig --add nginx							#添加为系统服务
systemctl stop nginx
systemctl start nginx

2. El archivo de configuración principal nginx.conf del servicio Nginx

(1) Configuración básica

#user nobody; 					#运行用户,若编译时未指定则默认为 nobody
worker_processes 1; 			#工作进程数量,可配置成服务器内核数 * 2
#error_log logs/error.log; 		#错误日志文件的位置
#pid logs/nginx.pid; 			#PID 文件的位置

Inserte la descripción de la imagen aquí
(2) Configuración de eventos de E / S

events {
    use epoll; 					#使用 epoll 模型,2.6及以上版本的系统内核,建议使用epoll模型以提高性能
    worker_connections 4096; 	#每个进程处理 4096 个连接
}

#如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数。
#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
#可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制.

Inserte la descripción de la imagen aquí
No olvide asignar el nombre de dominio y la IP o hacer la resolución de DNS después de la configuración

临时映射:
echo"IP 域名" >> /etc/hosts

Inserte la descripción de la imagen aquí

Tres, configuración de estadísticas de estado de acceso

(1) Primero use el comando / usr / local / nginx / sbin / nginx -V para verificar si el Nginx instalado contiene el módulo HTTP_STUB_STATUS

/usr/local/nginx/sbin/nginx -V 

(2) Modifique el archivo de configuración nginx.conf, especifique la ubicación de acceso y agregue la configuración stub_status

cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak
vim /usr/local/nginx/conf/nginx.conf

http {

	server {
		listen 80;
		server_name www.lic.com;
		charset utf-8;
		location / {
			root html;
			index index.html index.php;
		}
		##添加 stub_status 配置##
		location /status { 					#访问位置为/status
			stub_status on; 				#打开状态统计功能
			access_log off; 				#关闭此位置的日志记录
		}
	}
}

Inserte la descripción de la imagen aquí

Acceso: nombre de dominio / estado
Inserte la descripción de la imagen aquí
Conexiones activas: indica el número actual de conexiones activas; el
servidor acepta solicitudes manejadas: indica la información de conexión que ha sido procesada. Los
tres números a su vez indican el número de conexiones procesadas, el número de apretones de manos TCP exitosos, y el número de solicitudes procesadas.

Cuatro, control de acceso basado en autorización

(1) Configuración básica

yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db 用户名   ##创建一个用户并用passwd.db储存用户信息

以下是文件赋权操作
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db

(2) Modifique el directorio correspondiente del archivo de configuración principal y agregue elementos de configuración de autenticación

vim /usr/local/nginx/conf/nginx.conf
......
	server {
		location / {
			......
			##添加认证配置##
			auth_basic "secret";
			auth_basic_user_file /usr/local/nginx/passwd.db;
		}
	}

Inserte la descripción de la imagen aquí
Visita: nombre de dominio

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_51468875/article/details/112391371
Recomendado
Clasificación