Heim > Fragen und Antworten > Hauptteil
server {
listen 80;
server_name mydomain.com;
location / {
proxy_pass http://myproxy.com:80;
proxy_set_header Host mydomain.com; #设置为跟server name 一样
}
}
Wie oben tritt ein 502-Fehler auf, wenn der Proxy_set_header auf den gleichen Servernamen eingestellt ist.
Fehlerstapel ist wie folgt:
upstream hat die Verbindung vorzeitig geschlossen, während der Antwortheader vom Upstream gelesen wurde, Client: 127.0.0.1, Server: mydomain.com, Anfrage: „GET /xx HTTP/1.0“, Upstream: „http://127.0.0.1:80/xx“ , Host: „mydomain.com
Ich bin verwirrt, was könnte der Grund dafür sein?
Wenn ich den Proxy-Port aktualisiere, z. B. indem ich ihn von 80 auf 81 ändere, Proxy-Pass http://myproxy.com:81;
An diesem Punkt kann es normal funktionieren. (Mein vorheriges myproxy.com war 80. Jetzt ist es 81.)
Aber warum?
習慣沉默2017-05-16 17:10:21
CentOS7安装维护Nginx,常见使用场景
server {
listen 80;
server_name mydomain.com;
location / {
proxy_pass http://127.0.0.1:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
或者下面这种形式
upstream server-a{
# api 代理服务地址
server 127.0.0.1:80;
}
server {
listen 80;
server_name mydomain.com; # 这里指定域名
# 匹配 api 路由的反向代理到API服务
location ^~/ {
rewrite ^/(.*)$ /$1 break;
proxy_pass http://server-a;
}
}