我刚刚开始使用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
时,我希望从deployd API获得JSON响应,但我没有得到任何响应。
此外,我对www.mydomain.com
的301重定向无效。该块是我从Nginx Pitfalls复制的代码。
mydomain.com:8080/users
和$ curl
http://127.0.0.1:8080/users
会返回预期的回复。proxy_set_header
行。知道我在这里失踪的是什么吗?
答案 0 :(得分:1)
您不需要明确捕获用例的URL。以下内容适用于您的位置块:
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
}
答案 1 :(得分:0)
事实证明,我的问题不在于Nginx配置,而在于我的DNS设置。我必须为每个子域(A NAME
和www
)创建api
条记录。菜鸟错误。
我的一位同事实际上帮我解决了这个问题。当我使用本地机器中的telnet
通过IP地址连接到服务器时,我们发现了问题,并且看到Nginx实际上正在按照我的意图行事。