如何在Nginx和uWSGI上运行多个Django站点?

Tho*_*mas 11 django nginx uwsgi

是否可以使用Nginx和uWSGI在同一台服务器上运行多个Django站点?

我想有必要运行多个uWSGI实例(每个站点一个).我将/etc/init.d/uwsgi复制到uwsgi2并更改了端口号.但是,我收到以下错误:

# /etc/init.d/uwsgi2 start
Starting uwsgi: /usr/bin/uwsgi already running.
Run Code Online (Sandbox Code Playgroud)

如何运行多个uWSGI实例?

谢谢

And*_*ich 9

您可以创建创建多个虚拟主机,允许您托管多个站点,彼此独立.更多信息:http://wiki.nginx.org/VirtualHostExample.

这里有一些更详细的信息以及如何设置虚拟主机http://projects.unbit.it/uwsgi/wiki/RunOnNginx#VirtualHosting.


don*_*ner 5

您可以使用Emperor Mode运行多个uwsgi实例.

这将处理新工作器实例的创建.这些实例非常出色地被称为附庸.每个附庸只需要一个配置文件,通常放置(或符号链接)/etc/uwsgi/vassals

对于nginx,您需要为要提供服务的每个主机创建一个服务器块.只需更改server_name要提供服务的每个主机的指令即可.这是一个例子:

#Simple HTTP server
server {
    listen   80; 
    root /usr/share/nginx/www;
    server_name host1.example.com;
}

#Django server
server {
    listen   80; 
    server_name host2.example.com;

    #...upstream config...
}
Run Code Online (Sandbox Code Playgroud)

重要提示:确保已在中指定主机名/etc/hosts.我发现如果不这样做,我的django站点也会在默认服务器IP上提供服务,尽管它指定它应该仅在我的nginx配置中的特定主机名上提供.