我正在用DUNG(Django,Unix,Nginx和Gunicorn)环境运行Ubuntu 12.04 Precise,并且我的应用程序(以及各种configuration文件)存储在www-data用户有权访问的/srv内的python虚拟环境中至。 nginx和gunicorn进程都是以www-data运行的。 我的networking应用程序需要安全凭证,我将其存储在environment.sh文件中。 该文件包含各种导出,并在gunicorn进程执行之前使用source文件运行。 我关心的是environment.sh文件的位置,它的权限。 将这个文件存储在www-data有权访问的/srv文件夹中会好吗? 或者它应该被其他地方的根存储和拥有,比如/var/myapp/environment.sh ? 另外,对于www-data用户,如果我的任何web进程(以www-data运行)都受到攻击并且有人可以访问它们,这是否意味着用户可能会读取系统上的任何文件,即使他们不能写? 包括我的安全密钥?
我有一个nodejs应用程序永远在nginx后面运行。 当我部署新的代码,我只是forever restart但我不能在这么短的时间内获得502。 如何configurationnginx在502的情况下在这个上游服务器上继续重试? 我试着设置proxy_connect_timeout , proxy_read_timeout和proxy_send_timeout为例如30s但我立即得到502无论如何:( 我的网站conf是: upstream my_server { server 127.0.0.1:3000 fail_timeout=0; keepalive 1024; } server { listen 3333; server_name myservername.com; access_log /var/log/nginx/my_server.log; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; # retry upstream on 502 error proxy_connect_timeout 30s; proxy_send_timeout 30s; proxy_read_timeout 30s; proxy_pass http://my_server; proxy_http_version […]
我在使用我的Ubuntu 13.04机器上的nginx服务器时,遇到了麻烦,无法使用git–http-backend。 之前用Debian 7试过,但结果相似。 基本上我遵循http://weininger.net/configuration-of-nginx-for-gitweb-and-git-http-backend/,但忽略任何有关gitweb。 我做了以下几点: 安装nginx,git,git-core和fcgiwrap使用: apt-get install git git-core nginx fcgiwrap 在/var/git/test.git创build一个裸回购,并将其变为www-data: mkdir -p /var/git/test.git cd /var/git/test.git git init –bare git update-server-info chown -R www-data:www-data /var/git 用/ etc / nginx / sites-enabled / defaultreplace server { listen 80; server_name localhost; location / { root /var/git; fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_param PATH_INFO $uri; […]
什么被视为从一个特定的域名服务docker集装箱的“最佳做法”? 例如: Container1在端口8080上运行应用程序A,并通过AwesomeAppA.com访问 Container2在端口8090上运行App B,并通过AwesomeAppB.com进行访问 那么你可以,例如: 例如,让容器公开Gunicorn / uWSGI使用的端口,并在Docker主机上使用Nginx来处理代理。 但是你也可以让你的容器在内部运行Nginx并使用HAProxy 。 但哪个更好? 还有其他的优先select,还是真的是个人喜好? 选项1符合单一责任原则,并允许您在容器中运行您的1应用程序,并让主机处理代理。 它也允许Nginx处理SSL,但除了“docker运行”之外,还需要额外的设置和configuration。
我正在运行一个Web服务的负载testing。 这是一个运行在php-fpm和nginx上的使用fastcgi的php应用程序。 MySQL后端仅用于小型读取。 我总是看到一种奇特的模式:性能稳定,随着stream量的增加,性能会有所增加,但在高峰时刻性能会变得不稳定:CPU使用率不断波动。 这里是我看到的performance模式(用nmon可视化): 这个下降总是与我的负载testing工具locust.io在完成升级到我为testing设置的最高级别时的短暂停顿相符。 我的假设 :在这短暂的时刻, php-fpm主人认为负载已经消失,开始杀死工人; 在一会儿的交通恢复之后,它的响应速度不够快。 我不太明白的是,为什么它永远无法摆脱它:我看到负载均衡器背后的所有4个应用程序服务器无限期的波动。 这是我的php-fpm池configuration: [www] user = www-data group = www-data listen = /var/run/php5-fpm.sock listen.group = www-data listen.mode = 0660 pm = dynamic pm.max_children = 100 pm.start_servers = 40 pm.min_spare_servers = 40 pm.max_spare_servers = 100 pm.max_requests = 10000 我已经证实,这不是数据库的问题 – 我看到MySQL读取从站的数量翻倍后,完全相同的行为。 这是什么原因造成的? 我怎么能阻止它? 编辑: 这是一个图表,展示了我所看到的。 请注意,失败率通常会在user_count达到峰值时出现峰值,然后逐渐下降。
我希望在我的nginx SSL环境中启用SSL密码EDH-DSS-DES-CBC3-SHA (也称为TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA ),以支持Windows XP上的IE8。 nginx的基本SSL密码是: ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK EDH-DSS-DES-CBC3-SHA通过!DES被禁用。 我试图把这个密码放在禁用规则之前(在DHE-RSA-AES256-SHA和!aNULL )和之后(作为最后一个参数),但都没有工作。 如何启用密码EDH-DSS-DES-CBC3-SHA而不启用所有DES或手动禁用其他DES密码? 版本信息:nginx 1.7.8,OpenSSL 1.0.1e
我无法使Munindynamic缩放工作。 我确定这个问题与Nginxconfiguration有关。 任何生成缩放图的尝试都会在nginx日志中触发以下错误条目: 2015/02/22 13:26:01 [error] 4782#0: *2580 open() "/data/munin/usr/share/munin/cgi/munin-cgi-graph/bellaria/antergos1.bellaria/diskstats_latency/AntergosVG_AntergosRoot-pinpoint=1421756527,1424607727.png" failed (2: No such file or directory), client: 10.10.10.25, server: munin, request: "GET /usr/share/munin/cgi/munin-cgi-graph/bellaria/antergos1.bellaria/diskstats_latency/AntergosVG_AntergosRoot-pinpoint=1421756527,1424607727.png?&lower_limit=&upper_limit=&size_x=800&size_y=400 HTTP/1.1", host: "munin.bellaria", referrer: "http://munin.bellaria/static/dynazoom.html?cgiurl_graph=/usr/share/munin/cgi/munin-cgi-graph&plugin_name=bellaria/antergos1.bellaria/diskstats_latency/AntergosVG_AntergosRoot&size_x=800&size_y=400&start_epoch=1421756527&stop_epoch=1424607727" 具体来说,我怀疑fastCGI参数有问题。 愿一个友善的好心灵看看我的穆宁虚拟服务器(见下面)并向我解释什么是错的? 这让我发疯 – 但我有一个预感,任何专家都会在几分之一秒内发现问题。 # Munin server server { listen 80; server_name munin munin.bellaria; root /data/munin; allow all; access_log logs/munin.access.log; error_log logs/munin.error.log; location / { […]
我有一个nginx代理请求的图片上传服务。 一切都很好。 有时候,服务器已经有了用户正在上传的图片。 所以,我想尽早回复并closures连接。 在读取头文件并检查服务器之后,我调用Node的response.end([data] [,encoding] [,callback]) 。 Nginx barfs并返回一个空白的响应: [error] 3831#0: *12879 readv() failed (104: Connection reset by peer) while reading upstream 我的猜测是,nginx假设上游服务器发生了一些不好的事情,立即丢弃客户端连接而不发送上游服务器的响应。 有没有人知道如何正确回应和closures客户端的连接,当nginx是代理? 我知道这是可以做的: 请参阅:发送请求之前的响应 这里是nginx conf文件: worker_processes 8; # the number of processors worker_rlimit_nofile 128; # each connection needs 2 file handles events { worker_connections 128; # two connections per end-user connection […]
我一直在做我的nginx反向代理wrk的一些负载testing – >我的web应用程序设置,我注意到,当我达到1000+并发连接,nginx开始返回502s和以下错误信息: 2015/04/17 20:45:26 [crit] 6068#0: *1116212677 connect() to \ 127.0.0.1:3004 failed (99: Cannot assign requested address) \ while connecting to upstream, client: xxx.xxx.xx.165, server: \ foo.bar.com, request: "GET /my/route HTTP/1.1", upstream: \ "http://127.0.0.1:3004/my/route", host: "foo.bar.com" wrk命令是: wrk -t10 -c500 -d5m "https://foo.bar.com/my/route" -H "Accept: application/json" 我试图弄清楚这里可能出了什么问题。 我的web应用程序正在侦听由端口3004的nginx代理的请求。是否nginx用尽端口? Web应用程序无法处理这么多的请求? 请求是否超时? 我不清楚这一点,并希望有更多的洞察力。
我的PHP-CGI开始空白页面没有明显的原因,直到我重新启动的过程。 我想知道为什么。 不幸的是,PHP的“生产”configuration文件默认没有error_log。 我的Nginx错误日志也没有显示与PHP相关的错误。 这可能是一个无望的情况,但我只是为了以防万一。 这是我的设置 Nginx 0.8.2 PHP 5.2.6-3ubuntu4.1与Suhosin-Patch 0.9.6.2(cli)(内置:2009年4月23日14:37:14) PHP APC 3.0.19-2 spawn-fcgi v1.6.2(ipv6) – 来自lighttpd的fastcgi包装 任何想法可能会导致错误? 更新 我想我已经隔离了这个问题。 我一直在使用Monit来自动重新启动PHP,当它开始消隐。 我的PHP错误日志是空白的。 但是我发现如果我禁用了一个名为WP-SuperCache的WordPress插件,我的PHP停止了每10个小时的重置。 到目前为止,我的PHP已连续运行了三天。 有没有人对此有任何build议?