Lorsque je configure mon proxy inverse pour qu'il fasse suivre son propre port 80 vers son propre port 8080, j'obtiens l'avertissement suivant
2016/03/28 22:05:59 [alert] 4193#0: 512 worker_connections are not enough
qui est vraisemblablement le résultat d'une boucle infinie.
Dans la réponse acceptée pour Nginx Config : Reverse Proxy frontal vers un autre port L'utilisateur a écrit : "Je suppose que nginx n'est pas le serveur qui écoute sur le port 5010 ainsi que sur le port 80, n'est-ce pas ? Est-ce parce que les proxys inversés ne peuvent pas se rediriger vers eux-mêmes ? Ou y a-t-il une autre raison pour laquelle cette boucle infinie se produit, et ce commentaire était juste un faux-fuyant ?
Voici mon nginx.conf. Je reçois l'avertissement lorsque je vais sur router.example.com. Lorsque je supprime ce qui se trouve entre #### BEGIN BAD LINES ####
cela fonctionne bien.
user root;
worker_processes 1;
worker_cpu_affinity 0101;
master_process off;
worker_priority 10;
error_log /tmp/var/log/nginx/error.log;
pid /tmp/var/run/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 512;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# Because end of http://nginx.org/en/docs/http/server_names.html
server_names_hash_bucket_size 64;
# From NixCraft
# http://www.cyberciti.biz/tips/using-nginx-as-reverse-proxy.html
# Host required
server {
listen 80 default_server;
server_name "";
return 444;
}
#### BEGIN BAD LINES ####
## Start router proxy ##
server {
listen 80;
server_name router.example.com
tomatopaste.example.com;
access_log /var/log/nginx/log/router.example.access.log main;
error_log /var/log/nginx/log/router.example.error.log;
## send request back to apache1 ##
location / {
proxy_pass http://192.168.1.1:8080/;
proxy_redirect default;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
## End ##
#### END BAD LINES ####
## Start primary proxy ##
server {
listen 80;
server_name jira.example.com
confluence.example.com
stash.example.com
cacti.example.com;
access_log /var/log/nginx/log/lamp.example.access.log main;
error_log /var/log/nginx/log/lamp.example.error.log;
## send request back to apache1 ##
location / {
proxy_pass http://192.168.1.99/;
proxy_redirect default;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
## End ##
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# Websockets
server {
listen 8686;
server_name other.example.com;
location / {
proxy_pass http://192.168.1.99:8686;
proxy_redirect default;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
}
1 votes
Nginx n'a aucun problème à se servir de son propre proxy. Je ne vois pas où il écoute sur 8080 cependant.
4 votes
Petit détail : le nom de domaine officiel à utiliser dans les exemples et pour cacher votre vrai nom de domaine est le suivant exemple.com plutôt que sample.com. Les autres noms de domaine ont tendance à être détenus par des personnes déjà ( sample.com est une propriété ).
0 votes
@Olathe Whoops. Merci de m'avoir prévenu. Je devais être plus fatigué que je ne le pensais hier soir en l'écrivant. C'est corrigé !
0 votes
@alexeyTen L'écoute 8080 ne fait pas partie de nginx, mais elle est sur la même IP. Il fait partie d'AdvancedTomato, donc je pense que c'est apache ( ?)