我想在一个IP地址1.2.3.4中托管2个站点。 我想通过使用不同的端口来访问它们。例如,我希望siteA有1.2.3.4:8000,而1.2.3.4:9000指向siteB。我正在使用nginx + uwsgi。
以下是配置其中一个站点的示例。 对于NGINX,我有:
server {
listen 8000; ## listen for ipv4; this line is default and implied
location / {
uwsgi_pass unix:///tmp/uwsgi.sock;
include uwsgi_params;
uwsgi_read_timeout 1800;
}
}
对于UWSGI,我有:
[uwsgi]
socket = /tmp/uwsgi.sock
master = true
harakiri = 60
listen = 5000
limit-as = 512
reload-on-as = 500
reload-on-rss = 500
pidfile = /tmp/uwsgi.pid
daemonize = /tmp/uwsgi.log
**chdir = /home/siteA**
module = wsgi_app
plugins = python
要访问siteA,我简单地转到1.2.3.4:8000。
我对一个站点的配置没有问题,但我不知道它是否可以使用两个站点。 请注意,我没有使用服务器名称绑定站点。有关系吗? 提前谢谢。
P.S。以下是我启动NGINX和UWSGI的方式。 我首先在 / etc / nginx / sites-available / 目录中放置了nginx conf文件(对于siteA,我称之为siteA_for_ngxing.conf)。
然后我使用 uwsgi --ini uwsgi.ini 来启动uwsgi。 (uwsgi.ini的文件包含上面的[uwsgi])... 有什么帮助吗?
答案 0 :(得分:2)
以下示例可能对您没用,因为您似乎手动安装了uWSGI,而不是使用系统存储库。但我想,你可以很容易地找到如何在Ubuntu上配置uWSGI并在你的系统上进行相同的配置。
这是我在Ubuntu上的表现。我从Ubuntu repo安装了uWSGI和nginx,所以我得到了以下的目录:
/etc/nginx/sites-available
/etc/nginx/sites-enabled
/etc/uwsgi/apps-available
/etc/uwsgi/apps-enabled
在/etc/uwsgi/apps-available
我放置了两个文件:app_a.ini
和app_b.ini
。这些文件中没有选项socket
(以及pid
和daemonize
)。 uWSGI将使用ini文件名检测套接字,日志和pid文件名。然后我在/etc/uwsgi/apps-enabled
中为这些文件创建了符号链接以启用应用。
对于nginx,我使用了/etc/nginx/sites-available/default
配置文件(已经符号链接到enabled
dir)。
upstream app_a {
server unix:///run/uwsgi/app/app_a/socket;
}
upstream app_b {
server unix:///run/uwsgi/app/app_b/socket;
}
server {
listen 8000;
location / {
uwsgi_pass app_a;
include uwsgi_params;
}
}
server {
listen 9000;
location / {
uwsgi_pass app_b;
include uwsgi_params;
}
}