nginx - la redirection échoue après deux proxys inverses
怪我咯
怪我咯 2017-05-16 17:24:31
0
2
1185

Il existe un serveur sur l'intranet avec 3 ports qui fournissent des services Web. Les serveurs sont nginx, apache et serv-u. Nous devons maintenant transférer trois services vers le réseau externe.

  • Aucune autorisation pour contrôler le routeur
  • La gestion du réseau utilise uniquement PortTunnel pour transférer le port 80 vers le réseau externe 882

Je voulais donc le fusionner dans une redirection de port et utiliser nginx pour déterminer inversement l'hôte.
nginx.conf est le suivant :

server {
    listen       80;
    server_name  no1.home s1.abc.com;
    index index.html index.htm index.php;      
    access_log off;
    location / {
        proxy_set_header   X-Real-IP  $remote_addr;
        proxy_set_header   X-HappyHome  XMWZWX;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://10.110.39.2:10;    
    }
}

Trois morceaux de code remplacent respectivement trois éléments. Il est normal d'utiliser Host pour l'analyser, mais une fois que vous utilisez le réseau externe défini par le système de gestion de réseau, des problèmes surviendront :

Après avoir visité http://xxx.com:882/folder
Il passera automatiquement à http://xxx.com:80/folder/

Quel est le problème ? Nginx.conf est-il mal configuré ?

怪我咯
怪我咯

走同样的路,发现不同的人生

répondre à tous(2)
左手右手慢动作

D'accord, j'ai trouvé la réponse après avoir longuement parcouru la documentation de nginx.
Ajouter une phrase
proxy_redirect "http://10.110.39.2:80" "http://$host:882" ;
à la configuration des trois sites C'est ça.

左手右手慢动作

Le problème n'est pas visible dans le fichier de configuration publié. Je ne peux donc donner que les suggestions suivantes (dans l'ordre) :

  1. Ouvrez access_log et confirmez que la demande d'accès à http://xxx.com:882 a bien été traitée par le nginx. Il est recommandé de vérifier le journal global plutôt que le journal configuré pour ce serveur virtuel. Cela peut être utilisé pour éliminer le problème des demandes traitées par d'autres serveurs virtuels en raison d'erreurs de configuration. http://xxx.com:882的请求确实已经被该nginx处理。建议查看全局的log,而不是针对此 virtual server 所配置的日志,这样用来排除由于配置错误,请求被其他 virtual server 处理的问题。
  2. 如果[1]得到确认,则如法炮制确认 http://10.110.39.2:10 是否收到请求。
  3. 如果[2]也得到了确认,那么这个时候,请对监听 10.110.39.2:10
  4. Si [1] est confirmé, suivez la même méthode pour confirmer si http://10.110.39.2:10 a reçu la demande.
🎜Si [2] est également confirmé, alors à ce moment-là, veuillez déboguer l'application qui écoute 10.110.39.2:10. 🎜 🎜
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal