我已经创建了具有公共和私有子网的AWS VPC。公共子网包含具有公共IP的ec2实例。在该实例中,我已经将nginx安装为Web服务器。
在私有子网中,我添加了一个包含Node.js应用程序的实例。它没有公共IP。
现在我要我的Web服务器路由
www.mydomain.com
到Web服务器并显示html内容
www.mydomain.com/api/
到托管Node.js应用程序的应用程序服务器。
现在我已经像这样配置了nginx
events { }
http {
upstream app_server {
server 10.0.2.166:80;
}
server {
listen 80 default_server;
server_name mydomain.com;
client_max_body_size 60M;
access_log off;
location / {
root /data/www;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ^`^xupgrade ^`^y;
proxy_cache_bypass $http_upgrade;
proxy_connect_timeout 75s;
proxy_read_timeout 300s;
}
location /api {
include /etc/nginx/mime.types;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ^`^xupgrade ^`^y;
proxy_cache_bypass $http_upgrade;
proxy_connect_timeout 75s;
proxy_read_timeout 300s;
proxy_pass http://app_server;
}
}
它非常适合将内容加载到www.mydomain.com
但是当它路由到我的应用程序服务器中的www.mydomain.com/api/
时,它正在添加这样的路径组件
Loading /api/
Loading /api/
结果,正确的请求未得到处理。它应在我的应用程序服务器中充当/
。
我在这里想念什么?