Questions tagged «nginx»

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

1
Nginx日志中的SSL错误
我在nginx错误日志中得到此日志条目: 2016/03/19 09:46:33 [crit] 14355#14355: *7761 SSL_shutdown() failed (SSL: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init) while SSL handshaking, client: 178.63.105.85, server: 0.0.0.0:443 我不明白这是什么意思。我曾尝试过Google,但没有成功。

1
Chrome在下载MP4视频(〜34MB)时发出太多请求(〜22000)
我们在我们的网站上托管了一些视频文件(mp4)。 在谷歌浏览器中,所有文件的加载速度都太慢,在FF中一切正常。 我测试了下载大小为34MB的文件(我通过直接链接打开了文件)。结果是: Chrome发出了约22000(!)请求,传输了982MB。 Firefox仅发出了5个请求。 作为服务器,我们使用默认设置(与提供视频文件有关)的nginx。 在这里,交互(前五个请求)使Chrome和服务器之间相互交流。只有Range,Content-Length,Content-Range标题包括在内。 (<-Chrome发送的标头,<-服务器发送的标头): > Initial request for file, usual GET < Content-Length:35690389 < Content-Type:video/mp4 Then a bunch of similar requests, on which the server responded with 206 status code: --- > Range:bytes=0- < Content-Length:35690389 < Content-Range:bytes 0-35690388/35690389 --- > Range:bytes=29100305- < Content-Length:6590084 < Content-Range:bytes 29100305-35690388/35690389 …

