Equilibrio de carga y proxy inverso de Nginx

Uno, proxy inverso

Proxy de reenvío: 

          El proxy de reenvío, que es lo que a menudo llamamos proxy, funciona de la siguiente manera: no puedo acceder a un sitio web determinado, pero puedo acceder a un servidor proxy, y este servidor proxy puede acceder al sitio web al que no puedo acceder, así que me conecto al proxy El servidor le dijo que necesitaba el contenido del sitio web al que no se podía acceder, y que el servidor proxy lo recuperaría y me lo devolvería. Desde la perspectiva del sitio web, solo hay un registro cuando el servidor proxy recupera el contenido. A veces no se sabe que es la solicitud del usuario, y la información del usuario también se oculta, dependiendo de si el proxy le dice al sitio web.

         En resumen, el proxy de reenvío es un servidor ubicado entre el cliente y el servidor de origen. Para obtener contenido del servidor de origen, el cliente envía una solicitud al proxy y especifica el destino, y luego el proxy reenvía la solicitud al servidor de origen y devuelve el contenido obtenido a Cliente. El cliente debe realizar algunos ajustes especiales para utilizar el proxy de reenvío.

El concepto de proxy inverso:

         Un proxy inverso significa que el cliente no sabe que no hay contenido en el servidor proxy que desea. Para el cliente, el servidor proxy es el servidor original y el cliente no necesita realizar ninguna configuración especial. El cliente está en el espacio de nombres del servidor proxy inverso Envía una solicitud normal para el contenido de, y luego el servidor proxy inverso determina dónde reenviar la solicitud y devuelve el contenido obtenido al cliente como si el contenido fuera suyo.

 La diferencia entre proxy directo y proxy inverso:

        La aplicación típica del proxy de reenvío es proporcionar acceso a Internet para clientes LAN en el firewall. El proxy de reenvío también puede utilizar la función de almacenamiento en búfer para reducir el uso de la red. El uso típico del proxy inverso es proporcionar el servidor detrás del cortafuegos para que los usuarios de Internet accedan. El proxy inverso también puede proporcionar equilibrio de carga para varios servidores back-end o proporcionar servicios de almacenamiento en búfer para servidores con back-end más lentos. Además, el proxy inverso también puede habilitar políticas de URL avanzadas y tecnologías de administración, de modo que las páginas web en diferentes sistemas de servidor web existan en el mismo espacio de URL al mismo tiempo.

       En términos de seguridad, el proxy de reenvío permite al cliente acceder a cualquier sitio web a través de él y oculta al propio cliente, por lo que debe tomar medidas de seguridad para garantizar que solo los clientes pasados ​​y autorizados brinden servicios. El proxy inverso es transparente al exterior y los visitantes no saben que están accediendo a un proxy.

alrededores:

    Proxy + servidor de equilibrio de carga: centos7: 192.168.253.130

    servidor web 1: centos7: 192.168.253.110

    servidor web 2: centos7: 192.168.253.120

三台服务器都操作
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld  关闭防火墙
[root@localhost ~]# yum -y install ntpdate
[root@localhost ~]# ntpdate pool.ntp.org   同步时间

1. Instale nginx y modifique el archivo de configuración nginx.conf

[root@localhost src]# yum -y install gcc gcc-c++ zlib-devel pcre-devel   源码安装nginx所需要的依赖包
[root@localhost src]# tar xzf nginx-1.12.2.tar.gz 
[root@localhost src]# cd nginx-1.12.2
[root@localhost nginx-1.12.2]# ./configure
[root@localhost nginx-1.12.2]# make && make install

####在http{}中的server{}中的location  / {}中添加:proxy_pass ip   这个ip是代理的ip
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf  添加
46             proxy_pass http://192.168.253.110;

2. Instale web en el lado del proxy, pruebe

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo "welcome to hya" > /var/www/html/index.html
[root@localhost ~]# systemctl  start httpd

