====== 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 [[https://korben.info/configurer-nginx-reverse-proxy.html|Korben info]] e dins la documentacion de Nginx [[https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/|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 easy peasy lemon squeezy