【发布时间】:2015-03-16 09:12:15
【问题描述】:
我刚刚开始使用 Nginx,正在尝试设置一个服务器块来将子域 api.mydomain.com 上的所有请求转发到端口 8080。
这是我得到的:
更新:
server {
server_name api.mydomain.com;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
}
}
server {
server_name www.mydomain.com;
return 301 $scheme://mydomain.com$request_uri;
}
server {
server_name mydomain.com;
root /var/www/mydomain.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
服务器块存在于/etc/nginx/sites-available 中,我在/etc/nginx/sites-enabled 中创建了一个符号链接。
我的期望:
我在端口 8080 上运行 deployd。当我转到 api.mydomain.com/users 时,我希望从部署的 API 获得 JSON 响应,但我没有收到任何响应。
另外,我对www.mydomain.com 的 301 重定向不起作用。那个块是我从Nginx Pitfalls复制的代码。
我尝试过的:
- 确认
mydomain.com:8080/users和$ curl http://127.0.0.1:8080/users返回预期的响应。 - 更改服务器块后重新启动 nginx 服务。
- 尝试删除
proxy_set_header行。
知道我在这里缺少什么吗?
【问题讨论】:
标签: nginx virtualhost server proxypass