Questions tagged «nginx»

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

1
nginx:连接到上游时,connect()失败(111:连接被拒绝)
我一直在错误日志中看到以下错误消息,我可以访问所有资源,但是不确定为什么要标记错误。 错误: [错误] 13368#0:* 449连接到上游时,connect()失败(111:连接被拒绝),客户端:xxxx,服务器:myserver.com,请求:“ GET / stories / mine HTTP / 1.1”,上游:“ http:// [:: 1]:5000 / stories / mine “,主持人:” myserver.com“ 我的Nginx配置 我将连接传递给node.js在端口5000上运行的群集。看不到我会错过的东西吗? upstream api { server localhost:5000; } server { listen 80; server_name myserver.com; root /home/user/_api; # Logging error_log /home/user/log/api.error.log notice; location / { proxy_redirect off; proxy_set_header X-Real-IP …
16 nginx  node.js 

3
当AWS EC2主机名更改或增加时,如何自动更新Nginx上游服务器列表?
我想在AWS中设置自动缩放。我不想使用Elastic Load Balancer。 Amazon的自动缩放功能可在需求高峰期间无缝创建EC2实例,以保持性能,并在需求停顿期间自动减少EC2实例,以最大程度地降低成本。 由于此EC2实例是自动创建的,因此NGINX不知道其主机名。 我知道并且已经在nginx到10个EC2实例中进行了上游设置。 当自动缩放添加/更新/删除EC2实例时,我希望能够将服务器名称自动添加/更新/删除到我的上游nginx配置中。

3
在Nginx中使用SAML身份验证
我想使用现有的SAML 2.0 IdP来限制对某些使用nginx服务的静态内容的访问。(在Apache中,可以使用诸如mod_mellon或的模块来完成此操作mod_auth_saml) 对Nginx上的静态内容使用SAML身份验证的最佳方法是什么?如果仍然使用X-Accel标头,是否有帮助脚本可以通过SAML身份验证进行代理,或者我是否需要从头开始?

2
使用Nginx重写的“隐藏” .html文件扩展名
我正在通过nginx提供一个静态站点,我的目标是替换看起来像这样的URL: http://foo.com/bar.html 与 http://foo.com/bar 关键是没有斜杠。我目前正在使用位置别名进行类似的操作,但这很繁琐,因为它需要每个文件都包含一个位置块,而且由于nginx将别名视为目录,因此它还会附加一个斜杠: location / { root /srv/www/foo/public_html; index index.html; } location /bar1 { alias /srv/www/foo/public_html/; index bar1.html; } location /bar2 { alias /srv/www/foo/public_html/; index bar2.html; } 等等。我已经阅读了有关重写的文档,但似乎无法将所说的内容与我需要执行的操作进行综合。我不是来自Apache的背景。nginx是我第一次涉足Web服务器,因此我确信我缺少明显的东西,因为我的HTTP背景很薄弱。在此先感谢您提供的任何帮助。
16 nginx  rewrite 

