Questions tagged «nginx»

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

4
Nginx-根还是别名,用于提供单个文件?
经过多个小时的nginx服务robots.txt(例如:提示:每次清除浏览器缓存),我结束了两种不同的方式,一种使用别名指令,另一种使用root指令,如下所示: location /robots.txt { alias /home/www/static/robots.txt; } location /robots.txt { root /home/www/static/; } 两者之间有功能上的区别吗?还是安全问题?与其他指令有冲突吗?(在另一个/ static位置,两者看起来都不错)。还是有任何理由选择另一个? 注-我没有使用这两个在同一时间 :)而我想每一个,一次一个,两者的工作。我不是在问他们如何在同一个文件中一起交互,而是要使用哪个更好。
66 nginx 

4
Nginx:如何将http请求转发到另一个端口?
我想做的是 当有人访问http://localhost/route/abc服务器时,响应与http://localhost:9000/abc 现在,我像这样配置Nginx: location /route { proxy_pass http://127.0.0.1:9000; } http请求已9000正确分派端口,但收到的路径http://localhost:9000/route/abc不是http://localhost:9000/abc。 有什么建议吗?
64 nginx 

2
当我有uWSGI时为什么需要nginx
我想部署Django应用程序时,有很多教程介绍如何配置nginx与uWGSI合作。 但是,为什么我需要此套件中的nginx?uWSGI本身可以服务WSGI Python应用程序,它可以服务静态文件,也可以服务SSL。nginx可以做哪些uWSGI无法做的事情?
62 nginx  django  uwsgi 

1
嵌套位置nginx
我在理解nginx中的嵌套位置时遇到了麻烦。我在两个位置有一些共同的配置指令,因此,与其重复这些指令,不如使用正则表达式重复URI: location ~ /a|/b { location /a { } location /b { } } 但是,这给出了错误 nginx: [emerg] location "/a" is outside location "/a|/b" in /etc/nginx/nginx.conf:36 如果没有或,|这似乎还可以。 location ~ /a { location /a { } } 我究竟做错了什么?有没有更好的方法可以执行此操作而无需重复任何操作?我可以用其他方式对位置进行分组吗?
60 nginx 

2
上游响应被缓冲到一个临时文件
我有一个相当大的和缓慢的(复杂的数据,复杂的前端)的Web应用程序建立RoR并担任Puma与nginx作为反向代理。查看nginx错误日志,我看到很多条目,例如: 2014/04/08 09:46:08 [warn] 20058#0: *819237 an upstream response is buffered to a temporary file /var/lib/nginx/proxy/8/47/0000038478 while reading upstream, client: 5.144.169.242, server: engagement-console.foo.it, request: "GET /elements/pending?customer_id=2&page=2 HTTP/1.0", upstream: "http://unix:///home/deployer/apps/conversationflow/shared/sockets/puma.sock:/elements/pending?customer_id=2&page=2", host: "ec.reputationmonitor.it", referrer: "http://ec.foo.it/elements/pending?customer_id=2&page=3" 我很好奇,因为对于不同的用户和不同的用户交互,页面不太可能保持相同,并且我认为在磁盘上缓冲响应不是必要/有用的。 我知道proxy_max_temp_file_size并将其设置为0,但在我看来有点尴尬(我的代理尝试缓冲,但没有文件可缓冲到……如何更快?)。 我的问题是: 如何删除[警告]并避免缓冲响应?关闭proxy_buffering还是将其设置proxy_max_temp_file_size为0 更好?为什么? 如果nginx缓冲响应:何时缓冲响应,向谁提供?为什么? 为什么默认情况下nginx打开proxy_buffering它,然后如果它实际上缓冲了响应,然后[警告]您呢? 响应何时触发该选项?服务响应需要几秒钟(几秒钟?)?这是可配置的吗? TIA,ngw。

3
nginx real_ip_header和X-Forwarded-For似乎错了
HTTP标头的维基百科描述X-Forwarded-For为: X-Forwarded-For:client1,proxy1,proxy2,... 该指令的Nginx文档real_ip_header部分读取: 该伪指令设置用于传输替换IP地址的标头名称。 如果是X-Forwarded-For,则此模块使用X-Forwarded-For标头中的最后一个 ip进行替换。[强调我的] 这两种描述似乎相互矛盾。在我们的方案中,X-Forwarded-For标头与描述的完全相同-客户端的“真实” IP地址是最左侧的条目。同样,nginx的行为是使用最正确的值-显然,这只是我们的代理服务器之一。 我的理解X-Real-IP是应该使用它来确定实际的客户端IP地址- 而不是代理。我是否缺少某些东西,或者这是nginx中的错误? 而且,除此之外,是否有人对如何使X-Real-IP标头显示最左边的值有任何建议,如的定义所示X-Forwarded-For?

