Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
start:nginx [2018/11/05 14:32] domenge créée |
start:nginx [2018/11/09 07:02] (Version actuelle) domenge [Nginx coma reverse proxy] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Nginx coma reverse proxy ====== | ====== Nginx coma reverse proxy ====== | ||
- | La tòca d'un ''reverse proxy'' es de distribuir las requèstas HTTP e HTTPS | + | 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). | ||
+ | |||
+ | <file> | ||
+ | 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; | ||
+ | } | ||
+ | </file> | ||
+ | ===== 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''). | ||
+ | |||
+ | <file> | ||
+ | |||
+ | #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/*; | ||
+ | } | ||
+ | |||
+ | </file> | ||
+ | Puèi avèm creat un repertòri ''conf.d'' ont metèm los aliasses per los servidors\\ | ||
+ | === conf.d/proxy.conf === | ||
+ | <file> | ||
+ | upstream backend_wiki{ | ||
+ | server 192.168.0.25; | ||
+ | } | ||
+ | |||
+ | upstream backend_calelh{ | ||
+ | server 192.168.0.22:5000; | ||
+ | } | ||
+ | </file> | ||
+ | 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 === | ||
+ | <file> | ||
+ | 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; | ||
+ | } | ||
+ | } | ||
+ | </file> | ||
+ | === Includes/calelh.conf === | ||
+ | <file> | ||
+ | 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; | ||
+ | } | ||
+ | } | ||
+ | </file> | ||
+ | === De doblidar pas === | ||
+ | <code> | ||
+ | #service nginx restart | ||
+ | </code> | ||
+ | <note>easy peasy lemon squeezy</note> | ||