Table des matières
Nginx coma reverse proxy
La tòca d'un reverse proxy
es de distribuir las requèstas HTTP e HTTPS a mantuns servidors web. Amb aquela foncionalitat es possible lo balanç de carga (load balancing) sià a torn de rotle (round robin) o al azard e mai de possibilitats autras .
Exemples sul malhum
Dins los exemples donats sul malhum Korben info e dins la documentacion de Nginx Nginx reverse proxy, vesèm pas qu'un exemple ont un site unic es partejat en doas partidas.
- per los fichièrs estatics, coma los imatges (ex: /img) ;
- per la partida dinamica del site (ex :*.php).
server { listen 80; server_name korben.info; access_log /var/log/korben.access.log; error_log /var/log/korben.nginx_error.log debug; location / { proxy_pass http://127.0.0.1:8080/; } location /phpmyadmin { proxy_pass http://127.0.0.1:8080/phpmyadmin; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/nginx-default; }
Nòstre cas es diferent
Çò que volèm es aver un portal que posquèsse distribuir la carga o las requèstas demest mantuns sites dins cadun sa machina virtuala o sa gabia / jail. Se tròba que Nginx es son prètzfach, ansin per cada machina virtuala avèm un servidor web, apache2.4
o flask
o SolR
o whatever e son contengut completament dedicat e decoblat.
Doncas farem un blòc server
per cada site, entresenharem lo(s) blòc(s) location
amb la clausa proxy_pass
seguida del parametre upstream
(backend_wiki
o backend_calelh
).
#user nobody; worker_processes 1; # ... #error_log /var/log/nginx/error.log; # #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; # ... sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; include conf.d/*.conf; include Includes/*; }
Puèi avèm creat un repertòri conf.d
ont metèm los aliasses per los servidors
conf.d/proxy.conf
upstream backend_wiki{ server 192.168.0.25; } upstream backend_calelh{ server 192.168.0.22:5000; }
En fin avèm creat dos repertòris Includes
e Excludes
. Puèi botam un fichièr de l'extension .conf
dins lo repertòri Includes
per cada servidor web. Per enebir un servidor, sufís de botar lo fichièr .conf
dins lo repertòri Excludes
a la mòda de BSD e de tornar enregar nginx .
Includes/wiki.conf
server { listen 80; server_name wiki wiki.macarel.net; access_log /var/log/nginx/wiki.access.log; error_log /var/log/nginx/wiki.error.log; location / { proxy_pass http://backend_wiki; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/nginx-dist; } }
Includes/calelh.conf
server { listen 80; server_name calelh calelh.macarel.net; access_log /var/log/nginx/calelh.access.log; error_log /var/log/nginx/calelh.error.log; location /{ proxy_pass http://backend_calelh; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/nginx-dist; } }
De doblidar pas
#service nginx restart