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