Il y a plusieurs configurations de sites dans mon nginx, et lorsque je redémarre la machine, si l'un des sites en amont ne peut pas être atteint, nginx ne démarrera pas du tout, et ces sites sains ne démarreront pas en conséquence, comment laisser nginx ignore-t-il ces sites invalides?
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# nginx-naxsi config
##
# Uncomment it if you installed nginx-naxsi
##
#include /etc/nginx/naxsi_core.rules;
##
# nginx-passenger config
##
# Uncomment it if you installed nginx-passenger
##
#passenger_root /usr;
#passenger_ruby /usr/bin/ruby;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
et activé par les sites / exemple1 est
upstream example1 {
server example1.service.example.com;
}
server {
listen 80;
server_name example1.com;
location / {
proxy_pass http://example1/;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
et activé par les sites / example2 est
upstream example2 {
server example2.service.example.com;
}
server {
listen 80;
server_name example2.com;
location / {
proxy_pass http://example2/;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Lorsque je redémarre la machine et qu'à ce moment example2.service.example.com est arrêté, nginx ne démarre pas du tout, c'est-à-dire que même example1.service.example.com est disponible, nginx ne sert pas pour example1
===== update Explication de "is down": Tous les sous-domaines sont automatiquement enregistrés / désenregistrés sur mon propre serveur DNS, donc si le serveur est en panne, le DNS ne répondra pas à un tel domaine lorsqu'il essaiera de le résoudre.
Réponses:
Enfin, je découvre la solution, résoudre le problème de l'emplacement du domaine insdie!
exemple:
Et nginx n'essaiera pas de résoudre
http://something.service.lab.mu
au moment du démarrage.la source
proxy_pass $target;
, j'obtiens "502 Bad Gateway",proxy_pass http://$target
me donne "500 Internal Server Error". C'est alors que Nginx est en mesure de résoudre l'hôte.Pour quiconque tombe sur ce problème, @cgcgbcbc est correct.
Mais vous devez également ajouter un
directive au-dessus de la
sinon vous obtiendrez une erreur dans nginx, comme:
la source