将 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']
我只用 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']