我在使用 Gunicorn 的 Debian 服务器上运行了两个 Django 应用程序。一个运行在端口 80(app1),另一个运行在端口 84(app2)。app1 运行正常。但是当我尝试打开 app2 时,Nginx 出现 502 Bad Gateway。它们的配置几乎相同。我不知道为什么这不起作用。我还运行了第三个应用程序,但据我所知,它是在 Flask IIRC 上运行的。
站点可用/app2
server {
listen 84;
server_name app2;
location / {
include proxy_params;
proxy_pass http://127.0.0.1:7000;
}
location /static/ {
root /home/app1;
try_files $uri =404;
}
}
站点可用/app1
server {
listen 80;
server_name app1;
location / {
include proxy_params;
proxy_pass http://127.0.0.1:8000;
}
location /static/ {
root /home/django;
try_files $uri =404;
}
location /bestanden/ {
root /home/django/files;
add_header Pragma public;
add_header Cache-Control "public";
}
}
/etc/systemd/system/app1.service
[Unit]
Description=App1
After=network.target
[Service]
Type=simple
User=root
ExecStart=/bin/bash /home/app1/bin/start-app.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
/home/app1/bin/start-app1.sh
cd /home/app1/app
echo "Activating"
source /home/app1/env/bin/activate
echo "Starting"
# conf.py contains some environment variables for the app
gunicorn -c "/home/app1/env/bin/gunicorn.conf.py" app1.wsgi
/etc/systemd/system/pricescraper.server
[Unit]
Description=App2
After=network.target
[Service]
Type=simple
User=root
ExecStart=/bin/bash /home/app2/bin/start-app.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
/home/app2/bin/start-app2
cd /home/app2/app/
source /home/app2/venv/bin/activate
gunicorn -c "/home/app2/venv/bin/gunicorn.conf.py" app2.wsgi -b 192.168.188.43:7000
当我查看 error.log 时,我得到了这个:[错误] 1560#1560:*1 connect()失败(111:连接被拒绝)连接到上游,客户端:192.168.188.199,服务器:app2,请求:“GET / HTTP / 1.1”,上游:“http://127.0.0.1:7000/”,主机:“192.168.188.43:84”
我不知道这是什么意思,谷歌搜索后发现一个问题,他们使用套接字并删除了 ULR 前缀,这对我来说不适用。最奇怪的是,当我打开 192.168.188.43:7000 时,我确实打开了 index.html,但没有加载任何静态文件,其中包括必要的 JS,所以我无法测试后端。
请提供任何帮助!
答案1
显然它不应该绑定到 192.168...而是绑定到 127.0.0.1