Articles of nginx

上游解决中断configuration

我在Ubuntu 16.04上安装了最新的NGINX: $ sudo nginx -v nginx version: nginx/1.11.8 我在/etc/nginx/sites-available/greendot.conf定义了以下/etc/nginx/sites-available/greendot.conf : # local dnsmasq resolver 127.0.0.1; map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream websocket { zone elixr 64k; server greendot-elixr-1:4000 resolve; server greendot-elixr-2:4000 resolve; } server { listen 4000; location / { proxy_pass http://websocket; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; […]

寻找一个服务器/代理,可以根据客户的IPdynamic地将请求路由到后端服务器

当请求到达代理/服务器时,根据请求者的IP,请求将被路由到特定的后端。 代理需要从中央键值存储获取目标后端IP,这是系统的一个要求。 我已经testing了nginx,但是proxy_pass需要是静态的,并且找不到实现这个目标的方法。 谢谢。

Docker,Nginx和PHP7:错误111连接被拒绝,同时连接到上游

我运行了一个NGINX-PHP7-COMPOSER映像,效果很好,但是在使用Slim Framework的时候,我不得不改变Nginx的默认configuration,使URL重写。 现在它在日志中显示这个错误: 2017-01-21 14:38:34,357信息成功:php-fpm7进入RUNNING状态,进程保持1秒以上(startsecs) 2017-01-21 14:38:34,359信息成功:nginx进入RUNNING状态,进程保持1秒以上(startsecs) 2017/01/21 14:38:37 [错误] 15#15:* 1连接()失败(111:连接被拒绝),当连接到上游时,客户端:172.18.0.1,服务器:auth-api,请求:“GET / hello HTTP / 1.1“,上行:”fastcgi://172.18.0.6:9000“,主机:”localhost:9100“ “GET / hello HTTP / 1.1”502 537“ – ”“Mozilla / 5.0(Macintosh; Intel Mac OS X 10_12_2)AppleWebKit / 537.36( KHTML,像Gecko)Chrome / 55.0.2883.95 Safari / 537.36“ 我装载的configuration文件被加载(我用nginx -T检查了bash): server { listen 80; server_name auth-api; index index.php; root /var/www/html; location / […]

nginx – 301redirect/子文件夹1 /一些友好的url-12345到/子文件夹2 /一些友好的url

我是nginx上的新手。 我有一些旧的url,比如/ aaaaa / some-friendly-url-12345 ,我想301将这些urlredirect到新的url,但没有ID,比如/ bbbbb / some-friendly-url 。 我也想redirect/ aaaaa / to / bbbbb / 我尝试了一些位置指令,但我无法成功。 这是我试过的一个: location ~ /aaaaa/(?P<a_slug>.*)$-(?P<a_id>.*) { return 301 https://domain.com/bbbbb/$a_slug; } 谢谢。

将NGINXconfiguration为基于用户负载均衡的邮件代理服务器

我目前正在寻找一个邮件服务器代理的选项,它将根据被authentication的用户select一个上游服务器 。 我没有看到在NGINX指南中提到的configuration邮件代理服务器的东西 ,但无论如何,这可以通过NGINX来完成吗? 如果没有,是否有一些其他的代理解决scheme,可以做到这一点? 我看到,NGNIX允许select负载均衡服务器的几种方法 ,但我没有看到任何将允许服务器被authentication的用户select。 (这里的链接是用于HTTP负载平衡的,但我猜测SMTPstream量也允许相同的规则。) 如果NGNIX不可行,HAproxy可以吗?

“ssl_protocols”指令在这里是不允许的 – 如何使条件

我有一些服务器在nginx使用我的configuration文件,但是我需要能够添加一个if或一个variables来改变 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 至 ssl_protocols TLSv1; 这可能吗? 我已经尝试了一个if语句,但得到 "ssl_protocols" directive is not allowed here

Nginx重写/购物/任何东西/购物

我们在我们的网站上使用了一个embedded式的电子商务商店,它通过将所需的JS脚本添加到/shop页面来工作。 在服务器端,现在的要求是,计划/shop/anything所有URL /shop/anything被重写到/shop为服务器/shop ,因为该部分的其余部分是由embedded式JS商店处理的。 我不能写这个, rewrite or internal redirection cycle while processing "/shop正在进行rewrite or internal redirection cycle while processing "/shop我认为这只是对正则expression式的处理,但我似乎无能为力。 我的设置如下: server { listen 8002 default_server; listen [::]:8002 default_server; location / { root /home/mysite; rewrite ^/shop/.+$ /shop; index index.php; fastcgi_split_path_info ^(.+\.php)(/.+)$; try_files $uri $uri/ /index.php?$query_string; set $path_info $fastcgi_path_info; fastcgi_param PATH_INFO $path_info; fastcgi_index index.php; include fastcgi_params; […]

用于多实例configuration的域/子域和服务器证书

我在AWS Elastic Beanstalk上构build应用程序(这是一个负载平衡器,其中有一组实例在他身后工作)。 我想为我的弹性beanstalk添加子域并使用SSL。 我可以在负载平衡器上设置HTTPS。 但是,我也需要将其设置在他后面的实例上。 是否有可能将我的子域绑定到负载均衡器,并在他身后的实例上使用服务器证书? 我的理由是,我必须通过nginxvalidation我的实例上的客户端证书。 但是为了validation客户端证书,我还需要在服务器证书中使用SSL。 负载均衡器背后的实例是否有可能使用相同的服务器证书,而这些实例不在任何子域下 – 也不在服务器证书中注册的子域下面?

Nginx不更新最大年龄

如果我向configuration为caching上游的Nginx代理服务器发出请求,我会得到以下响应头文件: {'content-length': '13200000', 'x-cache-status': 'MISS', 'server': 'nginx/1.9.9', 'connection': 'keep-alive', 'cache-control': 'max-age=45', 'date': 'Fri, 27 Jan 2017 10:57:55 GMT'} 几秒钟后,我再次做同样的请求,我得到以下标题: {'content-length': '13200000', 'x-cache-status': 'HIT', 'server': 'nginx/1.9.9', 'connection': 'keep-alive', 'cache-control': 'max-age=45', 'date': 'Fri, 27 Jan 2017 10:58:18 GMT'} 上游服务器指定max-age头为45秒,第二个响应头是否有更新的max-age头? 这是最大年龄= 45-(请求之间的时间)? 编辑 重现行为的示例configuration: http { include mime.types; default_type application/octet-stream; upstream backend { server localhost:8080; } proxy_cache_path /etc/nginx/wwwroot/cache […]

在第4层使用SSL终止的WSS负载平衡

应该可以在第4层负载均衡器上终止SSL的SSL(安全websockets)吗? 在我看来,wss(和ws)通常会需要TCP路由,因为HTTP反向代理将无法理解数据包; 而且,由于会话确实维持在第4层以上,因此SSL终止将需要第7层路由。我对第一个声明有些自信,而对第二个声明则更不感兴趣。 奖金的问题。 一般情况下,如果可以在单个负载均衡器中实现wss路由和sslterminal,那么可以专门用HAProxy来完成吗? Nginx的? 其他?