Articles of nginx

我如何在debian jessie上安装nginx 1.9.5?

我将这些行添加到“/etc/apt/sources.list”中: deb http://nginx.org/packages/mainline/debian/ jessie nginx deb-src http://nginx.org/packages/mainline/debian/ jessie nginx 之后,我尝试更新nginx: sudo apt-get clean && sudo apt-get install nginx 但是我得到以下错误: Unpacking nginx (1.9.15-1~jessie) over (1.6.2-5+deb8u1) … dpkg: error processing archive /var/cache/apt/archives/nginx_1.9.15-1~jessie_amd64.deb (–unpack): trying to overwrite '/usr/share/nginx/html/index.html', which is also in package nginx-common 1.6.2-5+deb8u1 dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) Errors were encountered […]

通过代理使用postfix。 应该如何configuration?

Postfix默认使用端口25,465和587.在我的configuration中,我使用postfix的main.cf的选项smtpd_use_tls=yes启用了TLSencryption。 据我所知,这使得所有smtp通信都被encryption。 由于后缀只需要1个证书,不支持SNI ,我想用nginx作为代理,由基于SNI和域名的nginx作为代理,而不是由后缀来决定encryption。 我很困惑我必须在后缀做的变化,我会很感激你的帮助。 这是我的问题: 1)当我通过我的服务器发送电子邮件时,我使用端口25.但接收邮件又如何? 我应该改变这些后缀使用的端口(用nginxreplace它们)吗? 或者只是端口25就够了? 2)当我使用nginx作为代理时,我应该在postfix中禁用encryption吗? 如果我正确理解了这一切,那么nginx和postfix之间的内部代理通信不需要encryption,所以我应该禁用encryption,一旦我开始使用smtpd_use_tls=noconfiguration代理,对不对? 我需要任何额外的信息,请询问。

Opsworks没有正确部署最新的GitHub源代码

我有一个已经运行了一段时间的Opsworks Rails Layer(nginx / unicorn)实例,并且我已经成功地直接从GitHub中部署了我的Rails应用。 昨天,我开始看到一个奇怪的错误,我们最新的代码更改实际上并没有被Opsworks部署。 即我得到一个500错误, 只能从我的github回购旧版本的堆栈跟踪。 发生错误的行不再存在于最新版本的代码中。 当我SSH进入实例并查看/srv/www/<myapp>/current文件夹时,我看到最新的代码文件,并在Opsworks Deploy日志文件中看到对最新GitHub提交的引用。 它看起来像所有东西都正确部署(即我看到没有错误的日志文件,部署成功完成),但显然有什么问题。 有没有人有任何想法? 有没有我不知道的服务器上的代码caching? 我终于尝试停止/重新启动实例,当它重新启动时,我开始得到这个错误: (111:连接被拒绝),当连接到上游 – Opsworks Rails 4 。 我不知道这两个问题是否相关…也许这是所有关于独angular兽不能正常重启…但现在,我真的想深究为什么我最新的GitHub回购代码不看起来像是成功的部署,最终在服务器上运行。 提前致谢!

pecl安装pecl_http失败 – 升级到php7和http.so会造成麻烦

类似的问题: pecl_http加载失败 所以我想升级到PHP7.0 ,我相信一切都很好。 但我想我错过了一些页面包,因为我无法login到自己的云端 。 所以我想安装pecl_http : pecl install pecl_http PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/http.so' – /usr/lib/php/20151012/http.so: cannot open shared object file: No such file or directory in Unknown on line 0 downloading pecl_http-3.0.1.tgz … Starting to download pecl_http-3.0.1.tgz (197,372 bytes) ………….done: 197,372 bytes 71 source files, building running: […]

Nginx + WordPress语言redirect

