Articles of nginx

WordPress不调整图像与Nginx的+ PHP的FMP和其他问题

最近,我为Ubuntu LoCo团队的WordPress博客设置了一个带有512MB / 1ghz CPU,Nginx + php-fpm + Varnish + APC + Percona的MySQL服务器+ CloudFlare Pro的Ubuntu 12.04 VPS。 博客每天点击3〜4k左右,使用大约180MB和8〜20%的CPU。 一切似乎都快速工作…页面加载非常好,比我们的竞争对手快16倍…但是有一个问题。 当我们上传一个图片时,WordPress不会调整它的大小,所以我们可以在图片中插入完整的图片。 如果imagem有,比方说,30kb,它调整罚款…但如果图像有100kb +,它不会… 在nginx错误日志中我看到这个: upstream timed out (110: Connection timed out) while reading response header from upstream, client: 150.162.216.64, server: www.ubuntubrsc.com, request: "POST /wp-admin/async-upload.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "www.ubuntubrsc.com", referrer: "http://www.ubuntubrsc.com/wp-admin/media-upload.php?post_id=2668&" 这似乎与这个问题有关,但我不知道。 当超时发生的时候,当我试图查看post的时候,我开始明白: upstream timed out […]

Nginx反向代理不通过根(/)

我已经将Nginx设置为在Web服务器上的Apache的反向代理。 Nginx正在监听0.0.0.0:80并传递到127.0.0.1:81 这一切似乎工作正常,除了当我第一次加载网站的根级别(即http://example.com/)nginx没有通过到Apache,而是显示“欢迎来到Nginx! 页。 如果我CTRL + F5它将通过传递给Apache,也传递给Apache,如果我加载网站上的任何其他页面.. 我的虚拟主机设置如下: server { listen 0.0.0.0:80; server_name domain.com.au; access_log /var/log/nginx/default.access.log; location / { proxy_pass http://127.0.0.1:81/; include /etc/nginx/proxy_params; } } 我的proxy_params设置如下: proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 任何帮助这个非常感谢!

Nginx作为反向代理服务HTTPS

我有一些Django和ruby的应用程序,我有一个主机作为反向代理redirect到奴隶机器持有这些应用程序。 在这些应用程序上安装中间件,以便他们能够提供https服务。 每台机器都运行自己的ngnix。 我是否也在这些单独的ngnix上configurationhttps,或者只是在主代理机器上进行更改? 谢谢。

如果外部AB结果是200 rps和内部AB处理3k rps,我只能处理200(受出站速度限制)或3k?

我一直试图blitz.io我的网站,AB等,试图了解有多less并发用户可以使用我的网站。 在我自己的盒子里: 并发500,10000每秒3k点击次数。 传输速率:130,339千字节/秒。 从我的箱子外面: 并发500,10000点击我得到大约每秒150-200个请求。 传输速率:5,543千字节/秒。 Blitz.io 使用blitz.io,当并发开始移动超过200时,我以每秒200个请求的速度进行限制。 所以越来越多的并发请求,我的应用程序仍然返回每秒200响应。 这是否意味着networking吞吐量正在限制我的RPS到外部客户端? 因为我的印象是,我的服务器能够响应每秒3000次点击,如果客户端能够下载足够快(如localhost)。 我曾经玩过nginx的工作人员数量和连接数,但是我的上网电话是200 RPS。 我能做些什么来为更多这些网页提供服务? 我怎么知道networking瓶颈是在我的服务器还是在调用者? 由于我在这里缺乏经验,我不知道是否有从我的服务器出站的networking带宽瓶颈,除非我做了另外3个负载均衡的nginx服务器。 假设因为内部可以达到100mb / s,外部命中(1000个用户)需要100mb / s,那么服务器就能够将它输出到世界各地吗?

使用nginx和Drupal,如何为存在的静态文件和目录提供404错误?

我使用git部署了一个Drupal网站(好吧,开发人员部署它,我试图避免麻烦),因此网站在文档根目录.git有一个目录.git和一个文件.gitignore 。 目前对文件的权限足以导致nginx返回一个403 Forbidden错误,如果这些文件在Web浏览器中被访问。 但是,我想nginx完全否认这个文件和目录的存在,如果有人试图在浏览器中访问它们,则返回404。 但是等等,还有更多! 我真正想要发生的事情是浏览器接收由Drupal生成的404错误页面。 在Drupal的admin/settings/error-reporting页面中,我看到404错误正在发送到http://www.example.com/ 404error ,这是一个Drupal节点,其中包含一个更有趣的404页面。 我的nginxconfiguration中已经包含了一个将请求传递给Drupal的@drupal块。 所以我想将请求传递给Drupal,但是我不希望Drupal尝试为现有的静态文件提供服务,而是仅仅为404页面服务。 location @drupal { rewrite ^/(.+)$ /index.php?q=$1 last; } 不幸的是,Google在这里并没有太大的帮助。 大多数人似乎有相反的问题。 如何让.git目录或.gitignore文件中的任何内容发送到Drupal的404页面?

Nginx +独angular兽

我正在从nginx +乘客迁移到nginx +独angular兽,我已经达到了一点,我有点卡住了。 当我试图查看我的testing服务器时,除了404页面,我什么都没有。 我确定我的虚拟主机configuration有一些东西,但是我只是没有看到问题所在。 任何帮助,这是非常感谢。 这是我的vhost文件的当前版本 upstream unicorn-staging { server unix:/data/appname/staging/current/tmp/sockets/unicorn-staging.sock fail_timeout=0; } server { listen 80 deferred; listen 443; ssl on; root /data/appname/staging/current/public; server_name foo; access_log /data/appname/staging/current/log/unicorn-staging-access.log; error_log /data/appname/staging/current/log/unicorn-staging-error.log; client_max_body_size 4G; ssl_certificate /data/appname/staging/shared/certs/appname.crt; ssl_certificate_key /data/appname/staging/shared/certs/appname.key; location / { proxy_pass http://unicorn-staging; proxy_redirect off; 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_set_header X-Forwarded-Proto […]

Nginx重写 – 什么时候使用中断标志(模式目标中断)?

nginx wiki指出: 中断 – 完成当前重写指令的处理,非重写处理仅在当前位置块内继续。 这是说: 如果重写模式匹配,则处理重写(重写为目标),但不处理位置块中的任何其他规则,并处理位置块中的所有其他(caching,代理等)指令? 我正在谈论的rest标志按照: PATTERN目标标志 不是“rest” 指示。 更新: 我正在考虑使用这个场景如下,一个简单的位置有多个重写: location /path/ { rewrite ^/user_request_one$ /target_one; rewrite ^/user_request_two$ /target_two; … other directives … } 也许我不完全理解nginx如何处理重写,但在上面,如果target_one匹配,nginx仍然会testing重写规则target_two? 将一个break标志添加到target_one指示nginx停止parsing任何进一步的重写规则? 我所要求的主要原因是因为我们有一些重写规则的位置块,我不确定天气nginx正在testing重写模式“进一步下降”,即使一个匹配“靠近顶部”。 这些重写是非常独特的,所以如果被打中,nginx绝对没有理由在同一个位置块中testing任何其他的。 我们只是想确保我们不浪费任何宝贵的CPU周期,因为这是一个相当负载的服务器。 希望这可以帮助。 谢谢。

haproxy + nginx:httpsredirect到http后面的斜杠

我有一个设置,HTTP(S)stream量从HAProxy到nginx。 HAProxy nginx HTTP —–> :80 —-> :9080 HTTPS —-> :443 —-> :9443 我遇到了从https到http的尾随斜杠导致的隐式redirect问题,如下所示: $ curl -k -I https://www.example.com/subdir HTTP/1.1 301 Moved Permanently Server: nginx/1.2.4 Date: Thu, 04 Oct 2012 12:52:39 GMT Content-Type: text/html Content-Length: 184 Location: http://www.example.com/subdir/ 显然,HAProxy是作为SSL解包程序工作的,而nginx只能看到http请求。 我已经尝试在HAProxyconfiguration上设置X-Forwarded-Proto来https,但是它什么都不做。 我的nginx设置如下: server { listen 127.0.0.1:9443; server_name www.example.com; port_in_redirect off; root /var/www/example; index index.html index.htm; } […]

Nginx代理服务器通行证适用于https,但不适用于http

我想将HTTPstream量和HTTPSstream量redirect到后端Flask应用程序,我在我的nginx.conf中有下面的代码片段,它适用于https,但不适用于http 服务器{ 听80; 听443 ssl; ssl_certificate /usr/local/nginx/server.crt; ssl_certificate_key /usr/local/nginx/server.key; 位置 / { proxy_redirectclosures; proxy_cacheclosures; proxy_pass http://127.0.0.1:5000; proxy_set_header主机$ http_host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; } } 有没有人有任何指针? 有没有在configuration文件片段中明显的东西,或者我安装Nginx的错误? 谢谢!

nginx 1.2.3安装,但仍然在1.1.19

我已经通过添加一个新的ppa安装了nginx 1.2.3 sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get install nginx 但是, nginx -v仍然给我1.1.19。 发生了什么? 产量 The following packages will be upgraded: nginx 1 upgraded, 0 newly installed, 0 to remove and 46 not upgraded. Need to get 61.8 kB of archives. After this operation, 3,072 B of additional disk space will be used. […]