1. Introducción a Nginx
1. ¿Qué es nginx?
Nginx es un servidor proxy inverso y HTTP de alto rendimiento. Es muy potente en el manejo de alta concurrencia y puede resistir la prueba de alta carga. Hay un formulario de informe.
Ming puede admitir hasta 50.000 conexiones simultáneas.
2. Proxy inverso
正向代理
: Es necesario configurar un servidor proxy en el cliente para acceder al sitio web especificado. (Configuración del cliente)反向代理
: La dirección del servidor proxy está expuesta, pero la dirección IP del servidor real está oculta. (Configuración del servidor)
3. Equilibrio de carga
负载均衡
: Aumente la cantidad de servidores y luego distribuya la solicitud a cada servidor, cambie la solicitud original a un solo servidor para distribuir la solicitud a varios servidores y distribuya la carga a diferentes servidores
4. Separación de dinámica y estática
动静分离
: Los recursos estáticos y los recursos dinámicos de la aplicación en segundo plano se implementan por separado.
Dos, instalación de nginx
1. Instalación
# ls
nginx-1.12.2.tar.gz
pcre-8.37.tar.gz
- Instalar dependencias de pcre
1)tar –xvf pcre-8.37.tar.gz
2)./configure
3) make && make install
`检查版本`pcre-config -version
- Instalar dependencias de openssl, zlib, gcc
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
- Instalar nginx
1)tar –xvf nginx-1.12.2.tar.gz
2)./configure
3) make && make install
`检查版本`cd /usr/local/nginx/sbin
./nginx -v
./nginx
- Visita ip + 80
2. Comandos comunes
- número de versión
./nginx -v
- puesta en marcha
./nginx
- apagar
./nginx -s stop
- Reiniciar
./nginx -s reload
3. Archivo de configuración
位置
: /Usr/local/nginx/conf/nginx.conf
全局块
: Instrucciones de configuración para configurar el funcionamiento general del servidor, como worker_processes 1; configuración del procesamiento de números concurrentes
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events块
: Afecta la conexión de red entre el servidor Nginx y el usuario. Por ejemplo, worker_connections 1024; el número máximo de conexiones admitidas es 1024
events {
worker_connections 1024;
}
http块
: Bloque global Http + bloque de servidor
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
Tres, ejemplos de configuración
1. Proxy inverso
- Reenvío de puertos
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://192.168.22.203:8080/;
}
}
- Reenvío de ruta
Prioridad de ruta: (ubicación = / índice)> (ubicación / xxx / xxx / xxx)> (ubicación ^ ~ / xxx)> (ubicación ~ / xxx)
= (ubicación ~ *. [jpg | png | gif])> (ubicación /)
location =/index {
#精准匹配,只匹配当前路径
}
location /xxx/xxx/xxx {
#通用匹配,匹配/xxx开头的所有路径
}
location ^~/xxx {
#正则匹配,匹配/xxx开头的所有路径
}
location ~/xxx {
#匹配开头路径,匹配/xxx开头的所有路径
}
location ~*\.[jpg|png|gif] {
#匹配结尾,匹配/xxx开头的所有路径
}
2. Equilibrio de carga
- Balanceo de carga
upstream my-server{
server 192.168.22.203:8080;
server 192.168.22.203:8081;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://my-server/;
}
}
-
Estrategia de equilibrio
- Equilibrado: reenvío promedio al servidor durante dos días
upstream my-server{ server 192.168.22.203:8080; server 192.168.22.203:8081; }
- Peso: según el peso, el peso de la velocidad de procesamiento rápida es más importante y más distribuido
upstream my-server{ server 192.168.22.203:8080 weight=10; server 192.168.22.203:8081 weight=2; }
- IP Hash: una solicitud de IP siempre se envía a un servidor
upstream my-server{ ip_hash; server 192.168.22.203:8080; server 192.168.22.203:8081; }
3. Separación de dinámica y estática
- Agente de recursos dinámicos: ocupa 4 conexiones
location / {
proxy_pass 路径;
}
- Agente de recursos estáticos: ocupa dos conexiones
location / {
root 静态资源路径;
index 默认访问路径下的资源;
autoindex on;#展示静态资源的全部内容,以列表显示展开
}