ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

django-Nginx:在CentOS 7上对Gunicorn套接字的权限被拒绝

2019-11-09 08:09:56  阅读:241  来源: 互联网

标签:nginx centos7 gunicorn django


我正在Django项目部署中工作.我正在由EC2(AWS)提供的CentOS 7服务器中工作.我已尝试通过多种方式修复此错误,但我无法理解我所缺少的内容.

我正在使用ningx和gunicorn来部署我的项目.我创建了具有以下内容的/etc/systemd/system/myproject.service文件:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=centos
Group=nginx
WorkingDirectory=/home/centos/myproject_app
ExecStart=/home/centos/myproject_app/django_env/bin/gunicorn --workers 3 --bind unix:/home/centos/myproject_app/django.sock app.wsgi:application
[Install]
WantedBy=multi-user.target

当我运行sudo systemctl重新启动myproject.service并启用sudo systemctl启用myproject.service时,django.sock文件已正确生成到/ home / centos / myproject_app /中.

我在/ etc / nginx / sites-available /文件夹中创建了nginx conf文件,其内容如下:

server {
    listen       80;
    server_name  my_ip;
    charset      utf-8;

    client_max_body_size       10m;
    client_body_buffer_size    128k;

    # serve static files
    location /static/ {
        alias /home/centos/myproject_app/app/static/;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/centos/myproject_app/django.sock;
    }
}

之后,我使用以下命令重新启动nginx:

sudo systemctl restart nginx

如果我运行命令sudo nginx -t,则响应为:

nginx: configuration file /etc/nginx/nginx.conf test is successful

当我在网络浏览器中访问my_ip时,收到502错误的网关响应.

如果检查nginx错误日志,则会看到以下消息:

1 connect() to unix:/home/centos/myproject_app/django.sock failed (13: Permission denied) while connecting to upstream

我确实尝试了许多更改袜子文件权限的解决方案.但是我不明白如何解决它.我该如何解决此权限错误?…非常感谢

解决方法:

如果myproject_app文件夹下的所有权限都是正确的,并且centos用户或nginx组可以访问这些文件,那么我认为这看起来像是安全性增强Linux(SELinux)问题.

我遇到了类似的问题,但是使用RHEL7.我设法通过执行以下命令解决了该问题:

sudo semanage permissive -a httpd_t

它与SELinux的安全策略有关,您必须将httpd_t添加到允许域列表中.

NGINX博客的这篇帖子可能会有所帮助:NGINX: SELinux Changes when Upgrading to RHEL 6.6 / CentOS 6.6

出于类似的问题,我不久前在How to Deploy a Django Application on RHEL 7上写了一个教程.对于CentOS 7,它应该非常相似.

标签:nginx,centos7,gunicorn,django
来源: https://codeday.me/bug/20191109/2012919.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有