将 Django 项目从 "http://ip_address/" 移动到“http://api.domain/

move a django project from "http://ip_address/" to "http://api.domain/

我只用 IP 地址进行开发,现在我快完成了,我会将整个项目移至 "api.domain." 我将其设置在 settings.py ALLOWED_HOSTS = ['api.*domain*.com'] 但是我认为这还不够。 我得到 404 not found 它来自 nginx。 我关注了这个tutorial。这是我第一次自己做这件事。所以,我不知道。

也许有人遇到过同样的问题或知道如何解决。

UWSGI 配置 (/etc/uwsgi/sites/apibackend.ini)

[uwsgi]

chdir = /home/chuckaguilar/apibackend/apibackend
home = /home/chuckaguilar/apibackend/apibackendenv
module = apibackend.wsgi:application

master = true
processes = 5

socket = /run/uwsgi/apibackend.sock
chown-socket = chuckaguilar:www-data
chmod-socket = 660
vacuum = true

UWSGI 配置 (/etc/uwsgi/sites/apibackend.ini)

[Unit]
Description=uWSGI Emperor service

[Service]
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown chuckaguilar:www-data /ru$
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all

[Install]
WantedBy=multi-user.target

NGINX 配置 (/etc/nginx/sites-available/apibackend)

server {
        listen 80;
        server_name *ip*;

        location = /favicon.ico { access_log off; log_not_found off; }
        location /static/ {
                root /home/chuckaguilar/apibackend/apibackend;
        }

        location / {
                include uwsgi_params;
                uwsgi_pass unix:/run/uwsgi/apibackend.sock;
        }
}

正如我所说,它工作正常,只是我希望在 "www.domain.com" 和 应用程序中拥有一个 "normal" 网站 api 在 "api.domain.com"

当我 ping api.domain.com 时它工作正常。

我必须要有这个会议:

server {
        listen 80;
        server_name api.domain.com;

        location = /favicon.ico { access_log off; log_not_found off; }
        location /static/ {
                root /home/chuckaguilar/apibackend/apibackend;
        }

        location / {
                include uwsgi_params;
                uwsgi_pass unix:/run/uwsgi/apibackend.sock;
        }
}

然后在我的设置中:

ALLOWED_HOSTS = ['.domain.com', *ip*, '127.0.0.1']