我的nginx-error.log文件中出现此错误:
2014/02/17 03:42:20 [crit] 5455#0: *1 connect() to unix:/tmp/uwsgi.sock failed (13: Permission denied) while connecting to upstream, client: xx.xx.x.xxx, server: localhost, request: "GET /users HTTP/1.1", upstream: "uwsgi://unix:/tmp/uwsgi.sock:", host: "EC2.amazonaws.com"
浏览器还显示502错误网关错误。a的输出curl相同,Bad Gateway html
我试图通过将/tmp/uwsgi.sock777
的权限更改为修复它。这没有用。我也将自己加入了www-data
小组(几个看起来相似的问题表明了这一点)。另外,没有骰子。
这是我的nginx.conf
文件:
nginx.conf
worker_processes 1;
worker_rlimit_nofile 8192;
events {
worker_connections 3000;
}
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
我正在用Nginsx和Uwsgi运行Flask应用程序,只是为了解释的透彻。如果有人有任何想法,我将不胜感激。
编辑
我被要求提供我的uwsgi配置文件。因此,我从来没有亲自写过我的nginx
或uwsgi
文件。我遵循了此处的指南,该指南使用ansible-playbook进行了所有设置。该nginx.conf
文件是自动生成的,但是/etc/uwsgi
除了和文件夹中的README文件外,什么都没有。我需要为uwsgi创建自己的配置文件吗?我的印象是ansible
负责所有这些事情。apps-enabledapps-available
我相信ansible-playbook
自从我运行此命令以来,就算出了我的uwsgi配置
uwsgi -s /tmp/uwsgi.sock -w my_app:app
它启动并输出以下内容:
*** Starting uWSGI 2.0.1 (64bit) on [Mon Feb 17 20:03:08 2014] ***
compiled with version: 4.7.3 on 10 February 2014 18:26:16
os: Linux-3.11.0-15-generic #25-Ubuntu SMP Thu Jan 30 17:22:01 UTC 2014
nodename: ip-10-9-xxx-xxx
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /home/username/Project
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 4548
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address /tmp/uwsgi.sock fd 3
Python version: 2.7.5+ (default, Sep 19 2013, 13:52:09) [GCC 4.8.1]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x1f60260
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72760 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
WSGI app 0 (mountpoint='') ready in 3 seconds on interpreter 0x1f60260 pid: 26790 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 26790, cores: 1)
发生权限问题是因为uwsgi将/tmp/uwsgi.sock的所有权和权限重置为755,并且每次uwsgi启动时用户都运行uwsgi。
解决问题的正确方法是使uwsgi更改/tmp/uwsgi.sock的所有权和/或权限,以便nginx可以写入此套接字。因此,有三种可能的解决方案。
uwsgi -s /tmp/uwsgi.sock -w my_app:app --uid www-data --gid www-data
uwsgi -s /tmp/uwsgi.sock -w my_app:app --chown-socket=www-data:www-data
uwsgi -s /tmp/uwsgi.sock -w my_app:app --chmod-socket=666
我更喜欢第一种方法,因为它不会让uwsgi以root身份运行。
前两个命令需要以root用户身份运行。第三个命令不需要以root用户身份运行。
第一个命令使uwsgi以www-data用户身份运行。第二和第三个命令使uwsgi以运行该命令的实际用户身份运行。
第一个和第二个命令仅允许www数据用户写入套接字。第三个命令允许任何用户写入套接字。
我更喜欢第一种方法,因为它不会让uwsgi以root用户身份运行,并且不会使套接字文件成为世界可写的。
问题内容: 我正在使用Nginx和Gunicorn配置Django项目。 在Nginx服务器中访问端口时,我的错误日志文件中出现以下错误; 2014/05/30 11:59:42 [crit] 4075#0:* 6 connect()到127.0.0.1:8001在连接到上游时失败(13:权限被拒绝),客户端:127.0.0.1,服务器:localhost,请求:“ GET / HTTP / 1.
注意:最后一个###.##.###.####是运行代码的google compute VM的外部IP。我相信前两个IP是我的家IP。 在连接到上游:[nginx]时,我尝试了:上的
我知道有很多关于502坏网关的帖子,但是我还没有解决这个问题。我正在使用Docker Comment为Nginx和PHP-FPM创建单独的容器。 错误我得到加载PHP文件在浏览器(超文本标记语言文件渲染罚款): 我已经试着使用Unix套接字等工具调整各种配置好几个小时了,但仍然收到502个PHP文件错误。你能看出什么地方不对劲吗? 这是所有必需的文件。。 多克作曲家。yml: docker/ngi
我在我的本地网络上用两个docker apache实例设置了一个负载均衡器。我确认的两个节点都已启动,可以在单独的端口8081和8082上查看,但是当在apache中尝试使用上游时,我得到了502坏网关错误。 我已经尝试将/etc/nginx目录的权限更改为nginx用户。我已经尝试重新启动apache实例和nginx服务。当我将server_name更改为localhost而不是服务器主机的ip
我们部署了一个Express web API,它获得了相当大的但相对较小的流量(平均每秒约10个请求),这些流量运行在通过Nginx代理的EC2 ubuntu服务器上。每隔一段时间,一个请求就会挂起,如果客户端等待的时间足够长,就会将包含以下内容的行输出到NGINX错误日志中: 我已经试过这里建议的解决办法,但似乎没有效果。这只发生在我们的知识大约1-3次每分钟,但我只是离开这些日志。如果客户机在
我有以下设置: 此外,在node.js进程stdout/stderr中没有错误或崩溃的迹象。 以下是我看到的错误: 会有什么问题?