4
如何通过UNIX套接字配置Nginx proxy_pass Node.js HTTP服务器?
我正在尝试配置Nginx服务器以通过UNIX域套接字连接到Node.js HTTP服务器。 Nginx配置文件: server { listen 80; location / { proxy_pass http://unix:/tmp/app.socket:/; } } (根据http://wiki.nginx.org/HttpProxyModule#proxy_pass) Node.js脚本: var http = require('http'); http.createServer(function(req, res) { console.log('received request'); req.end('received request\n'); }).listen('/tmp/app.socket'); 现在,当我尝试致电 curl http://localhost/ 我在curl中只得到502 Bad Gateway错误页面,而在Node.js进程上什么也没有。 难道我做错了什么? 编辑: 在尝试了Quanta的解决方案之后,该错误必定与Nginx配置有关,因为Node.js进程正确建立了与套接字的连接。 我还尝试通过这种方式配置Nginx: upstream myapp { server unix:/tmp/app.socket; } server { listen 80; location / …


2
nginx用参数重写URL
我有一个这种类型的URL: http://www.example.com/?param1=val1&param2=&param3=val3&param4=val4&param5=val5 我想将其重定向到这一点: http://www.example.com/newparam/val3/val4 所以我尝试了这个重写规则,但没有成功: rewrite "/?param1=val1&param2=&param3=(.+)&param4=(.+)&param5=(.+)" http://www.example.com/newparam/$1/$2 redirect; Nginx是否无法处理查询参数? 编辑:我不想重写所有请愿书。我只需要重写该URL,而不会影响其他URL。

8
如何将php5 + MySQL扩展到200请求/秒以上?
我正在调整主页的性能,目前在3.14.by上它处理大约200个请求/秒,它吃掉6条SQL查询,在3.14.by/forum上它是phpBB论坛,每秒处理20个请求/秒。 奇怪的是,某些VPS和专用Atom 330服务器上的数字几乎相同。 服务器软件如下:Apache2 + mod_php prefork 4个子代(在此处尝试使用不同的数字),php5,APC,nginx,用于PHP会话存储的内存缓存。 MySQL配置为占用大约30%的可用内存(VPS上约为150Mb,专用服务器上约为700Mb) 看起来某个地方存在瓶颈,不允许我进一步发展,有什么建议吗?(即,我知道执行少于6个SQL会使它更快,但这似乎不是一个限制因素,因为由于缓存的查询,sqld的吃率最高不会超过百分之几) 有没有人测试过踢前叉apache2并只留下nginx + php快得多? 更多基准 Small 40-byte static file: 1484 r/s via nginx+apache2, 2452 if we talk to apache2 directly. Small "Hello world" php script: 458 r/s via ngin+apache2. 更新: 瓶颈似乎是MySQL对缓存数据的性能。具有单个SQL的页面显示354req / sec,其中有6个SQL-180 req / sec。您认为我可以在这里进行哪些调整?(我可以为MySQL分出100-200Mb) [client] port = 3306 socket …


5
防止其他应用程序绑定到端口80和443
上周,我接到一个害怕的客户打来的电话,因为他认为他的网站被黑了。当我查找他的网站时,我看到了apache2默认页面。那天晚上,我的服务器(Ubuntu 16.04 LTS)已升级并重新启动。通常,当出现问题时,我会在一夜之间收到警报。这次不是,因为监视系统检查HTTP状态代码200,并且apache2默认页面带有状态代码200。 发生的事情是,在启动期间apache2,绑定到端口80和443的速度比实际的Web服务器nginx快。我自己没有安装apache2。通过aptitude why apache2我发现php7.0包需要它。 简单地删除apache2将不起作用,因为显然php7.0需要它。是否可能以某种方式创建限制,以便仅允许nginx绑定到端口80和443? 其他解决方案也非常受欢迎。

1
覆盖Nginx access_log指令-重复的日志条目
我在Ubuntu 14.04服务器上使用默认的nginx软件包。它/etc/nginx/nginx.conf用作主要配置,然后包括/etc/nginx/conf.d/*.conf和中的配置/etc/nginx/sites-enabled/*。 默认的nginx配置具有此指令,用于记录访问日志 access_log /var/log/nginx/access.log; 我想添加X-Forwarded-For标头,所以我在conf.d文件夹内执行此操作: log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; 我的问题是,然后我在access.log文件中得到了两条记录-一个包含标题信息,另一个没有标题。 我知道我可以覆盖nginx.conf文件本身,但是如果可能的话,我宁愿避免它。我也想继续使用相同的日志文件(access.log)。 有没有一种方法可以告诉Nginx覆盖先前的指令,并且只需更改日志格式而不修改主nginx.conf文件?

5
使用Nginx镜像流量
我需要复制/镜像来自服务器/资源的流量。 我的意思是,我有服务器A和B以及N(nginx)作为Web服务器。 来自N /资源的所有流量->重定向到A和B 可能吗?
16 nginx  traffic 



9
使用单个端口通过Nginx处理HTTP和https请求
我想知道nginx是否能够在同一端口上处理http和https请求。[*] 这就是我想要做的。我正在运行用于处理http请求的Web服务器(lighttpd),以及一个通过https服务文档树的特定部分的C程序。这两个进程在同一服务器上运行。 在防火墙级别,我只能有一个端口将流量转发到该服务器。因此,我想在此服务器上设置nginx,以便它在单个端口上侦听请求,然后: A)重定向所有http://myhost.com/ *请求,以便它们转到localhost:8080(lighttpd正在侦听) B)如果用户请求以例如https:// myhost.com/app开头的URL,则会将该请求发送到localhost:8008(C程序)。请注意,在这种情况下,必须对远程浏览器和nginx之间的通信进行加密。 您认为这可能吗?如果是,该怎么办? 我知道如何使用两个不同的端口来执行此操作。我面临的挑战是仅使用一个端口来完成此操作(不幸的是,我无法控制此特定环境上的防火墙配置,因此这是我无法避免的限制)。使用诸如通过ssh进行反向端口转发来绕过防火墙的技术也不起作用,因为这仅适用于仅具有Web浏览器和Internet链接的远程用户。 如果这超出了nginx的功能,您是否知道其他任何可以满足此要求的产品?(到目前为止,我在使用lighttpd和pound进行设置方面一直没有成功)。我也希望避免使用Apache(尽管如果它是唯一的选择,我愿意使用它)。 预先感谢Alex [*]要清楚一点,我说的是通过同一端口处理加密和未加密的HTTP连接。加密是通过SSL还是TLS无关紧要。
16 nginx  http  https  lighttpd 

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.