Questions tagged «nginx»

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

3
有没有一种方法可以为nginx记录每个请求的唯一ID?
似乎有几个第三方模块 https://github.com/newobj/nginx-x-rid-header https://github.com/hhru/nginx_requestid 但是,如果可能的话,我不想重建nginx,我相信这是同时使用这两个模块的要求。我最初的尝试是使用$msecwith,$pid但是没有成功(我有一个进程在同一毫秒内处理两个请求)。我已读过有关内容$connection,似乎可以与结合使用$msec。如果不使用第三方模块,这种方法还是有更好的方法?
12 ubuntu  nginx 

1
nginx请求行太大
我收到错误消息: Bad Request Request Line is too large (6060 > 4094) 当我像这样访问服务器上的特定网址时: /api/categorize?packages=package1,package2,...packageN 在nginx.conf上,我有: large_client_header_buffers 8 16k; client_header_buffer_size 8k; 我找不到关于该特定问题的文档,large_client_header_buffers的文档提到了400错误的请求,但是将“ large_client_header_buffers”从4 8k更改了;或8 8k; 或8 16; 没有解决问题。
12 nginx  http  web  400 

2
一些Nginx反向代理配置每天停止工作一次
我有一个Nginx反向代理,可以代理从外部亚马逊ELB到内部ELB的请求。 我有6个处理请求的后端实例。启用了站点的配置如下所示,但是端口号和proxy_pass不同。其他所有内容都相同: server { listen 3000; location / { proxy_pass http://internal-prod732r8-PrivateE-1GJ070M0745TT-348518554.eu-west-1.elb.amazonaws.com:3000; include /etc/nginx/proxy.conf; } } 大约每隔24小时,其中一种配置就会停止工作。所有其他代理都可以正常工作。如果我重新启动nginx,所有配置将再次起作用。error.log中没有任何内容,访问日志,syslog或dmesg中也没有任何异常。 这是已知的吗?我的代理配置有问题吗?我还可以查看其他日志吗?

2
Nginx:数千个server_name
如何配置Nginx限制成千上万个不同的server_name而不创建数千个外部配置文件或编写很长的server_name行? 确实,我希望Nginx仅作为server1.com,server2.com等的反向代理... 对我来说最好的解决方案是拥有一个包含我受限制的server_names的单个外部配置文件:server1.com,server2.com等。 可能吗 ? 好的,谢谢您的回答,它无需注册即可工作。表达式。正如kolbijack解释的那样,只是一个很大的server_name列表。谢谢。
12 nginx 

1
如何调整Nginx keepalive_timeout?
我正在将nginx和php-fpm一起用于服务器繁忙的基于mysql的站点。目前,我正在使用keepalive_timeout = 5,但是对于如何最佳调整它,我尚无明确的想法。因此,感谢您的提示。
12 nginx  keepalive 

5
最快的Web服务器,用于提供静态内容
我正在优化我们的系统以实现更快的静态内容交付,并且想知道是否有人对使用最快的Web服务器有适当的经验。 在我考虑过的三个主要候选人中,Nginx,切诺基和Lighttpd似乎都有各自的问题-但我在线阅读的报告有些偏颇,并且倾向于用户当前使用的服务器。 关于在哪里可以看到针对此特定目的的适当基准的任何想法,或者至少是无偏颇的利弊清单?我应该有什么样的个人经历和陷阱? 谢谢 编辑:Serverfault.com给出的答案为nginx。我仍然想听听一些有关此领域的开发人员的想法。

2
当无法到达上游时,使nginx忽略站点配置
我的nginx中有多个站点配置,当我重新启动计算机时,如果无法访问其中一个站点的上游,则nginx将根本无法启动,并且那些正常的站点也将无法启动,如何让Nginx会忽略那些无效的网站吗? http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # …
12 nginx 


2
如何配置位置块以始终在nginx中返回单个文件?
在我的应用程序中,我希望位置“ /”返回静态index.html文件,我希望“ / static”从文件夹提供静态文件,并且我希望所有其他请求返回404 NOT FOUND。稍后,我将所有其他请求重定向到WSGI服务器。 目前这是我的配置: # Dev server. server { listen 1337; charset UTF-8; location / { rewrite ^ static/index_debug.html break; } location /static { alias /home/tomas/projects/streamcore/static; } } 静态文件夹运行正常,但是“ /”返回404 NOT FOUND。我也尝试过: alias /home/tomas/projects/streamcore/static/index_debug.html; 在位置块中,但是返回500 INTERNAL SERVER ERROR。似乎alias不喜欢单个文件。另外,我尝试了: try_files static/index_debug.html; 但这阻止了服务器从错误“ try_files指令中的参数数目无效”开始。显然,try_files实际上要求您尝试多个文件,这不是我要查找的行为。 所以我的问题是:如何配置位置块以始终返回静态文件? 编辑:我从其他答案中alias确实应该接受一个文件作为参数,所以我尝试了: location = / …

3
在Nginx中何时使用或不使用sendfile开关?
我们已经在nginx.conf相当长的一段时间内拥有此设置。 sendfile on; 当我们更新了文件/js/main.js并从浏览器https://test.com/js/main.js?newrandomtimestamp访问时,除非我们从浏览器进行完全刷新(清除缓存),否则它仍将加载旧版本。 但是,当我们从sendfile更改设置时;发送文件;浏览器将加载正确版本的更新文件。 对于我们的生产Web服务器,是否应该在sendfile上使用;或sendfile关闭;?如果sendfile开启;是必需的(可能是因为更好的缓存吗?性能更快?)然后如何解决上述问题? 以下是nginx.conf我们生产服务器中的,我们正在使用1.7.5版: user nginx; worker_processes 2; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; } http { include /etc/nginx/mime.types; default_type application/octet-stream; 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; client_max_body_size 8m; …
12 nginx  cache 

4
Nginx 400错误归因于随机IP地址中以“ \ x”开头的随机编码字符串
我以为这些是某种类型的机器人,但想知道他们想对我的服务器做什么。 问题中的日志在下面,并且IP地址已从原始更改。 12.34.56.78 - - [18/Oct/2012:16:48:20 +0100] "\x86L\xED\x0C\xB0\x01|\x80Z\xBF\x7F\xBE\xBE" 400 172 "-" "-" 12.34.56.78 - - [18/Oct/2012:16:50:28 +0100] "\x84K\x1D#Z\x99\xA0\xFA0\xDC\xC8_\xF3\xAB1\xE2\x86%4xZ\x04\xA3)\xBCN\x92r*\xAAN\x5CF\x94S\xE3\xAF\x96r]j\xAA\xC1Y_\xAE\xF0p\xE5\xBAQiz\x14\x9F\x92\x0C\xCC\x8Ed\x17N\x08\x05" 400 172 "-" "-" 12.34.56.78 - - [18/Oct/2012:16:58:32 +0100] "g\x82-\x9A\xB8\xF0\xFA\xF4\xAD8\xBA\x8FP\xAD\x0B0\xD3\xB2\xD2\x1D\xFF=\xAB\xDEC\xD5\xCB\x0B*Z^\x187\x9C\xB6\xA6V\xB8-D_\xFE" 400 172 "-" "-" 12.34.56.78 - - [18/Oct/2012:17:06:59 +0100] "\xA61[\xB5\x02*\xCA\xB6\xC6\xDB\x92#o.\xF4Kj'H\xFD>\x0E\x15\x0E\x90\xDF\xD0R>'\xB8A\xAF\xA3\x13\xB3c\xACI\xA0\xAA\xA7\x9C\xCE\xA3\x92\x85\xDA\xAD1\x08\x07\xFC\xBB\x0B\x95\xA8Z\xCA\xA1\xE0\x88\xAEP" 400 172 "-" "-" 12.34.56.78 - - [18/Oct/2012:17:13:53 +0100] "b\xC4\xA24Z\xA2\x95\xEFc\xAF\xF1\x93\xE8\x81\xFD\xB4\xDEo\x92\xC0v\x1Fe\xD8W\x85\xC7O\x9D\x8C\x89<" 400 172 …
12 nginx  logging  hacking 

5
如何安装Nginx并安装配置文件
我刚刚使用以下命令从服务器(Ubuntu 11.04)完全卸载了nginx 1.0.6 apt-get remove nginx rm -rf /etc/nginx/ rm -rf /usr/sbin/nginx rm /usr/share/man/man1/nginx.1.gz apt-get remove nginx* 现在,我想再次安装它,但是在启动nginx时,出现如下错误: 重新启动nginx:nginx:[emerg] open()“ /etc/nginx/nginx.conf”失败(2:无此类文件或目录) 然后我放置了自己的conf文件,然后收到一个新错误: 重新启动nginx:nginx:[emerg] open()“ /etc/nginx/mime.types”在/etc/nginx/nginx.conf:12中失败(2:没有这样的文件或目录) 现在看来,apt-get install nginx它并没有完全安装,我清除了apt-get缓存,似乎没有帮助。如何使用apt-get 完整安装nginx?
12 ubuntu  nginx  apt 

1
Nginx重复[::]:80错误的侦听选项
当我运行命令以测试我的配置时,出现一条错误消息,指出存在多个重复项[::]:80。在此之前,我有一个重复的多个默认服务器的问题。 当我遇到多个默认服务器的问题时,我的文件如下所示 server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; server_name munki; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location /report { try_files $uri $uri/ =404; } location ~ \.php$ { try_files $uri =404; …
12 ubuntu  nginx 

1
空白页example.com/phpmyadmin,浏览器控制台中出现错误
我已经安装了phpmyadmin并将其符号链接到我的LEMP服务器上(php 7)。但是当我转到主机名/ phpmyadmin时,它将返回一个空白页面,在标题栏上带有phpmyadmin图标。 浏览器控制台中的3个错误: 无法加载资源:net :: ERR_INCOMPLETE_CHUNKED_ENCODING 未捕获的ReferenceError:未定义$ 未捕获的ReferenceError:未定义PMA_commonParams 我尝试了许多解决方案,但无法找到问题所在:( 服务器配置: server { # listen 80 ; # listen [::]:80 default_server; # SSL configuration # listen 443 ssl default_server; listen [::]:443 ssl default_server; # # Note: You should disable gzip for SSL traffic. # See: https://bugs.debian.org/773332 # # Read up …

2
如果后端关闭,nginx使用代理缓存
如果后端服务器关闭,我需要nginx代理使用缓存: 这是我的配置。但似乎是nginx使用不带检查后端服务器的缓存。 http { # ... proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_cache_path /tmp/nginx levels=1:2 keys_zone=tmpzone:10m inactive=60m; proxy_cache_key "$scheme$request_method$host$request_uri"; server { server_name _; location / { proxy_connect_timeout 5s; proxy_read_timeout 5s; proxy_cache tmpzone; proxy_cache_valid 200 304 1d; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; proxy_set_header X-Real-IP …
11 nginx  proxy  cache  failover 

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.