我在heroku上托管了两个应用程序。第一个基于Go
,第二个基于reactjs
和nodejs
,nginx
。
我使用nginx
将node_react.herokuapp.com
的应用程序请求代理到gosite.herokuapp.com
。问题是我无法通过nginx与gosite通信。
我的nginx.conf.erb
文件看起来像这样。
daemon off;
worker_processes <%= ENV['NGINX_WORKERS'] || 4 %>;
events {
use epoll;
accept_mutex on;
worker_connections 1024;
}
http {
server {
listen <%= ENV["PORT"] %>;
server_name _;
access_log access.log;
error_log error.log;
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 $proxy_add_x_forwarded_for;
}
location /api {
proxy_pass http://gosite.herokuapp.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ .*\.(gif|jpg|jpeg|txt|js|css|svg|woff|apk|jar|zip)$
{
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 $proxy_add_x_forwarded_for;
}
location ~ .*(__webpack_hmr)$
{
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 $proxy_add_x_forwarded_for;
}
}
}
在浏览器的网络预览中我什么也看不到。
在nodejs在没有nginx代理的情况下进行api调用时,我遇到了类似的问题,但是我通过将主机标头设置为request(url,{header:{'host':'gosite.herokuapp.com'}})
来解决了这个问题,现在我在使用nginx时遇到了问题。