我是服务器配置新手。我在ubuntu 14.04可靠服务器上使用gunicorn和nginx做一些谷歌和配置django应用程序。对于第一个django应用程序,我使用端口号80,我的配置文件是:
/etc/init/个unicorn.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文件
现在我为第二个app配置gunicorn,如:
/ etc / init / 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
我的第二个django应用程序的nginx配置文件:
/ etc / nginx / site-available: -
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它工作正常。我做了一些谷歌,但我无法找到解决方案。我是新手,所以请给我一个暗示,如何纠正我的问题。谢谢你的时间。
您将nginx配置为在端口8000上提供myapp2.com:
server {
listen 8000;
server_name myapp2.com;
# ...
}
那么为什么你会期望nginx在端口80上提供服务呢?
[编辑]我认为上述内容足以使问题清楚但显然不是,所以让我们重新开始:
您将nginx配置为在端口8000上提供myapp2.com(您的conf中的listen 8000;
行,因此nginx执行您要求的操作:它在端口8000上提供myapp2.com。
如果你想让nginx在端口80上提供myapp2.com(这是http的隐含默认端口,所以你不必在你的网址中明确指定它 - IOW'http://myapp2.com/'是'http://myapp2.com:80/'的快捷方式),所有你要做的是配置nginx在端口80上提供服务,就像你为'myapp.com'所做的那样:用listen 8000;
替换listen 80;
。
如果您没有输入端口,您的客户端将自动使用端口80。
键入myapp2.com
与键入myapp2.com:80
相同
但myapp2.com
没有在80端口运行,它在8000端口上运行。
当你投入生产时,可以将myapp2.com
重定向到端口8000而无需显式输入。您使用DNS name server注册myapp2.com并将其指向myapp2.com:8000