Tutorial de configuración de Nginx, operación y mantenimiento de CentOS7 | Mejora del rendimiento de ejecución | Control de acceso | Host virtual

Uno, descripción general de Nginx

Un Websoftware de servicio ligero y de alto rendimiento

2. Estado del servicio Nginx

① Iniciar servicio

nginx -tVerifique que la estructura de sintaxis del archivo de configuración sea correcta,
cat /usr/local/nginx/logs/nginx.pidvista nginxdel PIDnúmero

Más formas de ver el número de proceso
lsof -i: 80
netstat -natp | grep nginx
ss -tnlp | grep nginx
ps -ef | grep nginx
pgrep nginx

② Detener el servicio

killSeguido del pidnúmero killallseguido del nombre del proceso

kill -3 <PID号>
kill -s QUIT <PID号>
killall -3 nginx
killall -s QUIT nginx

③ Servicio de sobrecarga

matar -1 <PID 号>
matar -s HUP <PID 号>
killall -1 nginx
killall -s HUP nginx

④ División de registro

Principio: cuando se cumplan determinadas condiciones, guarde y elimine los registros antiguos

kill -USR1 <PID号>

⑤ Actualización suave

kill -USR2 <PID号>

Tres, agregue el servicio del sistema del programa

Método 1: systemctl

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

Método 2: init.d

vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx 服务
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}
;;
*)
  exit 1
esac
exit 0

Agregue servicios del sistema y otorgue permisos de ejecución

chmod +x /etc/init.d/nginx
chkconfig --add nginx

Cuatro, archivo de configuración principal de Nginx

user_nobodyEl usuario que ejecuta, si no se especifica durante la compilación, el valor predeterminado es nobdy
worker_processes 1; el número de procesos de trabajo se puede configurar como 内核数 * 2[Generalmente 1 es suficiente]
error_log logs/error.log;La ubicación de la ubicación del
pid logs/nginx.pid PIDarchivo de registro de errores

① Cómo mejorar el rendimiento

Configuración de eventos de E / S

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

② ¿Cómo aumentar el número de conexiones por proceso?

Cuando la Linuxplataforma TCPprocesa conexiones de alta concurrencia , la cantidad máxima de conexiones concurrentes está sujeta a la
restricción del sistema sobre la cantidad de archivos que un usuario puede abrir al mismo tiempo en un solo proceso. TCPCree uno para cada conexión. socket
Cada socketidentificador es también un identificador de archivo.
ulimit -n 65535Modifique temporalmente el número máximo de archivos que
ulimit -apuede abrir cada proceso localmente. Puede ver el número máximo de archivos que puede abrir el usuario actual del sistema.[open files项]

Cinco, configuración HTTP

http {
    
    
    ##文件扩展名与文件类型映射表
    include     mime.types;
    ##默认文件类型
    default_type  application/octet-stream;
    ##日志格式设定
    #log_format  main   '$remote_ addr - $remote. user [stime_ local] "$request" '
    #                   '$status $body_ bytes_ sent "Shttp_ referer" '
    #                   "$http_user_agent" "$http_x_forwarded_for"';
    ##访问日志位置
    #access_Log logs/access.log main;
    #支持文件发送(下载) 
    sendfile    on;
    ##此选项允许或禁止使用socket的TCP_CORK的选项( 发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用
    #tcp_nopush        on;
    ##连接保持超时时间,单位是秒
    #keepalive_timeout  0;
    keepalive.timeout  65;
    ##gzip模块设置,设置是否开启gzip压缩输出
    #gzip   on; 

    #Web服务的监听配置
    ##Web服务的监听配置
    server (
        ##监听地址及端口
        listen 80;
        ##站点域名,可以有多个,用空格隔开
        server.name www.benet.com;
        ##网页的默认字符集
        charset utf-8;
        ##根目录配置
        location / {
    
    
            ##网站根目录的位置/usr/local/nginx/html
            root html;
            ##默认首页文件名
            index index.html index.php;
        }
        ##内部错误的反馈页而
        error_page 500 502 503 504 /50x.html;
        #错误页而配置
        location = /50x.html {
    
    
            root html;
        }
    }
}

Seis, configuración de formato de registro

$remote_addr$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user: 用来记录客户端用卢名称;
$time_local: 用来记录访问时间与时区;
$request: 用来记录请求的url与http协议;
$status: 用来记录请求状态,成功是200;
$body_bytes_sent: 记录发送给客户端文件主体内容大小;
$http_referer: 用来记录从那个页面链接访问过来的;
$http_user_agent: 记录客户浏览器的相关信息;

通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的IP地址。反问代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

##location常见配置指令,root、alias、proxy_pass

