我有django和烧瓶应用程序通过不同的端口在同一台机器上运行:
Django在服务器上运行:8088瓶在服务器上运行:666
在NGINX.conf中,我有以下代码:
location / {
proxy_pass http://127.0.0.1:8088;
}
location ^/server2 {
proxy_pass http://127.0.0.1:666;
}
Django已经成功地运行了一年多,这是一个新增加的烧瓶。每当我试图访问一个烧瓶url时,我都会得到一个“此url在此服务器上不存在”的错误,或者有时会出现500个错误(当我一直在篡改时)。
如果我为一个特定的酒瓶写位置信息,如下所示:
location /server2/splash {
proxy_pass http://127.0.0.1:666/splash;
}
它可以工作,但我显然不想为烧瓶应用程序中的每个URL编写单独的位置信息。
我已经在堆栈溢出上浏览了许多现有的Nginx位置帖子,但是我没有能够让它正常工作。有什么想法吗?
谢谢!
编辑
这是我正在尝试实现的一个例子,但与其对每个URL进行单独的映射,我还需要一个覆盖所有URL的单个映射:
location /server2{
proxy_pass http://127.0.0.1:666/splash;
}
location /server2/split {
proxy_pass http://127.0.0.1:666/split;
}
location /server2/export {
proxy_pass http://127.0.0.1:666/export;
}
location /server2/import {
proxy_pass http://127.0.0.1:666/import;
}
发布于 2012-12-13 03:58:11
你为什么要用^
标志?只要把它拿掉我想它会有用的:
location /server2 {
proxy_pass http://127.0.0.1:666;
}
发布于 2013-04-11 07:20:27
注意,当您使用location /server2
时,server2
仍然被传递给您的烧瓶应用程序。
在本例中,Nginx执行以下操作:
server.com/server2 => http://127.0.0.1:666/server2
server.com/server2/splash => http://127.0.0.1:666/server2/splash
在这种情况下,location
并不是在重写。始终检查/var/log/nginx
(或您的日志所在的任何地方),以检查浏览器完成的请求以及处理站点规则后Nginx查找的内容。
您可能希望设置一个upstream
指令:
upstream flask_server {
server 127.0.0.1:666;
}
server {
...
location /server2 {
proxy_pass http://flask_server;
}
}
https://stackoverflow.com/questions/13850875
复制相似问题