代理服务器开启nginx
[root@localhost ~]# /usr/local/nginx/sbin/nginx 
[root@localhost ~]# ss -tnl
State       Recv-Q Send-Q       Local Address:Port                      Peer Address:Port              
LISTEN      0      128                      *:80                                   *:* 

 Dos, Nginx logra el equilibrio de carga

Descripción del módulo de equilibrio de carga ascendente:

         upstream es el módulo http upstream de nginx.Este módulo utiliza un algoritmo de programación simple para lograr el equilibrio de carga desde la IP del cliente hasta el servidor back-end, y especifica un nombre de equilibrio de carga a través del comando upstream. Este nombre se especifica de forma arbitraria y se puede llamar directamente cuando sea necesario utilizarlo más adelante.

upstream admite algoritmos de equilibrio de carga:

El módulo de equilibrio de carga de nginx admite actualmente 4 algoritmos de programación,

Sondeo (predeterminado): cada solicitud se asigna a diferentes servidores back-end en orden cronológico. Si el servidor back-end deja de funcionar, el servidor defectuoso se eliminará automáticamente, por lo que el acceso del usuario no se verá afectado. Peso especifica el valor de peso. Cuanto mayor sea el valor, mayor será la posibilidad de acceso. Esto depende del nivel de configuración del servidor back-end.

Ip_hash: Cada solicitud se asigna de acuerdo con el resultado hash de la IP de acceso, de modo que los visitantes de la misma IP acceden regularmente a un servidor back-end, resolviendo eficazmente el problema de compartir sesiones de páginas dinámicas.

Regular: este es un algoritmo de equilibrio de carga más inteligente que los dos anteriores. Este algoritmo puede equilibrar inteligentemente la carga en función del envío de la página y el tiempo de carga, es decir, asignar solicitudes de acuerdo con el tiempo de respuesta del servidor backend, y el tiempo de respuesta es corto. Asignación prioritaria.

url_hash: este método distribuye las solicitudes de acuerdo con el resultado hash de la URL a la que se accede, de modo que cada URL se dirige al mismo servidor back-end, lo que puede mejorar aún más la eficiencia del servidor de caché back-end.

Parámetros de estado admitidos por upstream:

En el módulo http upstream, puede especificar la dirección IP y el puerto del servidor back-end a través de la instrucción del servidor, y también puede establecer el estado de cada nodo en la programación del equilibrio de carga, como: abajo: indica que el servidor actual no participa en el equilibrio de carga. copia de seguridad: copia de seguridad reservada Cuando todas las demás máquinas que no son de copia de seguridad fallan o están ocupadas, se solicitará la máquina de copia de seguridad, por lo que esta máquina también es la menos estresada.

 max_fails: permite el número de fallos de solicitud, el valor predeterminado es 1, cuando se excede el número máximo de veces, devuelve

Error en la definición del módulo proxy_next_upstream.

Fail_timeout: el tiempo para suspender el servicio después de experimentar un error de max_fails. Max_fails y faul_timeout se utilizan juntos.

Nota: Cuando el algoritmo de programación de carga es ip_hash, el estado del servidor back-end en la programación de equilibrio de carga no puede ser Peso y respaldo.

1. Configure el archivo nginx.conf (basado en la operación del entorno de proxy inverso)

###########################################
在http{}中server{}外添加:
upstream    webservers {
        server  ip:80    weight=1;
        server  ip:80   weight=1;
        }
并且修改location  / {}中http://后的名称为upstream后的名字
location / {
            root   html;
            index  index.html index.htm;
            proxy_pass  http://webservers;
            proxy_set_header X-Real-IP $remote_addr;
        }
####################################################
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
 34     upstream webservers{
 35       server 192.168.253.110:80 weight=1;
 36       server 192.168.253.120:80 weight=1;
 37     }

 46         location / {
 47             root   html;
 48             index  index.html index.htm;
 49             proxy_pass http://webservers;
 50         }

 2. Instale la web y pruebe

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo "welcome to hya222" > /var/www/html/index.html
[root@localhost ~]# systemctl  start httpd

负载服务重载nginx
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload

Supongo que te gusta

Origin blog.csdn.net/yeyslspi59/article/details/108071355
Recomendado
Clasificación