3
NGINX非常低效地提供大型mp4文件
我目前在Centos 6.6操作系统上运行nginx / 1.0.15。服务器具有以下规格: 英特尔(R)凌动(TM)CPU C2750 @ 2.40GHz(8核) 32GB内存 5 x 6000 GB 7200 RPM(Raid 10) 问题 该服务器具有1Gbit / s的连接,但是在400-500 mbit / s之后它会达到顶峰并出现瓶颈。服务在大约100个连接处开始下降..并且服务器的速度急剧下降(尽管仍有50%的带宽可用) NGINX服务器严格用于提供静态.mp4文件。每个文件通常为400-1200MB(平均700MB) 我尝试了许多配置,几乎所有配置都给了我相同的结果..我非常沮丧。 服务器负载也永远不会超过0.3。 我的配置中是否有任何公然错误或误导的内容?可能有帮助。 配置 /etc/nginx/nginx.conf user nginx; worker_processes 9; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 51200; use epoll; } worker_rlimit_nofile 600000; http { include /etc/nginx/mime.types; …


2
在SSL终止负载平衡器(haproxy)后面时,nginx try_files使用错误的方案进行重定向
我有一个nginx 1.6.2服务器,作为后端执行SSL终止的负载平衡器。与后端服务器的所有通信均通过HTTP。 发生的情况的图表: /--http---> frontend:80 --\ client --+ +--http---> backend:8000 \--https--> frontend:443 --/ LOAD BALANCER BACKENDS 出于测试目的,目前我只有一个后端。负载平衡器运行HAProxy 1.5,我可以控制它。 我在后端nginx配置中的块中有一个非常典型的try_files指令server: server { server_name frontend; ... try_files $uri $uri/ =404; ... } 现在,默认情况下,当我访问不带斜杠的目录时,例如https://frontend/somedir,nginx希望发送HTTP 301重定向到绝对URL,例如http://frontend:8000/somedir/。 我可以使用来使nginx省略8000端口号port_in_redirect off。 但是,我似乎无法http://在nginx生成的重定向开始时更正该方案。我能使Nginx最好做的是从重定向https://frontend/somedir到http://frontend/somedir/有效地剥离SSL! 负载平衡器正在发送X-Forwarded-Proto标头,但是在设计其重定向时,nginx找不到任何方式来查询它;实际上,有一个2012年的回答说nginx不能完全做到这一点,解决方案是用nginx替换负载平衡器。恕我直言,这太琐碎了,以至于不能保证如此大的堆叠变化。 自2012年以来,这里有什么变化吗?我并不是真的想在HAProxy级别上重写这些重定向:从Web应用程序到HTTP重定向的实际故意HTTPS可能会获得“ re-HTTPSed”,如果我只是总是重写Location:响应头的方案以使其与方案相同提出要求。 编辑: 这是一个最小化的配置,显示nginx生成绝对Location:URL。请注意,没有重写。 user nobody nobody; worker_processes auto; worker_rlimit_nofile 4096; error_log /var/log/nginx/error.log warn; …
8 nginx  haproxy 

1
禁用组后如何启用某些SSL密码?
我想在我的nginx SSL环境中启用S​​SL密码EDH-DSS-DES-CBC3-SHA(也称为TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA),以在Windows XP上支持IE8。 Nginx的基本SSL密码是: 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:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK EDH-DSS-DES-CBC3-SHA已通过禁用!DES。我试图将该密码放在禁用规则的前面(在DHE-RSA-AES256-SHA和之间!aNULL)和之后(作为最后一个参数),但是都没有用。 如何在EDH-DSS-DES-CBC3-SHA不启用全部密码的情况下启用密码DES或手动禁用其他DES密码? 版本信息:nginx 1.7.8,OpenSSL 1.0.1e
8 nginx  openssl  ssl 

2
在Nginx配置中使用尾部斜杠
location /product { proxy_pass http://10.0.0.25:8080; } 如果我使用产品文件夹的第一个位置描述,则应该使用http://mysdomain.com/product/,但不能http://mysdomain.com/product在浏览器中使用 。我的意思是我应该使用url的斜杠结尾。我想以两个状态访问产品文件夹。 之间有什么区别: location /product/ { proxy_pass http://10.0.0.25:8080; }
8 nginx  proxy 

2
Nginx + php-fpm-每个php-fpm在运行时处理70-100%cpu
我遇到以下情况: 我们使用8核,8gb ram,2.6 GHz频率的linode-使用nginx + php-fpm-我们获得了非常高的cpu使用情况图(我们不想成为如此糟糕的VPS邻居)... 我们一次在网站上的用户数少于100,因此这种情况也令人难以置信,这是因为我们的CPU使用率很高。 我们使用的是一个非常未知的,可能是cpu密集的php方式的,可疑的,可怕的框架,而不是众所周知的,文档完善,精心设计的其他框架,如wordpress或drupal,其中有很多关于缓存的文档(以及插件)处理缓存)在nginx + php_fpm平台上的php。 因此,我们有大约6个开放的php-fpm进程,它们在运行时分别消耗大量(30+,通常接近99%)的cpu-我丝毫不知道如何阻止他们使用太多的cpu 。我不知道是哪个PHP脚本导致了这些峰值,因为它们一直在发生……通常只有1或2个正在运行-但是当所有6个脚本运行时,我们会最大化所有8个cpus。 我的pool.d / www.conf文件具有以下设置: pm = dynamic pm.max_children = 10 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 6 我们进行此^设置是因为,按照我的解释方式,我们的内存实际上是惊人的(htop显示使用了472/7000 + mb,没有交换等),并且我们可以处理更多的进程并中断等待获得的行已处理-但不幸的是,由于每个进程在运行时对我们的cpu来说过于繁琐-我们最终将CPU驱动通过屋顶-因此我们无法处理足够的进程。 问题 -我们到底该怎么做才能减少进程php-fpm cpu的使用,以便我们可以增加该pool conf文件中php-fpm的设置 -而且是的,/ var / log / php5- fpm.log大喊大叫我们要增加孩子并调整/增加最小/最大/启动服务器。但是,这样做会使我们的平均负载达到疯狂,如前所述。我们如何在不必使用缓存的情况下做到这一点或我们有哪些选择? 我的点子?我已经阅读了有关使用cpulimit的信息,以确保没有任何进程花费超过分配的cpu数量-但这会使速度变慢以致无法使用吗?或者这样做,我们可以提高运行多个流程的能力-我还认为可以运行两个池-一个池用于我们的前向网站(客户体验),另一个用于后端(这在一定时间影响我们的前向站点) -正在运行消耗性报告)。 我已经花了几天的时间在这个主题上进行研究,搜索等等,但是这很困难,因为每个人的情况对于他们的系统来说都是如此独特-问题在于这样一个特定的,闻所未闻的,可能写得不好的框架-很难找到解决方案。我们也不能只废弃此框架-我必须找到某种解决方案。 更新:我已经实现了memcache来存储php会话-因为该框架严重依赖于用户会话,并且我们系统的性质是员工经常一次使用多个选项卡-每个选项卡都返回到会话以确认功能/用户数据等...因此,我希望由此带来的效果有所提高-如果您愿意,欢迎对此发表评论-我将在明天达到更高的高峰时段时看看情况如何。