7
删除“ www”并使用nginx重定向到“ https”
我想在nginx中创建一个做两件事的规则: 删除“ www”。从请求URI 如果请求URI为“ http”,则重定向到“ https” 有很多示例说明了如何分别执行这些操作,但我想不出一个可以同时正确完成这两个问题的解决方案(即,不会创建重定向循环并正确处理所有情况)。 它需要处理所有这些情况: 1. http://www.example.com/path 2. https://www.example.com/path 3. http://example.com/path 4. https://example.com/path 这些都应该以https://example.com/path(#4)结尾而不循环。有任何想法吗?
57 nginx  ssl  https  rewrite 


3
Nginx中设置了“ client_max_body_size”的“ 413请求实体太大”
我正在上传26Gb文件,但是却得到: 413 Request Entity Too Large 我知道,这与有关client_max_body_size,因此我将此参数设置为30000M。 location /supercap { root /media/ss/synology_office/server_Seq-Cap/; index index.html; proxy_pass http://api/supercap; } location /supercap/pipe { client_max_body_size 30000M; client_body_buffer_size 200000k; proxy_pass http://api/supercap/pipe; client_body_temp_path /media/ss/synology_office/server_Seq-Cap/tmp_nginx; } 但是当整个文件上传完毕后,我仍然收到此错误。
54 nginx 


5
在执行proxy_pass时,如何每次强制nginx解析DNS(动态主机名)?
我正在使用在CentOS上运行的nginx / 0.7.68,配置如下: server { listen 80; server_name ***; index index.html index.htm index.php default.html default.htm default.php; location / { root /***; proxy_pass http://***:8888; index index.html index.htm; } # where *** is my variables 该proxy_pass是到IP经常变化的DNS记录。Nginx缓存过时的IP地址,从而导致对错误IP地址的请求。 过期时,如何停止nginx缓存IP地址?
52 linux  nginx 

4
Nginx将一条路径重定向到另一条路径
我敢肯定这已经被问过了,但是我找不到可行的解决方案。 一个网站已切换了CMS服务,但具有相同的域,如何为单个页面设置nginx重写? 例如 旧页 http://sitedomain.co.uk/content/unique-page-name 新的一页 http://sitedomain.co.uk/new-name/unique-page-name 请注意,我不希望内容页面中的所有内容都被重定向,而实际上只是上面提到的url。我大约要设置9个重定向,但每个重定向都不适合某个模式。 谢谢! 编辑:我发现此解决方案似乎可行,除了它重定向时没有斜杠: if ( $request_filename ~ content/unique-page-name/ ) { rewrite ^ http://sitedomain.co.uk/new-name/unique-page-name/? permanent; } 但这重定向到: http://sitedomain.co.uknew-name/unique-page-name/
51 nginx  rewrite 

3
Nginx + PHP-FPM的PHP选项'cgi.fix_pathinfo'真的很危险吗?
已经有一个 很大 的 谈论关于相对于一个安全问题cgi.fix_pathinfo与Nginx的(通常是PHP-FPM,快速CGI)使用PHP选项。 结果,默认的nginx配置文件用来表示: # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini 但是,现在,“官方” Nginx Wiki 指出可以在不禁用上述PHP选项的情况下正确处理PATH_INFO。所以呢? 问题 您能清楚地解释cgi.fix_pathinfo做什么吗?(官方文档只是说:“有关PATH_INFO的更多信息,请参见CGI规范”) PHP将如何真正处理这些变量PATH_INFO和SCRIPT_FILENAME变量? 为什么使用Nginx以及如何会有危险?(详细示例) 在这些程序的最新版本中是否仍然存在该问题? Apache容易受到攻击吗? 我试图在每个步骤中了解问题。例如,我不明白为什么使用php-fpm Unix套接字可以避免此问题。

5
订购:1. nginx 2.清漆3. haproxy 4. Web服务器?
我见过人们建议将所有这些都组合在一起,但是它们似乎具有很多重叠的功能,因此我想深入探讨为什么您可能想要在访问实际的Web服务器之前先通过3个不同的程序。 nginx: ssl:是的 压缩:是 快取:是 后端池:是 漆: ssl:否(隧道?) 压缩: 快取:是(主要功能) 后端池:是 haproxy: ssl:否(隧道) 压缩: 快取:否 后端池:是(主要功能) 是否将所有这些链接在您的主要Web服务器之前只是为了获得其一些主要功能优势? 有许多守护进程一起流式传输以做类似的事情似乎很脆弱。 您的部署和订购偏好是什么?为什么?
50 nginx  web  haproxy  varnish 

2
nginx-客户端请求主体被缓冲到一个临时文件
每次尝试上传大文件时,日志文件都会出现以下错误。 a client request body is buffered to a temporary file /var/lib/nginx/body/0000000001 尽管文件上传成功,但我总是收到上述错误。 我增加了client_body_buffer_size,1000m这是我希望上传的最大文件。但是,这只是一个猜测,尽管我不再收到该错误,但我想知道这是否是为client_body_buffer_size?设置的适当值。 如果有人可以阐明该指令及其用法,我将不胜感激。
48 nginx 

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.