所以,我试图执行每个请求的脚本。 我知道这听起来如何,这是为了开发环境。 我已经添加到我的nginxconfigurationaccess_by_lua_file "/opt/nginx/git-magic.lua"; git-magic.lua包含local status = os.execute('/opt/nginx/git-magic.sh') 而git-magic.sh包含: echo hello >> /tmp/git-magic 问题是: 每当我点击任何url,我在nginx错误日志中得到以下内容: 2012/09/27 15:35:48 [alert] 3241#0: waitpid() failed (10: No child processes) 任何想法我可能做错了什么?
我用upload_moduleconfiguration了Nginx。 我可以上传和恢复文件,但任何人都可以张贴到/上传位置。 有没有办法使内部位置/上传和使用X-Accel-Redirect,以便只有经过身份validation的用户可以发布文件? 或者有关如何保护服务器的任何想法,以便只有某些用户可以发布文件,在应用程序端有authentication逻辑?
如何在Ubuntu中构buildnginx 1.4.0和ngx_pagespeed 创build一个目录下载必要的软件包(可选): mkdir pagespeed && cd pagespeed 确保你有最新版本的nginx,我推荐使用nginx回购。 添加nginx回购: wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key 添加这行到/etc/apt/sources.list文件中: deb http://nginx.org/packages/debian/ codename nginx (for 12.04 codename is squeeze) deb-src http://nginx.org/packages/debian/ codename nginx 下载nginx源码并构build包: sudo apt-get update sudo apt-get install dpkg-dev sudo apt-get source nginx build立nginx代码: sudo apt-get build-dep nginx 确保你有这个ngx_pagespeed的要求: sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev […]
我已经在我的nginx服务器上设置了任何域名configuration,以减less打开新站点/域时所需的工作量。 这个configuration允许我简单地在/usr/share/nginx/sites/目录下创build一个文件夹,域名/子域名,然后就可以了。 server { # Catch all domains starting with only "www." and boot them to non "www." domain. listen 80; server_name ~^www\.(.*)$; return 301 $scheme://$1$request_uri; } server { # Catch all domains that do not start with "www." listen 80; server_name ~^(?!www\.).+; client_max_body_size 20M; # Send all requests to the appropriate host root /usr/share/nginx/sites/$host; […]
由于主要浏览器不推荐使用SHA1证书,获得SHA2签名证书似乎是明智之举。 但是这样做会阻止IE6用户。 虽然对于大多数人来说这在某些情况下不会成为问题,但可能会阻碍重要的用户。 看一下SSL握手 ,客户端发送它支持的细节。 所以在理论上,服务器可以发送客户端将支持的证书。 较新的浏览器将得到一个SHA2签名的一个和更老的SHA1。 但是看起来好像有没有办法通过nginxconfiguration来做到这一点。 虽然您可以设置密码和协议的版本,但您不能通过任何逻辑来确定如何使用不同的客户端configuration。 有没有办法根据客户端支持不同的证书服务器?
我最近把我的magento从1.5升级到1.9,并且当我添加某个产品到购物篮时,我开始收到这个错误: 502 Bad Gateway var / log /文件夹中没有日志条目: 所以,我看看我的nginx错误,并在nginx-errors.log中find以下条目: 2015/04/09 10:58:03 [error] 15208#0: *3 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 46.xxx.xxx.xxx, server: dev.my-domain.co.uk, request: "POST /checkout/cart/add/uenc/aHR0cDovL2Rldi5zYWx2ZW8uY28udWsvdGludGktYmF0aC1wYWludGluZy1zb2FwLTcwbWwuaHRtbD9fX19TSUQ9VQ,,/product/15066/form_key/eYLc3lQ35BSrk6Pa/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fcgi-www-data.sock:", host: "dev.my-domain.co.uk", referrer: "http://dev.my-domain.co.uk/tinti-bath-painting-soap-70ml.html" 2015/04/09 11:04:42 [error] 15208#0: *13 recv() failed (104: Connection reset by peer) while reading […]
我有Nginx纯粹作为一个代理服务器的各种数量的Web服务器运行。 我们的一个客户要求我们使用客户端证书,并为3台不同的机器提供了3个证书,这些机器将连接到一台代理服务器上运行的web服务。 从未这样做,我find了相关的nginx设置,并创build了一个站点configuration(下面的相关部分) server { listen 443 ssl; server_name service.domain.com; ssl_certificate /etc/nginx/ssl/wildcard/server.crt; ssl_certificate_key /etc/nginx/ssl/wildcard/server.key; ssl_client_certificate /etc/nginx/ssl/client.certificates/client_package.cer; ssl_verify_client on; 我将3个客户端证书和由开发者创build的证书(这个是自签名的)在开发过程中连接到上面提到的单个文件。 客户现在试图访问该网站,但无法这样做。 作为configurationtesting,我从连接的证书文件中删除了开发人员证书,并确认他无法访问该网站。 一旦我将他的证书添加到连接文件中,他(开发人员)就可以再次正确访问网站。 我打开了错误日志的debugging级别访问,当客户端试图连接时,我得到了以下错误。 2015/08/13 11:57:41 [info] 27601#0:* 1963客户端在处理SPDY时没有发送所需的SSL证书,客户端:1x.xx.xx.xx,服务器:service.domain.com,请求:“ GET /test.cfm HTTP / 1.1“,主机:”service.domain.com“ 从上面的configuration中可以看到,我没有启用SPDY(但我在其他站点上),客户端确保他们发送客户端证书。 因为这是我第一次这样做,所以我想确保在我回去之前说我的日志说你没有发送客户端证书,我已经把所有的东西都修改了。 关于发给我的证书:所有3个都由同一个公共证书机构签字。 然而,我并没有在连接的文件中有整个链。 我在网上发现了哪些指南,其中也提到了根CA,但是他们都在谈论自签名,而这些都不是。 所以我不确定这是否适用。 为了澄清,我也没有试图将客户端证书传递给代理服务器。 nginx版本:nginx / 1.8.0 openssl版本:OpenSSL 1.0.1k 2015年1月8日 如果有任何更多的信息,请让我知道
我有一个Nginx和Passenger的设置,certificate是有问题的。 在相对较低的负载下,服务器似乎得到了备份,并开始搅动结果,如error.log: connect() to unix:/passenger_helper_server failed (11: Resource temporarily unavailable) while connecting to upstream 我的乘客设置是: passenger_min_instances 2; passenger_pool_idle_time 1200; passenger_max_pool_size 20; 我已经做了一些挖掘,看起来像CPU挂钩。 内存使用情况看起来很好,passenger_memory_stats显示最多使用700MB左右,但CPU接近100%。 这足以造成这种types的错误? 我应该把游泳池的尺寸缩小一些吗? 是否有其他configuration设置我应该看? 任何帮助赞赏 其他相关信息: Amazon EC2小实例 Ubuntu 10.10 Nginx(最新稳定版) 乘客(最新的稳定) Rails 3.0.4
我想强制我的虚拟主机的SSL客户端validation。 但是得到“没有必要的SSL证书发送”的错误,试图从中获得一些东西。 这里是我的testingconfiguration: # defaults ssl_certificate /etc/certs/server.cer; ssl_certificate_key /etc/certs/privkey-server.pem; ssl_client_certificate /etc/certs/allcas.pem; server { listen 1443 ssl; server_name server1.example.com; root /tmp/root/server1; ssl_verify_client off; } server { listen 1443 ssl; server_name server2.example.com; root /tmp/root/server2; ssl_verify_client on; } 第一个服务器回复200个http代码,但是第二个返回“400错误请求,没有发送必需的SSL证书,nginx / 1.0.4”。 也许,在同一个IP上使用ssl_verify_client是不可能的? 我应该将这些服务器绑定到不同的IP地址,它能解决我的问题吗?
我正在使用nginx的X-Accel-Redirectfunction,其中一个代理后端(A)可以“内部redirect”nginx重新处理一个新的URI(B),就像这是最初由客户端浏览器给出的。 它在制作请求B(也代理)和返回B的结果报头回到客户端浏览器方面效果很好。 到现在为止还挺好。 但是我也有一些A的标题,我也想传递给他们。 换句话说,将A中的一些头文件与B中的结果合并。 我怎样才能做到这一点? 我试过了 add_header X-My-Header $http_x_my_header; 但是, $http_x_my_headervariables是空的,大概是因为原来的请求没有它。 我也试过$upstream_x_my_header但也是空的。 我已经尝试了像proxy_pass_header X-My-Header; 但不是。