Fundamental
- Primero, el navegador del usuario envía una solicitud a nginx, y nginx juzga si es una solicitud dinámica o estática. Si es una solicitud estática, devuelve el archivo estático directamente. Si es una solicitud dinámica, la solicitud se reenvía al servidor uwsgi y uwsgi llama a nuestro django para procesar la solicitud y luego regresa paso a paso.
- WSGI es una interfaz de bajo nivel entre un servidor web (uWSGI) y una aplicación web o marco de aplicación (Django)
- uWSGI es un servidor web que implementa el protocolo WSGI, uwsgi, http y otros protocolos
- uwsgi es el protocolo de comunicación entre el servidor Nginx y el servidor uWSGI, que especifica cómo reenviar solicitudes a aplicaciones y devolver
El principio de proxy inverso de Nginx
Proxy de reenvío:
Si Internet fuera de la LAN se imagina como un gran grupo de recursos, el cliente en la LAN necesita acceder a Internet a través de un servidor proxy. Este servicio de proxy se denomina proxy de reenvío. El siguiente es el diagrama esquemático del proxy de reenvío.
Debido al entorno de trabajo, el trabajo diario solo puede limitarse a la LAN de la unidad. Si desea acceder a Internet, ¿qué debe hacer? Esto requiere el uso de proxies de reenvío.
proxy inverso:
El cliente desconoce el proxy, porque el cliente puede acceder sin ninguna configuración, solo necesitamos enviar la solicitud al servidor proxy inverso, y el servidor proxy inverso seleccionará el servidor de destino para obtener los datos y devolverlo al cliente, en este momento, el servidor proxy inverso y el servidor de destino son el mismo servidor para el mundo exterior, la dirección del servidor proxy está expuesta y la dirección del servidor real está oculta .IP
La diferencia entre el proxy de reenvío y el proxy inverso es, en una frase: si nuestro cliente lo usa, es un proxy de reenvío. Si se usa en el servidor y el usuario no tiene percepción, es un proxy inverso.
Instancia de proxy inverso
Darse cuenta del efecto:
Usando Nginx
un proxy inverso, acceda a 192.168.17.129 y salte directamente a127.0.0.1:8080
Nota: Si desea saltar de 192.168.17.129 al especificado por esta máquina ip
, debe modificar hosts
el archivo de esta máquina. saltar aquí
código de configuración
server {
listen 80;
server_name 192.168.17.129;
location / {
root html;
index index.html index.htm;
proxy_pass http://127.0.0.1:8080
}
}
Como se configuró anteriormente, Nginx
escuche 80
el puerto y acceda a ip192.168.17.129 (el valor predeterminado es 80
el puerto si no se agrega un número de puerto), por lo que al acceder a este nombre de dominio, saltará a la 127.0.0.1:8080
ruta. Aquí 127.0.0.1:8080 puede entenderse como la IP y el puerto establecidos por el archivo de configuración del servidor uWsgi uwsgi.ini
El significado aquí es: el servicio de proxy inverso nginx escucha el puerto 80 de 192.168.17.129, si hay una solicitud, irá al servidor correspondiente configurado por proxy_pass, nada más.
En ubicación, cuando las opciones raíz y proxy_pass se configuran al mismo tiempo, las dos opciones solo se ejecutarán.
El proxy inverso https no se puede configurar aquí
Reimpreso en: Configuración de Nginx - Proxy inverso