2017-03-16 63 views
1

我是服務器配置的新手。我做了一些谷歌和配置django應用程序在ubuntu 14.04可靠服務器上使用gunicorn和nginx。對於第一個Django應用程序,我使用的端口號80,我的configfiles是:在Ubuntu 14.04可靠服務器上使用nginx和gunicorn的多個Django應用程序

/etc/init/gunicorn.conf: -

description "Gunicorn application server handling myproject" 
start on runlevel [2345] 
stop on runlevel [!2345] 
respawn 
setuid 
setgid www-data 
chdir /home/myserver/my_virtualenv_path/myproject 
exec /home/myserver/my_virtualenv_path/myproject/gunicorn --workers 2 --bind unix:/home/myserver/my_virtualenv_path/myproject/myproject.sock myproject.wsgi:application 

我的第一個Django應用nginx的配置文件:

/etc/nginx/site-available: -

server { 
    listen 80; 
    server_name myapp.com; 

    location = /favicon.ico { access_log off; log_not_found off; } 
    location /static/ { 
     root /home/myserver/my_virtualenv_path/myproject; 
    } 

    location/{ 
     include proxy_params; 
     proxy_pass http://unix:/home/myserver/my_virtualenv_path/myproject/myproject.sock; 
    } 
} 

之後,我把站點鏈接到站點啓用。 接下來,我創建了第一個Django應用程序的virtualenv喜歡裏面一個新的Django應用程序:

FirstApp_Virtual_Env \ first_djangoapp \ App文件

FirstApp_Virtual_Env \ Second_djangoapp \ App文件

現在我配置gunicorn的第二應用程式,例如:

的/ etc /初始化/ gunicorn_t: -

description "Gunicorn application server handling myproject2" 
    start on runlevel [2345] 
    stop on runlevel [!2345] 
    respawn 
    setuid 
    setgid www-data 
    chdir /home/myserver/my_virtualenv_path/myproject2 
    exec /home/myserver/my_virtualenv_path/myproject/gunicorn --workers 2 --bind unix:/home/myserver/my_virtualenv_path/myproject2/myproject2.sock myproject2.wsgi:application 

我nginx的結構F ILE爲第二Django應用程序:

的/ etc/nginx的/站點可供選擇: -

server { 
    listen 8000; 
    server_name myapp2.com; 

    location = /favicon.ico { access_log off; log_not_found off; } 
    location /static/ { 
     root /home/myserver/my_virtualenv_path/myproject2; 
    } 

    location/{ 
     include proxy_params; 
     proxy_pass http://unix:/home/myserver/my_virtualenv_path/myproject2/myproject2.sock; 
    } 
} 

,我的鏈接網站,使網站之後。

現在這裏是我的問題:當我鍵入myapp.com,然後我的第一個Django應用程序工作正常,但對於第二個應用程序,當我鍵入myapp2.com其顯示nginx頁面,當我鍵入myapp2.com:8000它工作正常。我爲此做了一些谷歌,但我無法找到解決方案。我是新手,所以請給我一個提示,說明如何糾正我的問題。謝謝你的時間。

回答

1

您配置nginx的服務myapp2.com 8000端口:

server { 
    listen 8000; 
    server_name myapp2.com; 
    # ... 
} 

爲什麼你會指望nginx的爲它服務的80端口?

[編輯]我想以上就足以使問題清楚,但顯然不是,讓我們重新開始:

您配置nginx的服務myapp2.com 8000端口(在你的conf下listen 8000;線,所以nginx做你所要求的:它在端口8000上服務myapp2.com。

如果你希望nginx在端口80上提供myapp2.com(這是http的默認端口,所以你不必指定它明確地在你的網址--IOW'http://myapp2.com/'是'http://myapp2.com:80/'的快捷方式),你所要做的就是配置nginx在端口80上提供它,就像你爲'myapp.com'所做的那樣:replace listen 8000;listen 80;提供。

+0

我沒有除了myapp2.com在端口80上。當我輸入myapp2.com時,它會顯示除myapp2.com之外的nginx配置頁面。感謝您的回覆 –

+0

「http://myapp2.com」是「http://myapp2.com:80」的快捷方式。你認爲'聽8000'和'聽80'的意思是什麼? –

+0

我是新來的,但這是可能的兩個django應用程序可以共享相同的端口? –

1

如果您不輸入端口,客戶端將自動使用端口80。

打字myapp2.com是一樣的打字myapp2.com:80

myapp2.com不在端口80上運行,它在端口8000

運行當你進入生產就可以重定向myapp2.com到8000端口,而不明確地輸入它。您註冊myapp2.com與DNS name server並指向它myapp2.com:8000

+0

抱歉,對於遲到的回覆,但是當我輸入myapp.com時,我在端口80上的第一個應用程序工作正常,但是當我鍵入myapp2.com時,它顯示我nginx配置頁面。但是當我鍵入myapp2.com:8000其工作 –

+1

如果您嘗試在80端口上運行,會發生什麼? – jwillis0720

+0

但是如何在同一端口上運行,請舉例說明.....感謝您的時間@ jwillis0720 –

相關問題