Questions tagged «nginx»

Nginx(“ eNgine x”)是一种轻量级的高性能HTTP服务器,反向代理,TCP流代理和邮件代理,在类似BSD的许可证下发布。

2
仅重定向首页
我只需要将http://shop.test.com重定向 到 http://www.test.com/fedex-orders/ 只是主页。没有其他的。即 http://shop.test.com/?page=blog不应重定向。
16 nginx  rewrite 

2
用作反向代理时,防止nginx将流量从https重定向到http
这是我的缩写nginx vhost conf: upstream gunicorn { server 127.0.0.1:8080 fail_timeout=0; } server { listen 80; listen 443 ssl; server_name domain.com ~^.+\.domain\.com$; location / { try_files $uri @proxy; } location @proxy { proxy_pass_header Server; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout …
16 nginx  ssl  https 

3
如何从nginx配置中的$ uri中删除位置块?
我在ngix conf文件中进行了重写,可以正常工作,只是它似乎将位置块包含在$ uri变量中。我只想要位置块后面的路径。我当前的配置代码是: location /cargo { try_files $uri $uri/ /cargo/index.php?_REWRITE_COMMAND=$uri&args; } 使用http://localhost/cargo/testpage重定向的示例URL 可以,但是我的php文件接收到的“ _REWRITE_COMMAND”参数的值为“ / cargo / testpage”。我需要剥离位置块,然后将“ testpage”作为$ uri 我很确定有一种正则表达式语法可以拆分$ uri并使用$ 1 $ 2等将其分配给新变量,但是我找不到任何示例来使用不属于重写的正则表达式来进行变量赋值声明。我一直在寻找并尝试了几个小时,但似乎似乎无法摆脱最后一步。 我也知道我可以在应用程序代码上删除它,但是我想在nginx conf中修复它的原因是出于兼容性原因,因为它也可以在Apache上运行。我还应该说我已经找到了一种真正的方法,但是它涉及一个“ if”语句来检查文件是否存在,文档特别指出不要这样做。
16 nginx 

4
如何使用Nginx代理/ grafana?
我已经设置并启动了默认grafana,它在http:// localhost:3000上可以正常工作。我正在尝试使用安装了ssl的nginx代理它。我正在尝试让它响应https:// localhost / grafana,但它仅提供以下服务: {{alert.title}} 我的nginx服务器块中有这个: location /grafana { proxy_pass http://localhost:3000; proxy_set_header Host $host; }
15 nginx 

3
启用TLS 1.2后,为什么Internet Explorer 11无法连接到HTTPS站点?
通常我根本不使用Internet Explorer。我仅在设计时进行接口测试(开发机器和未加密的http)使用它。每周我都会运行SSL Labs服务器测试,其中说IE11能够访问我的网站。 今天,我发现我的第三方服务之一存在问题。某些特殊功能不适用于Chrome或Firefox,因此我在Windows 7计算机上启动了IE11。IE11告诉我一个内置的错误页面,女巫基本上只说“页面无法显示”。与典型的虚拟bla bla一样,例如检查DNS等。在整个错误页面上绝对没有迹象表明存在与加密相关的问题(就像普通浏览器一样)。 几个月前就出现了这个schannel问题,该问题阻止了启用TLS1.2的IE访问HTTPS站点。从那时起,我的“ IE的WTF检查表”包含“禁用TLS1.2”作为检查点。我该怎么说... 在IE中禁用TLS1.2可以正常工作,并且我的站点可以再次使用。但是我无法在访问者浏览器上执行此操作。 现在是真正的问题:为什么在IE中启用TLS 1.2时,为什么Internet Explorer 11无法连接到我的HTTPS站点?以及如何在服务器端修复它?SSL Labs告诉我,我的网站上一切正常。 重要编辑:启用TLS1.2后,似乎IE11只能处理非前缀域,而不能处理前缀域。不带前缀(www)的域有效,而带前缀(www)的域不起作用。 在服务器端,我正在使用debian / 7 nginx / 1.7.8 openssl / 1.0.1e 可用的密码有: 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:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:-DES:!RC4:!MD5:!PSK:!aECDH:EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

3
nginx:连接到上游时没有活动的上游
在站点页面之间以及在主页上的某些时间之间切换时显示502错误的网关错误,但对于主页上的第一个请求却没有,只有在另一个页面重定向到它时才显示。它发生在一些javascript文件中 在两个上游php1 php2上配置的负载均衡都是apache服务器。 当我检查错误日志时,我喜欢: no live upstreams while connecting to upstream [error] 27212#0: *314 no live upstreams while connecting to upstream, client: ip_address , server: example.com, request: "GET / HTTP/1.1", upstream: "http://example.com", host: "example.com", referrer: "http://example.com/mypages/" 这是负载平衡服务器配置 upstream example.com { # ip_hash; server php01 max_fails=3 fail_timeout=15s; server php02 max_fails=3 fail_timeout=15s; …
15 nginx  gateway  502 

1
什么是Nginx位置〜*和〜
我试图更好地理解nginx并试图形成一个正则表达式,其中每个不匹配的URL都/api/postdataV1被路由到不同的服务器集群。我一直在示例中看到这两件事,没有任何解释 location ~ {some regex} location ~* (some regex} 我的第一个问题是这些是什么~和~*(我认为~只是意味着我指定一个正则表达式?),但怎么样~*呢? 我想我想要的是这个。这是正确的吗? location ~ ^/api/postdataV1$ { #matches to this route to where I want } location / { #This will be everything except /api/postdataV1 I think } 这是正确的吗?但是~*...那我呢 谢谢,院长
15 nginx 

1
nginx上传进度与正常请求结合
我有一个不错的nginx虚拟主机,可以在不使用nginx上传模块的情况下很好地工作。 当我将上传进度添加到此上传请求中时。我该如何解决?我需要使用/?r=upload或上传我的文件,/upload?foo=bar并使用/progress或其他方式跟踪上传进度数据。 # static9-localhost.sweb server { # upload limit # upload_limit_rate 10240; # request size limitation client_max_body_size 500m; client_body_buffer_size 64k; # document root root /path/to/webapp/static/public/; # index file index index.php; # server name server_name static9-localhost.sweb; # rewrite rules rewrite "^/thumbnail/([A-Za-z0-9]{12})/(.*)/.*$" /index.php?r=thb&unique=$1&prm=$2 last; # / location @frontcontroller { # expires expires …
15 nginx 

2
重新启动后,PHP-FPM无法自动启动
我正在运行PHP-FPM和Nginx,出于某种原因,有时我必须重新启动服务器。服务器再次运行后,nginx服务将自动启动,但是PHP-FPM不会启动。sudo /etc/init.d/php-fpm restart重新启动后立即运行命令并获得结果,可以看到此信息: $ sudo /etc/init.d/php-fpm restart Stopping php-fpm: [FAILED] Starting php-fpm: [ OK ] 这是预期的行为吗?使PHP-FPM自动启动的最佳方法是什么?哪里有配置选项,还是必须将命令添加到Linux启动脚本之一? 谢谢。

1
从外部源维护Nginx中的重定向
我处于这种情况下,是要给我们的营销部门一个机会,以自己维护他们的重定向。到目前为止,他们将信息传递给了IT部门,我们在中为他们维护了这些信息nginx.conf。 其中一些人对IIS甚至Apache中的重定向非常熟悉,但是没有选择让他们直接访问nginx配置。 我知道,我没有.htaccess可以访问的文件支持nginx ,并且我也不想授予对nginx包含的conf文件的写访问权限。我希望我们的行销能在数小时内打破我们的nginx设定... 如果没有让他们接触我们的负载均衡器的核心,是否存在安全的可能性?
15 nginx  rewrite 

3
确定Web服务器每秒的实际请求量
我要设置nginx堆栈并在上线之前优化配置。运行ab来对机器进行压力测试,我很失望地看到事情以每秒150个请求的速度达到顶峰,并且大量请求花费了大于1秒的时间才能返回。奇怪的是,机器本身甚至没有呼吸困难。 我终于想到要ping通此框,并看到ping时间约为100-125毫秒。(令我惊讶的是,这台机器遍布全国)。因此,似乎网络延迟正在主导我的测试。在与服务器位于同一网络上的机器上运行相同的测试(ping时间<1ms),我看到每秒有5000个请求,这与我对机器的预期更加一致。 但是,这让我开始思考:如何确定和报告Web服务器每秒的“实际”请求量?您总是会看到有关性能的声明,但是是否不应该考虑网络延迟?当然,我可以每秒向服务器旁边的计算机提供5000个请求,但不能为全国的计算机提供服务。如果我的连接速度很慢,它们最终会影响服务器的性能,对吗?还是我在想这一切错了? 如果这是网络工程101的东西,请原谅我。我是一名按行业划分的开发商。 更新:为清楚起见进行了编辑。

3
使用proxytunnel和nginx通过HTTPS进行SSH
我正在尝试使用nginx通过https连接设置ssh。我还没有找到任何可行的示例,因此将不胜感激! ~$ cat .ssh/config Host example.net Hostname example.net ProtocolKeepAlives 30 DynamicForward 8118 ProxyCommand /usr/bin/proxytunnel -p ssh.example.net:443 -d localhost:22 -E -v -H "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)" ~$ ssh user@example.net Local proxy ssh.example.net resolves to 115.xxx.xxx.xxx Connected to ssh.example.net:443 (local proxy) Tunneling to localhost:22 (destination) Communication with local proxy: -> …
15 ssh  nginx  ssl  proxy  http-proxy 

2
Nginx proxy_read_timeout与proxy_connect_timeout
我已经开始将Nginx用作一组提供某种服务的服务器的反向代理。 该服务有时可能很慢(它在Java上运行,并且JVM有时会陷入“完全垃圾收集”,可能需要几秒钟的时间),因此我将其设置proxy_connect_timeout为2秒,这将使Nginx有足够的时间来确定知道该服务停留在GC上并且不会及时响应,因此应将请求传递给其他服务器。 proxy_read_timeout如果服务本身花费太多时间来计算响应,我还设置了防止反向代理卡住的方法-再次,它应将请求移至另一台服务器,该服务器应有足够的空闲时间以返回及时的响应。 我已经运行了一些基准测试,并且可以清楚地看到proxy_connect_timeout,由于服务被卡住并且不接受传入连接(该服务使用Jetty作为嵌入式),一些请求恰好在连接超时指定的时间返回,因此工作正常servlet容器)。这proxy_read_timeout也有效,因为我可以看到在此处指定的超时后返回的请求。 问题是proxy_read_timeout + proxy_connect_timeout,如果服务被卡住,并且当Nginx尝试访问它时,但在Nginx可以超时之前-它被释放,我本来希望看到一些请求在超时后或差不多该时间长度内超时。并开始处理,但速度太慢,由于读取超时,Nginx将中止。我认为该服务有这种情况,但是在运行多个基准测试后,总共发出了数百万个请求-我看不到单个请求返回的任何值都超过上述值proxy_read_timeout(这是较大的超时)。 我很乐意对此问题发表任何评论,尽管我认为这可能是由于Nginx中的错误(我尚未查看代码,所以这只是一个假设),连接后超时计数器不会重置如果Nginx没有从上游服务器读取任何内容,则表示成功。
15 nginx  proxy  timeout 

2
最大化Nginx请求/秒的提示?
我正在构建一个分析程序包,并且项目要求指出我每天需要支持10亿次匹配。是的,“十亿”。换句话说,每秒持续命中不少于12,000次,最好有一定的爆发空间。我知道我将需要多个服务器,但是我试图在“向其添加更多硬件”之前从每个节点中获得最大性能。 现在,我已经完成了点击跟踪部分,并对其进行了优化。我几乎只是将请求直接保存到Redis中(供以后使用Hadoop处理)。该应用程序是Python / Django,带有用于网关的粗话。 我的2GB Ubuntu 10.04 Rackspace服务器(不是生产机器)每秒可以处理约1200个静态文件(使用Apache AB标记为一个静态资产)。相比之下,如果我将静态文件链接替换为跟踪链接,则每秒仍会收到约600个请求-我认为这意味着我的跟踪器已经过优化,因为它仅比提供相同的静态资产慢2倍反复。 但是,当我以数以百万计的点击数作为基准时,我注意到一些事情- 没有磁盘使用-这是预料之中的,因为我已经关闭了所有Nginx日志,并且我的自定义代码除了将请求详细信息保存到Redis之外不执行任何操作。 非恒定内存使用率-大概是由于Redis的内存管理,我的内存使用率将逐渐上升然后回落,但是这从来都不是我的瓶颈。 系统负载徘徊在2-4左右,即使在我最重的基准测试期间,系统仍然可以响应,并且我的(其他)服务器每执行600个请求时,我仍然可以手动查看http://mysite.com/tracking/pixel,几乎看不到延迟。第二。 如果我进行了一次简短的测试,比如说50,000次点击(大约200万次),那么我每秒就会收到600个稳定可靠的请求。如果我运行更长的测试(到目前为止尝试了3.5m),我的r / s会降低到250。 我的问题- 一种。看起来我要用尽这台服务器了吗?1200个/ s静态文件的nginx性能是否可与其他人媲美? b。是否有针对此类高容量应用程序的常见Nginx调整?我将工作线程设置为64,将gunicorn工作线程设置为8,但是调整这些值似乎对我没有多大帮助或伤害。 C。是否有任何Linux级别的设置可能会限制我的传入连接? d。在长时间运行的测试中,什么会导致我的性能下降到250r / s?同样,在这些测试过程中内存没有达到极限,并且HDD的使用为零。 在此先感谢,所有:) 编辑 这是我的nginx配置-http: //pastie.org/1450749-它主要是香草,有明显的脂肪被修剪掉。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.