Nginx配置静态站点和Django+uWSGI

2024-05-18 08:44:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有点麻烦让Nginx提供静态服务索引.html页面,以及一个Django站点。有人能指出我做错了什么吗?

  • 我打开了端口808000。在
  • 我已经花了三天的时间来试着让这个工作起来。在
  • 在本地我没有问题,但我也没有使用nginx。在

我把uwsgi_params放在/etc/nginx/uwsgi_params

/etc/nginx/sites enabled(启用站点)

下面是我的实际配置文件的符号链接

site1.conf -> /home/jesse/projects/site1/conf/site1.conf
site2.conf -> /home/jesse/projects/site2/conf/site2.conf

/home/jesse/projects/site1/conf/site1.conf

这只是一个基本的静态站点,但不会加载:(

^{pr2}$

/home/jesse/projects/site2/conf/site2.conf

=该manage.py/wsgy.py位于/home/jesse/projects/site2/site2/

=这是一个使用uWSGI的Django站点,我用$ pip install uwsgi安装了它。在

server {
    listen 80;
    server_name www.site2.com;
    rewrite ^(.*) http://site2com$1 permanent;

    root /home/site2/projects/site2/site2;

    location /static/ {
        alias /home/jesse/site2/projects/site2/site2/static/;
        #expires 30d;
    }

    location /media/ {
        alias /home/jesse/site2/projects/site2/site2/media/;
        #expires 30d;
    }

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000;
    }
}

/home/site2/projects/site2/conf

[uwsgi]
projectname = site2
projectdomain = site2.com
base = /home/jesse/site2/projects/site2/site2

# Config
plugins = python
master = true
protocol = uwsgi
env = DJANGO_SETTINGS_MODULE=%(projectname).settings
pythonpath = %(base)/src/%(projectname)
module = %(projectname).wsgi
socket = 127.0.0.1:8000
logto = %(base)/logs/uwsgi.log

# Runs daemon in background
daemonize = /home/jesse/log/$(projectname).log

Nginx重启

$ sudo service nginx restart
* Restarting nginx nginx                                           [ OK ] 

=站点1生成一个Not Found(而不是404)

=站点2产生

如有任何帮助,我将不胜感激:)


Tags: loghomebase站点confnginxlocationparams
1条回答
网友
1楼 · 发布于 2024-05-18 08:44:16
rewrite ^(.*) http://site1.com$1 permanent;

在site1中,这不是由任何服务器管理的,因为没有服务器名处理site.com网站(没有www)。在

然后是site2

^{pr2}$

先把线修好。在

在我看来,正确的方法是编写一个服务器规则,捕捉www.names并将它们重写为非www,然后将site1.com或site2.com作为服务器名,作为重新布线的一个例子

^{3}$

相关问题 更多 >