gpt4 book ai didi

django - nginx > uwsgi > django 上的错误网关 (502),但只有一个 SOME 设备

转载 作者:行者123 更新时间:2023-12-04 19:31:07 25 4
gpt4 key购买 nike

我的网站在我的 Mac 和 Windows 笔记本电脑上看起来不错(使用 chrome 访问主页 https://inspidered.org),但如果我尝试任何其他设备,我会得到 502 gateway error来自 nginx。
Nginx 是在 digital ocean 水滴上作为反向代理运行的前端服务器,uwsgi在它后面运行 django 3.1。
这是我的相关配置文件:
我的调试技巧来自这个页面:https://digitalocean.com/community/questions/502-bad-gateway-nginx-2

sudo tail -30 /var/log/nginx/error.log
...
2021/03/01 17:45:47 [crit] 16656#0: *3420 connect() to unix:/run/uwsgi/inspidered.lock failed
(2: No such file or directory) while connecting to upstream,
client: 23.100.xxx.yyy,
server: inspidered.org,
request: "GET / HTTP/1.1",
upstream: "uwsgi://unix:/run/uwsgi/inspidered.lock:",
host: "inspidered.org"
nginx没有明显的错误:
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
此外,nginx 在 droplet 上为另外两个服务器(一个 python2 cherrypy 和一个 python3 cherrypy)提供服务,没有任何问题。只有这个 uwsgi/django 站点受到影响。而且只有一些设备。
[~]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2021-03-01 05:05:21 UTC; 13h ago
Process: 16653 ExecReload=/bin/kill -s HUP $MAINPID (code=exited, status=0/SUCCESS)
Process: 16399 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 16395 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 16394 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 16402 (nginx)
CGroup: /system.slice/nginx.service
├─16402 nginx: master process /usr/sbin/nginx
├─16655 nginx: worker process
└─16656 nginx: worker process

Mar 01 05:05:21 centos-divining systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Mar 01 05:05:21 centos-divining systemd[1]: Starting The nginx HTTP and reverse proxy server...
Mar 01 05:05:21 centos-divining nginx[16395]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Mar 01 05:05:21 centos-divining nginx[16395]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Mar 01 05:05:21 centos-divining systemd[1]: Started The nginx HTTP and reverse proxy server.
Mar 01 05:18:09 centos-divining systemd[1]: Reloading The nginx HTTP and reverse proxy server.
Mar 01 05:18:09 centos-divining systemd[1]: Reloaded The nginx HTTP and reverse proxy server.
我检查了一下,我的 Mac 上没有特殊的域过滤器:
sudo nano /private/etc/hosts
sudo nano /etc/hosts
我的 uwsgi .service 设置
[Unit]
Description=uWSGI Emperor service

[Service]
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown nfsnobody:nfsnobody /run/uwsgi'
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites --logger file:logfile=/var/log/uwsgi.log,maxsize=500000
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all

[Install]
WantedBy=multi-user.target
inspidered.ini设置

[uwsgi]
project = inspidered
uid = root
base = /root/webapps/insp

chdir = %(base)/%(project)
home = %(base)
module = %(project).wsgi:application

master = true
processes = 5

socket = /run/uwsgi/%(project).sock
chown-socket = %(uid):root
chmod-socket = 666
vacuum = true
logto = /var/log/uwsgi.log
最后是 emperor is governing 0 vassals -- 这似乎是一个错误,但也许他们只是生活在 autonomous collective 中.
[root@centos-divining log]# systemctl status uwsgi.service
● uwsgi.service - uWSGI Emperor service
Loaded: loaded (/etc/systemd/system/uwsgi.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2021-03-01 18:51:10 UTC; 5min ago
Process: 30019 ExecStartPre=/bin/bash -c mkdir -p /run/uwsgi; chown nfsnobody:nfsnobody /run/uwsgi (code=exited, status=0/SUCCESS)
Main PID: 30022 (uwsgi)
Status: "The Emperor is governing 0 vassals"
CGroup: /system.slice/uwsgi.service
├─30022 /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites --logger file:logfile=/var/log/uwsgi.log,maxsize=500000
└─30050 /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites --logger file:logfile=/var/log/uwsgi.log,maxsize=500000

Mar 01 18:51:10 centos-divining systemd[1]: uwsgi.service holdoff time over, scheduling restart.
Mar 01 18:51:10 centos-divining systemd[1]: Stopped uWSGI Emperor service.
Mar 01 18:51:10 centos-divining systemd[1]: Starting uWSGI Emperor service...
Mar 01 18:51:10 centos-divining systemd[1]: Started uWSGI Emperor service.
Mar 01 18:51:24 centos-divining uwsgi[30022]: Mon Mar 1 18:51:24 2021 - logsize: 18446744073709551615, triggering rotation to /var/log/...24684...
Mar 01 18:51:38 centos-divining uwsgi[30022]: Mon Mar 1 18:51:38 2021 - logsize: 18446744073709551615, triggering rotation to /var/log/...24698...
Hint: Some lines were ellipsized, use -l to show in full.

最佳答案

令人惊讶的是,在尝试了 2 天后,只需将所有进入 nginx 的请求强制从 http 重定向到 https反向代理解决了手机和平板电脑上的 502 bad gateway:
教训: Chrome 是smart并在任何输入的 url 上强制使用 https,但旧手机和 kindle fire 输入的 url 仍默认为 http,而且我的 http 配置设置不正确。所以我只是这样做了:

    server {
listen 80;
listen [::]:80;

server_name inspidered.org inspidered.com;
return 301 https://$host$request_uri;
}

关于django - nginx > uwsgi > django 上的错误网关 (502),但只有一个 SOME 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66428059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com