====== 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