我有一个运行在docker容器中的expressjs节点服务器。 对于这个例子,它只有一个路由:GET /user返回一个简单的JSON对象。
我也有一个nginx服务器代理这个快递服务器使用:
location /api { rewrite ^/api/(.*) /$1 break; proxy_pass http://nodeapp:3000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded_For $proxy_add_x_forwarded_for; }
在我的index.js我使用url /api/user创build了一个XMLHttpRequest。
是重写模块, rewrite ^/api/(.*) /$1 break; ,在我的快递应用程序中代理路线的有效解决scheme? 还有其他的select吗? 虽然这工作的东西似乎“closures”,我不得不使用正则expression式这样的事情。 我不做devops的工作,只能玩弄nginx,所以如果有更好的解决scheme,我将不胜感激,如果你能指出我在正确的方向。
简单的在你的位置添加一个斜杠应该使nginx隐含地执行相同的转换。
location /api/ { proxy_pass http://nodeapp:3000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded_For $proxy_add_x_forwarded_for; }
详情请参阅此文件 。