Hoy hablé sobre nginx. En realidad, es extraño tener una plancha vieja. ¿No se hace nginx por operación y mantenimiento? De hecho, en la mayoría de los casos, si la empresa es relativamente grande, si hay operación y mantenimiento, esta olla debe hacerse mediante operación y mantenimiento. Pero ahora hay una tendencia que se llama devops. También dije antes que la integración de desarrollo, operación y mantenimiento requiere un cierto conocimiento de operación y mantenimiento para el desarrollo. En algunas empresas emergentes de Internet, el tipo de trabajo técnico que están comenzando no está tan claro. La construcción, operación y mantenimiento del medio ambiente, la construcción de estructuras y el desarrollo deben estar disponibles.
Código fuente: https://github.com/limingios/netFuture/tree/master/nginx
Construcción del servicio Nginx y demostración básica (1)
Nginx
- Página web oficial
http://nginx.org/
- Introducción
Nginx es un servidor proxy inverso y HTTP ligero, de alto rendimiento, alta estabilidad y buena concurrencia. Por sus características, su aplicación es muy amplia.
- historia
Desarrollado por el programador ruso Igor Sysoev, fue utilizado originalmente por el portal ruso a gran escala y el motor de búsqueda Rambler (en ruso: Рамблер). Sus características son que ocupa menos memoria y tiene una fuerte concurrencia. De hecho, la concurrencia de nginx funciona mejor en el mismo tipo de servidor web. Actualmente, los usuarios de los sitios web de nginx en China continental incluyen: Sina, NetEase, Tencent y otros micronets conocidos. Chi Plurk también utiliza nginx.
- Comprender el concepto de agencia.
1. Reenviar proxy: en algunos casos, para que nuestros usuarios accedan al servidor, el usuario debe configurar manualmente la dirección IP y el número de puerto del servidor proxy.
2. Proxy inverso: se utiliza para servidor proxy, proxy del servidor de destino que queremos visitar. El servidor proxy acepta la solicitud, luego reenvía la solicitud al servidor en la red interna (agrupamiento) y devuelve el resultado del servidor al cliente.En este momento, el servidor proxy actúa como un servidor externo.
- Máquina configurada según código fuente
Tipo de sistema | dirección IP | Rol de nodo | UPC | Memoria | Nombre de host |
---|---|---|---|---|---|
Centos7 | 192.168.66.110 | nginx | 1 | 2G | nginx |
Centos7 | 192.168.66.111 | gato | 1 | 2G | tomcat1 |
Centos7 | 192.168.66.112 | gato | 1 | 2G | tomcat2 |
- Tres maquinas
Listo para trabajar
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
- Instale el paquete de instalación de pcre en el host nginx (192.168.66.110)
https://sourceforge.net/projects/pcre/files/pcre/
nginx rewrite depende de la biblioteca PCRE, por lo que debe compilar e instalar la biblioteca PCRE en el sistema Linux
wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.41/pcre-8.41.tar.gz
tar zxvf pcre-8.41.tar.gz
cd image.png
./configure
make && make install
pcre-config --prefix
- Instalar nginx
cd ..
wget http://nginx.org/download/nginx-1.13.10.tar.gz
tar zxvf nginx-1.13.10.tar.gz
mkdir nginx
cd nginx-1.13.10
./configure --prefix=/root/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/root/pcre-8.41
make && make install
cd ~
cd nginx/sbin/
./nginx -v
./nginx -t
- Iniciar nginx
cd ~/nginx/sbin/
./nginx
En realidad no tengo permiso
Modificar el archivo de configuración
vi ~/nginx/conf/nginx.conf
#修改成user root
#wq保存
#重新加载nginx新的配置
./sbin/nginx -s reload
- 111 y 112 dos máquinas para instalar tomcat
java -version
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz
tar zxvf apache-tomcat-8.5.37.tar.gz
cd apache-tomcat-8.5.37
cd bin
./startup.sh
curl 127.0.0.1:8080
- 111 y 112 Agregue un método de archivo index.jsp para ver
cd /root/apache-tomcat-8.5.37/webapps/ROOT
>index.jsp
vi index.jsp
cat index.jsp
### Parámetros del módulo de aguas arriba y ubicación y explicación del caso (2)
De hecho, el software futuro tiende a ser modular. El montaje está completo.
río arriba
- Introducción del sitio web oficial
http://nginx.org/en/docs/
- instancia aguas arriba
http://nginx.org/en/docs/http/ngx_http_upstream_module.html
- parámetro aguas arriba
nombre del parámetro | descripción |
---|---|
Servicio | Dirección de servicio inverso más puerto |
peso | Pesos |
max_fails | ¿Cuántas fallas crees que ha colgado el host, échalo? El valor predeterminado es 1 vez. La empresa generalmente configura de 2 a 3 veces, pero el comercio electrónico pone más énfasis en la experiencia del usuario, por lo que es 1 vez. La premisa es que la oferta de esta máquina es relativamente grande. |
fail_timeout | Tiempo de re-detección después de la patada |
apoyo | Servicio de respaldo |
max_conns | Número máximo de conexiones permitidas |
comienzo lento | Cuando se restaure el nodo, no se una inmediatamente |
Modificar 66.110 ese archivo de configuración nginx
vi /root/nginx/conf/nginx.conf
cat /root/nginx/conf/nginx.conf
Debido a que los pesos son los mismos, los dos gatos machos 111 y 112 se giran
* Algoritmo de equilibrio de carga
1.ll + peso
El algoritmo de carga predeterminado en realidad asigna las solicitudes de servicio en función de los pesos.
2.ip_hash
Escenario de aplicación de computación basada en hash: mantenga la sesión consistente, la primera vez que visita la única, siempre ha sido la misma. hash (ip)% 3 = índice. Desventajas: cuando las comunidades o escuelas están centralizadas, sus direcciones IP son las mismas y la carga en un determinado nodo será muy, muy grande. Conviértase en un punto de acceso, con ip_hash haciendo que el peso deje de ser válido.
3.url_hash
Escenario de aplicación (de terceros): almacenamiento en caché de recursos estáticos, ahorro de almacenamiento y aceleración
4.menos_conn
Enlace mínimo
5.menos_hora
Para el tiempo de respuesta más pequeño, calcule el tiempo de respuesta promedio del nodo y luego tome el que tenga la respuesta más rápida y asigne un peso más alto.
6.keeplive
Número de conexiones ocupadas. El consumo de memoria es relativamente grande, pero la velocidad de respuesta es rápida y se debe mantener la conexión del socket.
- ubicación
1.root
La siguiente configuración es equivalente a volver a apuntar la ruta de entrada en el navegador
2.índice
Sobre la base de la separación de los extremos frontal y posterior, especifique la página inicial del sitio web
3.proxy_set_header
Se usa para redefinir el encabezado de la solicitud enviada al servidor backend
4.proxy_pass
Si agrega / a la URL después de proxy_pass, significa la ruta raíz absoluta; si no hay /, significa una ruta relativa, y la parte de la ruta coincidente también se le da al proxy.
Esquema de separación dinámico y estático
Hay dos formas de separar dinámicas y estáticas
- Ponga archivos estáticos en nginx
- Los archivos estáticos se colocan en el servidor designado y el servidor se distingue por la dirección de solicitud.
- Ponga archivos estáticos en nginx
#思路:动、静态的文件,请求时匹配不同的目录当访问gif,jpeg时 直接访问e:wwwroot;
server {
listen 80;
server_name localhost;
location / {
root e:wwwroot;
index index.html;
}
# 所有静态请求都由nginx处理,存放目录为html
location ~ .(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
root e:wwwroot;
}
# 所有动态请求都转发给tomcat处理
location ~ .(jsp|do)$ {
proxy_pass http://test;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root e:wwwroot;
}
}
- Servidor estático
Múltiples aguas arriba, múltiples ubicaciones y nombres de ubicación son diferentes.
PD: Finalmente, un dicho popular, tú eres el rey, yo soy tu eunuco, río arriba está el harén, puede haber varios harenes, cada harén se ha asignado de acuerdo a diferentes gordos y delgados, el harén A está por encima de 120. El harén B es todo por debajo de 100. Hay muchas concubinas amadas en el harén. Por la noche, el rey tiene una demanda. Dígale al eunuco. Según la situación en el harén, el eunuco puede usar un cierto algoritmo para ver que la concubina puede ir Dile al rey, el rey irá directamente a mí y le dirá a su concubina dónde usar el algoritmo.