我用php-cgi使用nginx。 最近出现了一个问题,如果你不查看我的网站一段时间,比如3-4分钟,然后再打开它,你发送的第一个请求将返回在浏览器中被同位体重置的连接。 如果刷新,所有后续请求的操作都是正常的。 这种情况每次都会发生,这不仅仅是一个孤立的事件,它发生在每个人使用我的网站。 我试图重新启动nginx和php-cgi,但无济于事。 有谁知道是什么问题? 我可以提供任何必要的信息。 值得注意的是,除了有关客户端提前closures连接的消息之外,没有任何错误日志。 nginx.conf user nobody; worker_processes 4; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 2048; } http { include /etc/nginx/mime.types; error_page 404 /404.html; error_page 403 /403.html; error_page 444 /444.html; error_page 502 /502.html; 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 […]
我使用SSL设置Puppetdb并遇到证书问题。 我使用Nginx作为Puppet的SSL代理,所以我的CA由这个Nginx代理机器上的mongrel服务器pipe理。 如果我使用Nginx机器上的CA为我的Puppetdb URI生成证书,我可以使用puppetlabs-puppetdb模块(因为Puppet代理使用代理的CA)来设置Puppetdb, puppetlabs-puppetdb无法连接到它,因为它有自己生成的CA证书。 如果我使用其中一个Puppetmasters为Puppetdb URI生成证书,则不能使用puppetlabs-puppetdb模块部署Puppetdb,因为Puppet代理不使用相同的CA证书。 我能做些什么调和这一切? 我可以完全closures我的傀儡(因为SSL由Nginx代理pipe理)的SSL和让他们使用代理的CA连接到Puppetdb?
在Debian上安装php-fpm与nginx一起使用的首选/推荐方式是什么? 我到处读了一个“php5-fpm”的软件包,但是在官方的debian软件仓库中已经不存在了。 PHP-FPM网站( http://php-fpm.org/download/ )表示,fpm现在包含在php核心中。 那么安装“php5-common”就足够了吗? 虽然configuration文件在哪里? 其他人推荐从dotdeb.org安装当前版本的php和php-fpm。 在那里提供的版本通常更新。 但是安全吗? 这是一个很好的回购在生产环境中使用? 我将不胜感激任何意见。
我有一个有趣的问题,我需要在nginx中解决:我build立的站点之一在端口80(并且只有端口80)上接收入站stream量,这个stream量可能在请求中设置了某个头部。 如果这个头部是存在的,我需要捕获它的值,并作为一个查询string参数附加之前做临时redirect(重写)到一个不同的(安全)服务器,同时传递参数和任何其他查询string参数。 这应该是非常可行的,但如何! 非常感谢, JS
我在Ubuntu 12.04 64位上的Amazon EC2上运行带有PHP5-FPM的Nginx。 每当我到达我的网站时,我都会收到错误的网关错误。 我知道这是一个configuration问题,但我不知道什么是不良configuration。 我的错误日志: 2012/11/17 05:29:19 [error] 9519#0:* 4 open()“/var/www/growyourbutt.com/robots.txt”failed(2:No such file or directory),client:131.253 .41.146,server:growyourbut $ 2012/11/17 05:29:19 [error] 9519#0:* 5 open()“/var/www/growyourbutt.com/wp-content/themes/wp-bold107/images /facebook.png“失败(2:没有这样的文件或目录),clien $ 2012/11/17 05:30:36 [error] 9519#0:* 6”/var/www/growyourbutt.com/tag/brazilian (2:没有这样的文件或目录),客户端:$ 2012/11/17 05:31:56 [error] 9519#0:* 7 connect( )连接上游失败(111:连接被拒绝),客户端:67.85.186.145,服务器:growyourbutt.com,请求$ 2012/11/17 05:31:56 [error] 9519#0:* 10 connect()failed (111:连接被拒绝),同时连接到上游,客户端:188.138.0.168,服务器:growyourbutt.com,请求$ 2012/11/17 05:31:57 [error] 9519#0:* 12 connect()failed(111 :连接被拒绝)连接到上游时,客户端:188.138.0.168,服务器:growyourbut t.com,reque […]
你好,这应该是相当容易回答任何系统pipe理员,问题是,我不是服务器pipe理员,但我必须完成这项任务,我非常接近,但仍然没有设法做到这一点。 这是我的意思,我有两个tomcat实例在machine1和machine2上运行。 人们通常通过访问url访问这些网站: http://machine1:8080/appName http://machine2:9090/appName 问题是当我设置nginx的域名,即domain.com ,nginx发送请求到http://machine1:8080/和http://machine2:9090/而不是http://machine1:8080/和http://machine2:9090/appName 这是我的configuration(非常基本,因为它可以指出): upstream backend { server machine1:8080; server machine2:9090; } server { listen 80; server_name www.mydomain.com mydomain.com; location / { # needed to forward user's IP address to rails proxy_set_header X-Real-IP $remote_addr; # needed for HTTPS proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_max_temp_file_size 0; proxy_pass http://backend; } […]
我打算限制用户带宽。 我遇到了核心模块中的post_action指令,并考虑是否可以获得nginx提供的响应大小,并使用post_action将其发送给代码。 任何想法我怎么能做到这一点?
if (!-e $request_filename){ rewrite /iOS/(.*jpg)$ /$1 last; rewrite /iOS/(.*jpeg)$ /$1 last; rewrite /iOS/(.*png)$ /$1 last; rewrite /iOS/(.*css)$ /$1 last; rewrite /iOS/(.*js)$ /$1 last; rewrite /Android/(.*jpg)$ /$1 last; rewrite /Android/(.*jpeg)$ /$1 last; rewrite /Android/(.*png)$ /$1 last; rewrite /Android/(.*css)$ /$1 last; rewrite /Android/(.*js)$ /$1 last; rewrite ^/(.*)$ /?route=$1 last; } 有一些虚空url,例如mysite.com/yourdetails,它们是由路由器类(它是一个以index.php作为入口点的PHP应用程序)在内部处理的,它们在nginx上似乎工作正常,但不是Apache: – / 我试过这个,但虚荣url不起作用 RewriteEngine On RewriteBase […]
在nginx.conf文件中,是否可以根据当前连接是否安全重写为HTTP或HTTPS? 一些我想要做的伪代码。 location ^~ /test_api { if (secured connection) rewrite "/test_api" https://www.somedomain.com/test_api break; else rewrite "/test_api" http://www.somedomain.com/test_api break; } 谢谢。
我确定以前用过不同的语言,但是我通过nginx后面的uwsgi(emporer模式)运行了几个Django站点。 这是一个相当标准的configuration,但我发现,如果我重新启动中央uwsgi进程,nginx只是炸弹了502s,而不是等待套接字变得可用。 我承认这其中的大部分可能是有原因的,但是看到502错误的人确实会刺痛我。 这当然不是我想让客户看到的东西。 所以… 我可以求nginx等待/重试后端? 要么, 有什么(除了明显的)我可以做到最小化从uwsgi重新启动的商业损失?