在 ubuntu 上为多个 uwsgi-emperor flask 应用程序配置 nginx
configuring nginx on ubuntu for multiple uwsgi-emperor flask applications
我有两个 Flask 应用程序,我想将它们托管在同一个网络服务器上。
我已经成功获得其中之一 运行,但我似乎无法同时获得两者。
我使用了 http://vladikk.com/2013/09/12/serving-flask-with-nginx-on-ubuntu/
中的设置
我的nginx配置和uwsgi ini文件是一样的;除了我根据应用程序和文件夹结构替换不同的文件夹名称,例如"request" 或 "demoapp" 我的其他应用。
我的请求应用的 nginx 配置文件是
server {
listen 80;
server_name localhost;
charset utf-8;
client_max_body_size 75M;
location / { try_files $uri @yourapplication; }
location @yourapplication {
include uwsgi_params;
uwsgi_pass unix:/var/www/request/request_uwsgi.sock;
}
}
我的 uwsgi ini 文件是
[uwsgi]
#application's base folder
base = /var/www/request
#python module to import
app = open
module = %(app)
home = %(base)/venv
pythonpath = %(base)
#socket file's location
socket = /var/www/request/%n.sock
#permissions for the socket file
chmod-socket = 666
#the variable that holds a flask application inside the module imported at line #6
callable = app
#location of log files
logto = /var/log/uwsgi/%n.log
这条线让我的应用程序正常工作
/etc/nginx/sites-enabled$ uwsgi --ini /var/www/request/request_uwsgi.ini
如果我为我的其他应用程序关闭 "request",其他应用程序就会正常工作。
我的 nginx error.log 显示当我在启用站点时同时拥有两个配置文件时,我得到这个
2015/05/07 10:03:45 [warn] 7527#0: conflicting server name "localhost" on 0.0.0.0:80, ignored
2015/05/07 10:03:45 [warn] 7527#0: conflicting server name "localhost" on 0.0.0.0:80, ignored
2015/05/07 10:03:46 [warn] 7531#0: conflicting server name "localhost" on 0.0.0.0:80, ignored
2015/05/07 10:03:46 [warn] 7531#0: conflicting server name "localhost" on 0.0.0.0:80, ignored
2015/05/07 10:04:06 [error] 7533#0: *1 connect() to unix:/var/www/demoapp/demoapp_uwsgi.sock failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /login HTTP/1.1", upstream: "uwsgi://unix:/var/www/demoapp/demoapp_uwsgi.sock:", host: "argonaut"
2015/05/07 10:04:08 [error] 7533#0: *1 connect() to unix:/var/www/demoapp/demoapp_uwsgi.sock failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /login HTTP/1.1", upstream: "uwsgi://unix:/var/www/demoapp/demoapp_uwsgi.sock:", host: "argonaut"
2015/05/07 10:30:10 [error] 7788#0: *1 open() "/usr/share/nginx/html/login" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /login HTTP/1.1", host: "argonaut"
2015/05/07 10:31:54 [error] 7833#0: *1 open() "/usr/share/nginx/html/request" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /request HTTP/1.1", host: "argonaut"
"argonaut"是我服务器的名字
我找不到任何人的任何配置示例 运行 两个 flask 应用程序,甚至找不到关于如何编写 conf 文件的很好的解释。
更新
我正在考虑放弃并在我的服务器上设置一个带有单独 nginx 的虚拟机来托管多个应用程序。
谢谢!
在 nginx 中,您可以通过更改 server_name 来重复服务器组件。操纵 server_name 可以来自简单的 dns A 记录或 CNAME。请参阅 以获得完整答案/
我有两个 Flask 应用程序,我想将它们托管在同一个网络服务器上。
我已经成功获得其中之一 运行,但我似乎无法同时获得两者。
我使用了 http://vladikk.com/2013/09/12/serving-flask-with-nginx-on-ubuntu/
中的设置我的nginx配置和uwsgi ini文件是一样的;除了我根据应用程序和文件夹结构替换不同的文件夹名称,例如"request" 或 "demoapp" 我的其他应用。
我的请求应用的 nginx 配置文件是
server {
listen 80;
server_name localhost;
charset utf-8;
client_max_body_size 75M;
location / { try_files $uri @yourapplication; }
location @yourapplication {
include uwsgi_params;
uwsgi_pass unix:/var/www/request/request_uwsgi.sock;
}
}
我的 uwsgi ini 文件是
[uwsgi]
#application's base folder
base = /var/www/request
#python module to import
app = open
module = %(app)
home = %(base)/venv
pythonpath = %(base)
#socket file's location
socket = /var/www/request/%n.sock
#permissions for the socket file
chmod-socket = 666
#the variable that holds a flask application inside the module imported at line #6
callable = app
#location of log files
logto = /var/log/uwsgi/%n.log
这条线让我的应用程序正常工作
/etc/nginx/sites-enabled$ uwsgi --ini /var/www/request/request_uwsgi.ini
如果我为我的其他应用程序关闭 "request",其他应用程序就会正常工作。
我的 nginx error.log 显示当我在启用站点时同时拥有两个配置文件时,我得到这个
2015/05/07 10:03:45 [warn] 7527#0: conflicting server name "localhost" on 0.0.0.0:80, ignored
2015/05/07 10:03:45 [warn] 7527#0: conflicting server name "localhost" on 0.0.0.0:80, ignored
2015/05/07 10:03:46 [warn] 7531#0: conflicting server name "localhost" on 0.0.0.0:80, ignored
2015/05/07 10:03:46 [warn] 7531#0: conflicting server name "localhost" on 0.0.0.0:80, ignored
2015/05/07 10:04:06 [error] 7533#0: *1 connect() to unix:/var/www/demoapp/demoapp_uwsgi.sock failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /login HTTP/1.1", upstream: "uwsgi://unix:/var/www/demoapp/demoapp_uwsgi.sock:", host: "argonaut"
2015/05/07 10:04:08 [error] 7533#0: *1 connect() to unix:/var/www/demoapp/demoapp_uwsgi.sock failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /login HTTP/1.1", upstream: "uwsgi://unix:/var/www/demoapp/demoapp_uwsgi.sock:", host: "argonaut"
2015/05/07 10:30:10 [error] 7788#0: *1 open() "/usr/share/nginx/html/login" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /login HTTP/1.1", host: "argonaut"
2015/05/07 10:31:54 [error] 7833#0: *1 open() "/usr/share/nginx/html/request" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /request HTTP/1.1", host: "argonaut"
"argonaut"是我服务器的名字
我找不到任何人的任何配置示例 运行 两个 flask 应用程序,甚至找不到关于如何编写 conf 文件的很好的解释。
更新 我正在考虑放弃并在我的服务器上设置一个带有单独 nginx 的虚拟机来托管多个应用程序。
谢谢!
在 nginx 中,您可以通过更改 server_name 来重复服务器组件。操纵 server_name 可以来自简单的 dns A 记录或 CNAME。请参阅 以获得完整答案/