簡體   English   中英

nginx + uwsgi用於使用多個端口的多個站點

[英]nginx + uwsgi for multiple sites using multiple ports

我想在一個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。

我對一個站點的配置沒有任何問題,但是我不知道要使其與兩個站點一起工作。 請注意,我沒有用服務器名稱綁定站點。 有關系嗎? 提前致謝。

PS以下是我啟動NGINX和UWSGI的方式。 我首先將nginx conf文件(對於siteA,我稱其為siteA_for_ngxing.conf)放在/ etc / nginx / sites-available /目錄中。

然后,我使用uwsgi --ini uwsgi.ini啟動uwsgi (uwsgi.ini文件包含上面的[uwsgi])...有什么幫助嗎?

以下示例對您可能沒有用,因為似乎您是手動安裝了uWSGI,而不是使用系統存儲庫。 但是我認為,您可以輕松找到uWSGI在Ubuntu上的配置方式,並在系統上進行相同的配置。

這是我在Ubuntu上的操作方式。 我從Ubuntu存儲庫中安裝了uWSGI和nginx,所以得到了以下目錄:

/etc/nginx/sites-available
/etc/nginx/sites-enabled
/etc/uwsgi/apps-available
/etc/uwsgi/apps-enabled

/etc/uwsgi/apps-available我放置了兩個文件: app_a.iniapp_b.ini 這些文件中沒有選項socket (以及piddaemonize )。 uWSGI將使用ini文件名來檢測套接字,日志和pid文件名。 然后,我在/etc/uwsgi/apps-enabled創建了指向這些文件的符號鏈接,以啟用應用程序。

對於nginx,我使用了/etc/nginx/sites-available/default配置文件(它已經符號鏈接到enabled目錄)。

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;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM