Articles of nginx

更新了php5-fpm,不能再使用socket了

今天早些时候,我更新了一个服务器上的软件包。 其中一个包是php5-fpm的更新,这似乎破坏了我使用unix:/var/run/php5-fpm.sock能力unix:/var/run/php5-fpm.sock 。 免责声明 :我最近才开始使用Linux; 我不完全明白这里发生了什么。 我已经回顾了很多其他的问题,但一直没能find答案我的问题,这是我得到一个502错误的网关错误,如果我尝试使用php5-fpm.sock而不是传递到127.0.0.1:9000 。 以下是一些基于其他问题的相关细节: 我的php5-fpm进程正在运行。 我的/etc/php5/fpm/pool.d/www.conf文件有listen = /var/run/php5-fpm.sock 我的服务器块有fastcgi_pass = unix:/var/run/php5-fpm.sock php5-fpm.sock 确实存在于/var/run/ 。 当升级php5-fpm时,它问我是否想覆盖我的www.conf。 我检查了差异,维护者文件和我的唯一变化是维护者的listen = 127.0.0.1:9000设置为默认值。 select覆盖并完成升级php5-fpm之后,我打开/etc/php5/fpm/pool.d/www.conf并将listen = /var/run/php5-fpm.sock改为listen,就像它已经事先设置。 然后我重新启动了php5-fpm,然后按照nginx的顺序。 我现在得到一个502时,访问该域名,并在一个完整的损失。 如果我在我的主机文件中将www.conf和fastcgi_pass中的listen更改为127.0.0.1:9000 ,则一切正常。 如果有问题,我正在使用Ubuntu 12.04LTS。 非常感谢您的帮助。

Rackspace Load Balancer后面的Nginxvalidation

我似乎无法从Rackspace云平衡器后面获得Nginx的基本authentication。 首先,我在我的nginx.conf中使用这个代码(它也是使用真正的IP模块,这是我尝试的mannny解决scheme之一): http { set_real_ip_from 1.1.1.2; #real_ip_header X-Forwarded-For; satisfy any; allow 1.1.1.2; deny all; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/htpasswd; 这是我在PHP中的头中看到的字段: ["HTTP_X_FORWARDED_FOR"]=> string(14) "1.1.1.2" 由于某种原因,Nginx在默认情况下不起作用。 我已经尝试了很多东西,但似乎无法使其工作。 有任何想法吗?

Nginx反向代理+ CloudFlare地理定位服务

在我们的环境中,我们使用Nginx作为我们的Apache应用服务器的反向代理。 需要一个地理定位服务,我们决定使用CloudFlare的IP_Country服务。 我们可以接收IP_Country HTTP参数,但是我们无法将它传递给Apache。 我们尝试设置下面的规则,但似乎没有工作: proxy_set_header HTTP_CF_IPCOUNTRY $sent_http_CF_IPCountry; 我将不胜感激有关从Nginx传递自定义HTTP参数到Apache的任何帮助。 最好的问候,hex

Nginx | 所有子域webmmail。*。*到一个文档根目录

事先我想说明的是,我已经浏览了Nginx wiki。 之前询问Stackoverflow和Servervault。 我有我的nginxconfiguration的麻烦。 这是我的configuration server { listen 8080; root /opt/apanel/apps/webmail; index index.php index.html index.htm; server_name webmail.*.*; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.php$ { fastcgi_index index.php; fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; } } 我希望所有的networking邮件子域显示一个文档根目录的oint。 从我的错误日志中的行: ^ [[1; 5A2014 / 07/20 19:44:41 [emerg] 9276#0:无效的服务器名称或通配符“admin 。。 ”on 0.0.0.0:8080 有谁知道如何做到这一点?

Nginx及其caching系统。 他们都一样吗?

对于PageSpeed,Microcaching和Memcached,我有点困惑。 他们只是不同的工具,做同样的工作? 我最初是想用Nginx来使用PageSpeed。 如果我这样做,我需要微型caching吗? 而memcached呢?

什么是(如果有的话)可能的情况,黑客可以find多个站点托pipe在一个VPS?

让我澄清:说我有一个VPS主机托pipe10个站点。 出于某种原因,其中一个网站变得有名,黑客想知道它在哪里被托pipe,还有多less其他网站在这个网站上。 我认为第一个就像findIP一样简单,但是实际上并没有黑客攻击这个站点,有人知道在这个IP中托pipe了多less个域名? 如果你想知道为什么我问,我主要在7个商业网站和1个个人网站提供一些编程技巧,我主要收集/find在互联网上。 虽然这个网站是最安全的(没有用户input,最新的软件…),我不禁想象这些脚本小子是否会试图find方法来获取我的其他域名可能会把我的客户的网站置于危险之中。

Nginx密码保护整个端口号8081

我正在尝试密码保护我的网站上的整个端口 – https://domain.com:8081和http://domain.com:8081 我试图编辑/etc/nginx/sites-enabled/domain.com.vhost在服务器块中添加以下内容无效(我从这个链接获得 ,除了链接是关于密码保护目录,而不是端口): location ^~ :8081 { auth_basic "Restricted Area"; auth_basic_user_file conf/htpasswd; } 我也试过“位置:8081”,但是这也没有奏效。 我怎样才能密码保护端口8081(或任何其他港口我渴望这个问题)? 如果它有什么区别,我使用Nginx 1.4.6的Ubuntu 14.04.1 LTS。 谢谢。 [编辑] 在实施Nathan的解决scheme时,当进入https://domain.com:8081/phpmyadmin/(SSL )时,它会提示input用户名和密码,但会给我一个“500内部服务器错误”页面。 以下是Nginx错误日志中显示的内容: [crit] 3390#0: *154 open() "/etc/nginx/conf/htpasswd" failed (13: Permission denied), client: 152.35.52.108, server: domain.com, request: "GET /phpmyadmin/ HTTP/1.1", host: "domain.com:8081" 当去http://domain.com:8081/phpmyadmin/ (非SSL),它给了我“400错误的请求普通的HTTP请求被发送到HTTPS端口”。 在错误日志上没有任何注册; 相反,Nginx的访问日志中会出现以下内容: "GET /phpmyadmin/ HTTP/1.1" 40.1" 400 279 […]

Async在Nginx服务器上的AJAX请求上被忽略

尽pipe通过AJAX发送asynchronous请求到服务器,服务器将不响应,直到以前不相关的请求完成。 下面的代码在Nginx上只能以这种方式破解,但是在Apache上运行得很好。 这个调用将启动一个后台进程,并等待它完成,以便显示最终结果。 $.ajax({ type: 'GET', async: true, url: $(this).data('route'), data: $('input[name=data]').val(), dataType: 'json', success: function (data) { /* do stuff */} error: function (data) { /* handle errors */} }); 以上是在上面调用的,在Apache上需要100ms来执行和重复自己,显示正在后台写入数据的进度: checkStatusInterval = setInterval(function () { $.ajax({ type: 'GET', async: false, cache: false, url: '/process-status?process=' + currentElement.attr('id'), dataType: 'json', success: function (data) { /* […]

带有php-fpm的Nginx突然开始返回504 Gateway Time-out

我们有一个在Azure平台上运行的暂存Ubuntu服务器,只是突然开始超时。 我们前几天创build了服务器,并且工作得很好。 今天突然间,它刚刚开始返回504s。 我们已经重新启动了nginx和php-fpm,但它仍然不能正常工作。 我们已经尝试从我们的私钥中删除密码短语,就像其他一些答案所说,但它没有解决问题。 任何帮助或疑难解答的build议将不胜感激。 另外让我知道是否有另一个configuration文件,你需要看到。 提前致谢! 我们的/var/log/nginx/error.log: 2014/09/12 14:11:33 [emerg] 3854#0: SSL_CTX_use_PrivateKey_file("/etc/ssl/ssl.key/myserver.key") failed (SSL: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt error:0906A065:PEM routines:PEM_do_header:bad decrypt error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib) 2014/09/12 14:12:49 [error] 3887#0: *1 upstream timed out (110: Connection timed out) while reading response header from upstream, client: {MY_IP}, server: {OUR_DOMAIN}, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock", host: […]

如何使清漆4.0与nginx和pagespeed工作

我正在尝试使用mod_pagespeed设置Varnish 4 + Nginx。 根据本文档,我正在使用以下configurationVarnish 4: https://developers.google.com/speed/pagespeed/module/downstream-caching 我使用的configuration没有提供任何错误,但是我几乎没有从Varnish的caching命中 MAIN.cache_hit 80 MAIN.cache_miss 347 完整的.vclconfiguration: # Marker to tell the VCL compiler that this VCL has been adapted to the # new 4.0 format. vcl 4.0; import std; # Block 1: Define upstream server's host and port. Set this to point to your # content server. backend […]