root(根路径配置): 请求www.benet.com/1.jpg,会返回文件/usr/local/nginx/html/test/1.jpg
alias(别名配置): 请求ww . benet.com/test/1.jpg,会返回文件/usr/local/nginx/html/1.jpg
proxy_pass(反向代理配置>;
proxy_pass http://127.0.0.1:8080/;    会转发请求到http://127.0.0.1:8080/1.jpg
proxy_pass http://127.0.0.1:8080;

Siete, estadísticas de estado de acceso

Comprueba si hay HTTP_STUB_STATUSmódulos

nginx -t

Ingrese al nginxarchivo de configuración principal y agreguestub_status

cd /usr/local/nginx/conf
cp nginx.conf{
    
    ,.bak}
vim /usr/local/nginx/conf/nginx.conf
.....
http {
    
    
.....
  server {
    
    
    listen 80;
    server_name www.benet.com;
    charset utf-8;
    location / {
    
    
      root html;
      index index.html index.html;
    }
    ##添加stub_status 配置##
    location /status {
    
          #访问位置为/status
      stub_status on;       #打开状态统计功能
      access_log off;       #关闭此位置的日志记录
    }
  }
}

Ocho, control de acceso Nginx

① Control de acceso basado en autorización

Generar archivos de autenticación de contraseña de usuario
también se pueden generar en línea

yum install -y httpd-tools

htpasswd -c /usr/local/nginx/passwd.db fox

Si elimina los permisos de los usuarios normales, debe establecer el propietario del archivo

chown nginx /usr/local/nginx/passwd.db
chmod 700 /usr/local/nginx/passwd.db

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;
    }
  }

② Control de acceso basado en el cliente

Las reglas de control de acceso son las siguientes:
denegar IP / segmento de IP: denegar el acceso de cliente a una determinada IP o segmento de IP.
Permitir segmento de IP / IP: permitir que las
reglas de acceso de cliente de una determinada IP o segmento de IP se ejecuten de arriba a abajo, y detente si coincide. Ya no coincide

vim /usr/local/nginx/conf/nginx.conf
    server {
    
    
        location / {
    
    
        #添加控制规则
        deny 192.168.0.10;
        #拒绝访问的客户端IP
        allow all;
        #允许其它IP客户端访问
        }
    }
    
systemctl restart nginx

Nueve, host virtual Nginx

① Alojamiento virtual basado en nombre de dominio

echo "192.168.0.50 www.benet.com www.accp.com" >> /etc/hosts

►Preparar documentos web para alojamiento virtual

mkdir -p /var/www/html/accp
mkdir -p /var/www/html/benet
echo "<h1>www.accp.com</h1>" > /var/www/html/accp/index.html
echo "<h1>www.benet.com</h1>" > /var/www/html/benet/index.html

►Modificar el archivo de configuración de Nginx

vim /usr/local/nginx/conf/nginx.conf
http {
    
    
    server {
    
    
        listen 80;
        server_name www.accp.com;
        charset utf-8;
        access_log logs/www.accp.com.access.log;
        location / {
    
    
            root /var/www/html/accp;
            index index.html index.html;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
    
    
            root html;
        }
    }

    server {
    
    
        listen 80;
        server_name www.benet.com;
        charset utf-8;
        access_log logs/www.benet.access.com.log;
        location / {
    
    
        root /var/www/html/benet;
        index index.html index.html;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
    
    
            root html;
        }
    }
}
nginx -t
systemctl restart nginx


② Host virtual basado en IP

ifconfig ens33:0 192.168.0.60/24
vim /usr/local/nginx/conf/nginx.conf
http {
    
    
    server {
    
    
        listen 192.168.0.50:80;
        server_name www.benet.com;
        charset utf-8;
        access_log logs/www.benet.access.log;
        location / {
    
    
            root /var/www/html/benet;
            index index.html index.php;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
    
    
            root html;
        }
    }
    
    server {
    
    
        listen 192.168.0.60:80;
        server_name www.accp.com;
        charset utf-8;
        access_log logs/www.accp.access.log;
        location / {
    
    
            root /var/www/html/accp;
            index index.html index.html;
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
    
    
            root html;
        }
    }
}
nginx -t
systemctl restart nginx


③ Host virtual basado en puerto

vim /usr/local/nginx/conf/nginx.conf
http {
    
    
    server {
    
    
        listen 192.168.0.50:233;
        server_name www.accp.com;
        charset utf-8;
        access_log logs/www.accp.access.log;
        location / {
    
    
            root /var/www/html/accp;
            index index.html index.html;
        }
        error_page 500 502. 503 504 /50x.html;
        location = 50x.html{
    
    
            root html;
        }
    }

    server {
    
    
        listen 192.168.0.50:8080;
        server_name www.benet.com;
        charset utf-8;
        access_log logs/www.benet.access.log;
        location / {
    
    
            root /var/www/html/benet;
            index index.html index.php; 
        }
        error_page 500 502 503 504 /50x.html;
        location = 50x.html{
    
    
            root html;
        }
    }
}
nginx -t
systemctl restart nginx.service

Supongo que te gusta

Origin blog.csdn.net/qq_42427971/article/details/115330656
Recomendado
Clasificación