2
每个位置块的Nginx client_max_body_size(使用php frontcontroller模式)
我正在寻找此问题的解决方案。我理解为什么该问题中的设置无法正常工作的原因,但是我尝试找到一种可以使其正常工作的解决方案。 这个想法是只允许在某些URL上上传大文件。我可以location为此使用一个块,但问题是:我有一个php frontcontroller模式: location ~ \.php { # ... fastcgi_pass unix:/tmp/php5-fpm.sock; } 我的总配置如下: # ... http { # ... client_max_body_size 512K; server { server_name example.com; root /var/www/example.com/public; location / { try_files $uri /index.php?$query_string; } location /admin/upload { client_max_body_size 256M; } location ~ \.php { # ... fastcgi_pass unix:/tmp/php5-fpm.sock; } } …
8 nginx  upload 

1
如何停止Nginx监听端口80?
我希望nginx停止监听端口80。我只发现有bug的人,但没有关于故意这样做的文档。我不能禁用它,我也阅读: #listen 80; ## listen for ipv4; this line is default and implied 英语不是我的母语,但我理解“暗示”意味着不需要声明,因此即使在注释中,服务器仍会收听80。如何禁用此功能?谢谢。
8 nginx  http 

1
为什么Nginx的proxy_intercept_errors指令需要重写才能正常工作?
以下是Nginx服务器配置示例。没有“魔术符”位置块,代理的错误内容将导致Nginx 404页面,而不是提供自定义的错误页面。 删除proxy_intercept_errors指令可为带有正确的http错误代码标头的正确的代理错误页面提供服务。 不管魔术护身符的存在如何,都能正确呈现非代理错误页面。 关于到底发生了什么的任何想法? server { server_name mydomain.com ""; listen 80; root /var/www; error_page 400 401 402 403 404 500 501 502 503 504 /admin/error_page.htm; proxy_intercept_errors on; location /proxy/ { proxy_read_timeout 60s; proxy_set_header Host $host; proxy_pass http://myservers; } location /test404/ { return 404; } location /admin/ { # this …

3
使Nginx服务器响应缓慢
因此,我的网站上有一个垃圾邮件发送者。我可以使用“拒绝”来阻止他的IP,但是他只需要更改他的IP,就必须继续与他玩猫和老鼠。 相反,我很好奇是否有一种方法可以配置nginx使其对IP的响应更加缓慢。 这样一来,他也许会决定该站点无法正常运行,让我一个人呆着。 谢谢
8 nginx 

1
重写Nginx的try_files
我正在尝试将非常简单的重写从以前的nginx版本转换为当前的重写,如下所示: location / { if ( !-f $request_filename ) { rewrite ^/([a-z]*)$ /index.php?action=$1; rewrite ^/([a-z]*)/(.*)$ /index.php?action=$1&item=$2; } } 这就是我所走的路。显示了索引页面,但是应该像上面那样重写的任何页面都抛出404: server { listen 80 default; root /var/www; index index.php; server_name _; location / { try_files $uri $uri/ /index.php?action=$uri&item=$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; } } …
8 nginx 


1
Nginx追加URI中给定的路径
我正在尝试配置phpMyAdmin,所以我已经在Nginx中设置了流动位置,但是它将“ pma”附加到了根目录: 2012/08/14 13:59:49 [error] 10151#0: *2 "/usr/share/phpMyAdmin/pma/index.php" is not found (2: No such file or directory), client: 192.168.1.2, server: domain.com, request: "GET /pma/ HTTP/1.1", host: "192.168.1.24" 配置: location ^~ /pma { root /usr/share/phpMyAdmin; location ~ \.php$ { root /usr/share/phpMyAdmin; fastcgi_pass unix:/var/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param …
8 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.