设置:在1>服务器上运行使用Angular JS的AWS Web和使用Flask的Python。我在一个安全的服务器上工作,因此无法直接访问2>。3>我已经将NGINX设置为从本地安全网络访问图形用户界面应用程序。4>应用程序在awsserver:9506上运行/appName GUI Flask应用程序在托管在127.0.0.1:5000上的AWS服务器上运行。此应用程序有2个uri的交叉和交叉:127.0.0.1:5000/交叉127.0.0.1:5000/accross
现在,在设置NGINX之后,我可以在GUI中使用域名访问它,而无需使用端口: doman.name/appName
现在,当我尝试使用它时,向服务器发送一个请求,将我的url更改为: doman.name/cross。我在NGINX配置中做了更改,可以访问它,但无法获得响应。下面是我的NGINX配置文件:
server {
listen 80;
server_name domain.name;
root /home/Tomcat/webapps/appName;
location / {
proxy_pass http://hostIP:9505/; #runs the tomcat home page
}
location /appName/ {
proxy_pass http://hostIP:9505/appName; #runs the application home page
}
location /cross/ {
proxy_pass http://127.0.0.1:5000/cross; #hits the python flask app and am trying to send post
}
}我还注意到,我的POST请求正在被NGINX转换为GET到服务器
发布于 2017-04-04 23:22:33
您需要与尾随/的使用一致。使用proxy_pass语句(与alias一样),nginx执行文本替换以形成重写的URI。
接口的URI是/cross还是/cross/?当强制服务器执行重定向(例如,附加/)时,POST将转换为GET。
没有必要在location和proxy_pass上指定相同的URI,因为没有进行任何更改。
如果前两个location块中的hostIP相同,并且假定缺少尾随的/是偶然的,则可以将它们合并到单个location块中。
例如:
location / {
proxy_pass http://hostIP:9505;
}
location /cross {
proxy_pass http://127.0.0.1:5000;
}有关详细信息,请参阅this document。
https://stackoverflow.com/questions/43209552
复制相似问题