Nginx的Permission denied错误

环境: CentOS7

问题描述

今天搭建了nginx+uwsgi+django的环境,之后通过浏览器访问遇到下面问题:

2017/03/31 19:38:13 [crit] 191969#191969: *5 connect() to 127.0.0.1:8000 failed (13: Permission denied) while connecting to upstream, client: 192.168.0.10, server: localhost, request: "GET /admin HTTP/1.1", upstream: "uwsgi://127.0.0.1:8000", host: "192.168.0.20:8080"

上面来自/var/log/nginx/error.log。

原因

通过ps命令查看nginx进程为用户nginx,而uwsgi进程为用户root。估计是权限不一致导致nginx无法访问uwsgi进程(socket方式通信)。

所以修改nginx的配置文件/etc/nginx/nginx.conf,把user选项从nginx改成root。之后执行重启命令systemctl restart nginx

再次打开浏览器访问django,发现仍然不行。(+﹏+)~狂晕

上网继续调查,发现还有一个原因可能引起这个问题,那就是selinux,执行下面命令:

setsebool -P httpd_can_network_connect 1

然后重新访问浏览器,发现可以打开页面了。如果还不行就彻底一些,关闭selinux:

setenforce 0

O(∩_∩)O哈哈~,终于搞定了。

One More Thing

在stackoverflow网站看到一个回复是说使用root运行uwsgi还是不太好的,建议使用一个和nginx相同的普通账户运行。例如:

uwsgi -s /tmp/uwsgi.sock -w my_app:app --uid www-data --gid www-data

@完


参考:

最新文章

  1. linux rsync配置文件参数详解
  2. spice server dpkg-buildpackage 打包编译备忘
  3. javascript在html中的加载顺序
  4. session生命周期
  5. 用JS制作简易选项卡
  6. [3D跑酷] AudioManager
  7. [iOS翻译]《iOS7 by Tutorials》系列:iOS7的设计精髓(下)
  8. jquery 获取和设置 select下拉框的值(转手册)
  9. ASP.NET多线程下使用HttpContext.Current
  10. Oracle Split Partitions
  11. IEnumerable
  12. My97DatePicker显示时间控件的使用方法
  13. 关于Test--Pattern Generator IP核的测试
  14. codeforces 523D tatistics of Recompressing Videos
  15. Linux kernel的中断子系统之(四):High level irq event handler
  16. 阿里云OSS的Bucket容量大小采集
  17. ECMA Script 6_简单介绍
  18. hive资料
  19. python之路-day1-while循环
  20. python基础学习 Day19 面向对象的三大特性之多态、封装

热门文章

  1. imagelist用法
  2. cocos2dx conversion to dalvik format failed
  3. windows下gitbook与开源中国码云关联,以及如何gitbook转pdf
  4. [译文]casperjs使用说明-测试
  5. 使用cookie下次自动登录
  6. 方法引用(Method reference)和invokedynamic指令详细分析
  7. webpack中设置jquery为全局对象
  8. 简单的XMPP服务器与客户端交互
  9. 北航软院2014级C#期末考试部分考题解答
  10. springAOP实现方法运行时间统计