Qua*_*lin 2 django nginx uwsgi
我正在使用 nginx + uwsgi + django 在 centos7 上部署我的第一个站点。它们在测试中单独工作得很好,但我在尝试将它们连接在一起时遇到了 502 bad gateway。/var/log/nginx/error.log 文件显示
\n\n\n2020/12/29 15:52:05 [crit] 1150#0: *1 connect() 到 unix:/run/uwsgi/site.sock 在连接到上游时失败(13:权限被拒绝),客户端:IP 地址,服务器:mysite.com,请求:“GET / HTTP/1.1”,上游:“uwsgi://unix:/run/uwsgi/site.sock:”,主机:“IPaddress”
\n
我已经尝试过这些,但没有一个能够解决问题:
\n1.将 site.sock 文件从我的项目基目录移动到 /tmp/site.sock,或者根据本教程,移动到 /run/uwsgi/site.sock。
\n2.将site.sock文件权限从664更改为666。
\n3.chown套接字文件到myuser:nginx,并将myuser添加到nginx组。
\nuser = www-data4.通过在 nginx.conf 和uid = www-datasite_uwsgi.ini中进行设置,使用 www-data 用户运行 nginx 和 uwsgi pid = www-data。
setenforce 05.通过或关闭selinux setsebool -P httpd_can_network_connect 1。
ps aux | grep nginx:
root 1148 0.0 0.0 39296 1972 ? Ss 15:41 0:00 nginx: master process /usr/sbin/nginx\nnginx 1150 0.0 0.1 39640 2056 ? S 15:41 0:00 nginx: worker process\nRun Code Online (Sandbox Code Playgroud)\nps aux | grep uwsgi:
root 1322 0.0 0.1 54680 3068 ? Ss 15:49 0:00 /home/hanys/.virtualenvs/oligoweb/bin/uwsgi --emperor /etc/uwsgi/sites\nhanys 1390 0.0 1.6 261668 34324 ? S 16:40 0:00 /home/hanys/.virtualenvs/oligoweb/bin/uwsgi --ini oligo_uwsgi.ini\nhanys 1392 0.0 1.2 261668 26528 ? S 16:40 0:00 /home/hanys/.virtualenvs/oligoweb/bin/uwsgi --ini oligo_uwsgi.ini\nhanys 1393 0.0 1.2 261668 26528 ? S 16:40 0:00 /home/hanys/.virtualenvs/oligoweb/bin/uwsgi --ini oligo_uwsgi.ini\nhanys 1394 0.0 1.2 261668 26528 ? S 16:40 0:00 /home/hanys/.virtualenvs/oligoweb/bin/uwsgi --ini oligo_uwsgi.ini\nhanys 1395 0.0 1.2 261668 26528 ? S 16:40 0:00 /home/hanys/.virtualenvs/oligoweb/bin/uwsgi --ini oligo_uwsgi.ini\nhanys 1396 0.0 1.2 261668 26528 ? S 16:40 0:00 /home/hanys/.virtualenvs/oligoweb/bin/uwsgi --ini oligo_uwsgi.ini\nhanys 1397 0.0 1.2 261668 26528 ? S 16:40 0:00 /home/hanys/.virtualenvs/oligoweb/bin/uwsgi --ini oligo_uwsgi.ini\nhanys 1398 0.0 1.2 261668 26528 ? S 16:40 0:00 /home/hanys/.virtualenvs/oligoweb/bin/uwsgi --ini oligo_uwsgi.ini\nhanys 1399 0.0 1.2 261668 26528 ? S 16:40 0:00 /home/hanys/.virtualenvs/oligoweb/bin/uwsgi --ini oligo_uwsgi.ini\nhanys 1400 0.0 1.2 261668 26528 ? S 16:40 0:00 /home/hanys/.virtualenvs/oligoweb/bin/uwsgi --ini oligo_uwsgi.ini\nhanys 1401 0.0 1.2 261668 26528 ? S 16:40 0:00 /home/hanys/.virtualenvs/oligoweb/bin/uwsgi --ini oligo_uwsgi.ini\nRun Code Online (Sandbox Code Playgroud)\n和ls -l site.sock:
srw-rw-rw-. 1 hanys nginx 0 12\xe6\x9c\x88 29 16:40 /run/uwsgi/oligoweb.sock\nRun Code Online (Sandbox Code Playgroud)\n这几天(13:权限被拒绝)真的让我抓狂。预先感谢您的任何帮助。
\n小智 7
看来这个问题很常见。我建议您尝试以下步骤,看看是否可以解决问题:
用户 nginx;# 默认 Nginx 用户
更改nginx为您当前用户的名称 - 此处,David 是我当前的用户名。
用户大卫;# 以 David 的权限运行 Nginx(作为当前登录用户的用户名)
使用以下标志将 httpd 网络连接的 SELinux 布尔值切换为打开persistant:
setsebool httpd_can_network_connect on -P
另外,我发现其中一些命令在修复 SELinux 时可能会派上用场:
sudo cat /var/log/audit/audit.log | sudo cat /var/log/audit/audit.log | grep nginx | grep 拒绝 | audit2allow -M mynginx sudo semodule -i mynginx.pp
参考:
http://blog.frag-gustav.de/2013/07/21/nginx-selinux-me-mad/
https://wiki.gentoo.org/wiki/SELinux/Tutorials/Where_to_find_SELinux_permission_denial_details
http://wiki.gentoo.org/wiki/SELinux/Tutorials/Managing_network_port_labels
http://www.linuxproblems.org/wiki/Selinux
| 归档时间: |
|
| 查看次数: |
4196 次 |
| 最近记录: |