Ceci est une ancienne révision du document !
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.
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.
#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.
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;
}
}
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
