为什么nginx是nginx将上游名称放在重定向的URL中?
这是我的nginx.conf
:
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream servs {
server facebook.com;
}
server {
listen 80;
location / {
proxy_pass http://servs;
}
}
}
当我访问端口80时,我得到:
无法访问此网站
无法找到servs.facebook.com的服务器DNS地址。
为什么放置" 服务。"在 facebook.com 之前?
答案 0 :(得分:0)
您没有在上游请求中设置Host
标头,因此nginx
构造了proxy_pass
指令中的值。当您使用upstream
块时,此值是upstream
块的名称,而不是您尝试访问的服务器的名称。
如果您使用upstream
块,建议明确设置Host
标头:
proxy_set_header Host example.com;
有关详情,请参阅this document。