Nginx Config for 2 django applications 2 different endpoints 1 server host
Nginx Config for 2 django applications 2 different endpoints 1 server host
所以问题是我有1个ip(例如127.0.0.1)
我的服务器上有 2 个不同的 Django 应用程序
1. /api 0.0.0.0:8000
2. /data 0.0.0.0:8090
3. / this will go to default pages served up by nodejs
我需要弄清楚
如何部署这些独立服务的 nginx 配置,每个服务都有自己的数据库。
导航时如果命中端点,它将被路由到适当的应用程序,否则它将默认为 nodejs 应用程序。
额外信息:
当登录 /api/admin/ 它被路由到 /admin 并失败
请考虑 django 所做的重定向。
我尝试了很多东西,包括设置 Host 或 Location
这将是 2 天后的赏金,祝您狩猎愉快。
当前 nginx
upstream app1 {
server 0.0.0.0:8000;
}
upstream app2 {
server 0.0.0.0:8090;
}
server {
listen 80;
server_name localhost;
location / {
error_log /var/log/webapp/error.log debug;
access_log /var/log/webapp/access.log;
proxy_pass http://0.0.0.0:3000;
proxy_redirect off;
}
location /api {
location /api/static {
alias /var/tmp/app1/static;
#autoindex on;
}
proxy_pass http://app1;
proxy_redirect off;
}
location /data {
location /data/static {
alias /var/tmp/app2/static;
}
proxy_pass http://app2;
proxy_redirect off;
}
}
您是否使用 gunicorn 作为 WSGI 服务器?
以防万一,尝试将其添加到现有的 nginx 配置中:
location /api {
proxy_set_header SCRIPT_NAME /api;
...
location /data {
proxy_set_header SCRIPT_NAME /data;
...
...
原则上,SCRIPT_NAME 将传递给 gunicorn,后者应将其用作所有地址的前缀。
不过,我从未在实际项目中尝试过。
所以问题是我有1个ip(例如127.0.0.1)
我的服务器上有 2 个不同的 Django 应用程序
1. /api 0.0.0.0:8000
2. /data 0.0.0.0:8090
3. / this will go to default pages served up by nodejs
我需要弄清楚 如何部署这些独立服务的 nginx 配置,每个服务都有自己的数据库。
导航时如果命中端点,它将被路由到适当的应用程序,否则它将默认为 nodejs 应用程序。
额外信息: 当登录 /api/admin/ 它被路由到 /admin 并失败 请考虑 django 所做的重定向。 我尝试了很多东西,包括设置 Host 或 Location
这将是 2 天后的赏金,祝您狩猎愉快。
当前 nginx
upstream app1 {
server 0.0.0.0:8000;
}
upstream app2 {
server 0.0.0.0:8090;
}
server {
listen 80;
server_name localhost;
location / {
error_log /var/log/webapp/error.log debug;
access_log /var/log/webapp/access.log;
proxy_pass http://0.0.0.0:3000;
proxy_redirect off;
}
location /api {
location /api/static {
alias /var/tmp/app1/static;
#autoindex on;
}
proxy_pass http://app1;
proxy_redirect off;
}
location /data {
location /data/static {
alias /var/tmp/app2/static;
}
proxy_pass http://app2;
proxy_redirect off;
}
}
您是否使用 gunicorn 作为 WSGI 服务器?
以防万一,尝试将其添加到现有的 nginx 配置中:
location /api {
proxy_set_header SCRIPT_NAME /api;
...
location /data {
proxy_set_header SCRIPT_NAME /data;
...
...
原则上,SCRIPT_NAME 将传递给 gunicorn,后者应将其用作所有地址的前缀。
不过,我从未在实际项目中尝试过。