我目前正在尝试使用用于语言支持的Wordpress多站点来configurationNginx安装。 多站点configuration:mysite.com(未使用)mysite.com/it mysite.com/en 基本上我想添加一个默认的语言和redirect,如果我find英语。 该网站实际上是在Apache安装,所以我们使用: RewriteCond %{HTTP:Accept-Language} ^en [NC] RewriteRule ^$ /en/ [L,R=301] RewriteRule ^$ /it/ [L,R=301] 为实际的redirect。 我试图用nginx复制,没有任何运气。 到目前为止我补充说: map $http_accept_language $lang { default it; ~en en; } server { listen 80; server_name mysite.com; access_log /var/log/nginx/logs/mysite-access.log ; error_log /var/log/nginx/logs/mysite-error.log ; location / { root /var/www/html/mysite; index index.php index.html; try_files $uri $uri/ /index.php?$args; rewrite ^ […]

强制nginxclosures连接

我们有一个如下所示的设置: 客户端 – > AWS ELB(tcp负载均衡) – > NGINX(ssl终止) – >应用服务器。 我们希望将应用程序服务器从负载平衡器中正常地取出。 我们通过健康检查来做到这一点,当节点即将closures时,以503响应,同时允许任何挂起的请求完成。 但是,由于nginx被configuration为使用保持活动状态,即使已经从负载平衡器中取出节点,已经build立连接的客户端也可能会继续发送新的请求。 在应用程序服务器的所有响应中设置Connection: close header并没有什么帮助,因为nginx(根据RFC)正确地不传递给客户端。 有没有其他的方法,但完全禁用保持活力?

我可以在基于URI和IP的nginx中否认吗?

基本上我有一个WordPress的网站(电子商务商店和社交login)。 我拒绝所有访问基于IP地址的wp-login.php。 问题是社交login使用这个wp-login文件。 所以我想知道是否有可能: – 通过ip地址阻止几乎所有的查询wp-login.php,并允许通过ip只有特定的查询。 含义 wp-login.php允许1个IP全部拒绝 wp-login.php?action=lostpassword允许1个ip拒绝全部 wp-login.php?action=rp&key=.*?&login=.*允许1个ip拒绝全部 。 。 wp-login.php?ywsl_social=google允许所有ip的 wp-login.php?ywsl_social=twitter允许所有的IP 像这样的东西: location = /wp-login.php { if ($query_string = "ywsl_social=google|ywsl_social=twitter") { allow all; fastcgi_pass unix:/var/sockets/sock.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param HTTPS on; } else { allow 1.1.1.1; deny all; fastcgi_pass unix:/var/sockets/sock.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param […]

听127.0.0.1:9000,但var / run / php5-fpm.sock失败(2:没有这样的文件或目录)

我有一个networking服务器configuration为接受像下面的127.0.0.1:9000 FastCGI请求。 /etc/php5/fpm/pool.d/www.conf : listen = 127.0.0.1:9000 / etc / nginx / sites-enabled / mysite : location ~ .php$ { if (!-e $request_filename) { rewrite / /index.php last; } expires off; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param MAGE_RUN_CODE $mage_code; fastcgi_param MAGE_RUN_TYPE $mage_type; include fastcgi_params; } 但是,我正在看Nginx的错误日志,我不断收到此错误: connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or […]

Nginx的尾部斜杠redirect问题

我正在使用Nginx + Varnish运行一个Wordpress网站。 我得到如果我正在添加或删除configuration文件中的尾部斜杠页面不正确redirect错误。 请build议解决scheme删除或添加没有redirect问题的尾部斜杠。 目的是为了避免内容重复问题。 谢谢。 我的nginx conf文件: server { listen 8080; server_name xyz.de www.xyz.de; root /var/www/html/xyz.de; port_in_redirect off; index index.html index.htm index.php; access_log /var/log/nginx/xyz.de.access.log; access_log /var/log/nginx/xyz.de.apachestyle.access.log apachestandard; error_log /var/log/nginx/xyz.de.error.log; location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } location = /apple-touch-icon.png { access_log off; […]

需要关于跟踪传入HTTP请求path的指导

我正在谷歌云平台上运行一个WordPress(4.5.2版本)博客(由Apache服务),它使用GCP的networking设置从互联网完全防火墙。 只有在同一个GCPnetworking(即面向互联网的代理,nginx版本1.10.0)的其他机器的连接在单个端口80上是允许的。前一段时间,我发现WordPress机器负载繁重, /xmlrpc.php,我认为这是一种常见的攻击,所以我用.htaccess来阻止访问它赢得一些时间。 现在,Apache的日志充斥着 <same external ip> – – [timestamp] "POST /xmlrpc.php HTTP/1.0" 403 <same answer length> 如预期。 奇怪的是,在提及xmlrpc.php的nginx日志中没有一条logging,在阻止它之前和之后,虽然有效的博客页面请求和其他logging正常logging。 我可以想到对这种情况的两种解释,但都难以置信: 攻击者(我敢肯定,这是一个有意的攻击)利用了nginx中的一些漏洞,允许请求避免被logging。 攻击者设法绕过GCP防火墙,这更难以相信。 也许有一些方法可以跟踪TCP数据包的来源(是我的负载平衡器还是外部地址)? 或者也许我太偏执,对这种情况有一个更简单的解释。 更新我已经通过完全禁用nginx上的代理来消除选项(1),所以最不可能的解释仍然是唯一的。 如果有人certificate我错了会很好。 更新2几个小时之后,攻击已经停止,因为它已经不能达到目的了(apache刚刚用403响应)。 我想如果再次发生这种情况,可能的解决scheme是使用tcpdump来转储通信,然后使用Wireshark分析它,找出至less最后一跳来源。 如果有一些更有经验的人分享一些知识如何做到这一点,或者指引我朝着正确的方向发展,那将是非常好的。