我们有一种情况,一个网站开始服务502坏的网关,但似乎没有恢复上游服务器反弹后。 nginx服务器被设置为针对两个上游服务器的代理/负载均衡请求。 看起来数据库服务器将开始获得高负载平均值,导致Web服务器(上游服务器)缓慢地提供内容并超时(根据nginx服务器)。 然后Nginx会服务502,这是有道理的。 奇怪的是,似乎nginx在Web服务器反弹时没有启动,我们必须重新启动nginx才能重新启动服务器。 有没有解决这个问题的好方法? 我正在通过代理设置来查看是否有设置,但没有太多的运气find任何东西。 看看nginx的日志,我们看到的条目就像(只是在这个时间框架中提取三个错误的例子): 2013/06/12 13:53:40 [error] 29840#0: *258391 upstream timed out (110: Connection timed out) while reading response header from upstream, client: nnnn, server: www.example.org, request: "GET / HTTP/1.1", upstream: "http://nnnn:80/", host: "www.example.org" 2013/06/12 13:54:11 [error] 29840#0: *261105 no live upstreams while connecting to upstream, client: nnnn, server: www.example.org, request: […]
我正在运行一个web应用程序,使用websockets,并有nginx作为反向代理,并且工作正常。 我也已经能够让SSL在没有套接字的情况下工作。 现在我们已经接近正式发布了,并且也需要SSL。 任何想法如何做到这一点? 这是我的nginxconfiguration文件: server { listen 443 ssl; ssl on; ssl_certificate /etc/nginx/server.crt; ssl_certificate_key /etc/nginx/server.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; listen 80; server_name sub.domain.com; location / { proxy_pass http://localhost:8866; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 43200000; } location /static/ { autoindex on; alias /home/xyz/.jenkins/jobs/app/workspace/main/static/; } } 编辑:作为@dhl_p在注释中指出,这个configuration是不安全的, 你不应该使用它。 […]
我运行一个视网膜图像插件与W3cachingCDN支持。 W3caching将图像移动到S3,但由于URL的不同,JS文件将不会从那里服务器的文件(它从htp://mysite.com到htp://assets.mysite.com) 我发现一个post,说这只是把这个添加到你的.htaccess # ———————————————————————- # CORS-enabled images (@crossorigin) # ———————————————————————- # Send CORS headers if browsers request them; enabled by default for images. # developer.mozilla.org/en/CORS_Enabled_Image # blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html # hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/ # wiki.mozilla.org/Security/Reviews/crossoriginAttribute <IfModule mod_setenvif.c> <IfModule mod_headers.c> # mod_headers, yu no match by Content-Type?! <FilesMatch "\.(gif|png|jpe?g|svg|svgz|ico|webp)$"> SetEnvIf Origin ":" IS_CORS Header set Access-Control-Allow-Origin "*" env=IS_CORS </FilesMatch> […]
我想caching所有*.html文件在一个Nginx反向代理,所以我添加了configuration: # Original configuration location = / { proxy_pass http://192.168.12.12:91; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # Added for cache location ~ \.html { proxy_pass http://192.168.12.12:91; 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 cache_one; proxy_cache_key $host$uri$is_args$args; proxy_cache_valid 200 301 302 1m; proxy_cache_valid any 1m; expires 1m; } 重复两次proxy_pass和proxy_set_header感觉不好 […]
我已经启用Nginx的客户端统计和Nginx的sockets统计,门槛插件也安装图,他们工作正常。 我想知道一旦用户无法访问nginx,我怎么能得到警报? 怎样才能得到nginx的响应时间图。 非常感谢。
我有一个Ubuntu 12.04 LTS VPS服务器,用Nginx提供静态网站。 我想build立一个可以从子文件夹“foo”访问的rails应用程序。 我使用Passenger来服务rails应用程序 这就是我configurationNginx的方法: worker_processes 1; events { worker_connections 1024; } http { passenger_root /home/akarki/.rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5; passenger_ruby /home/akarki/.rvm/wrappers/ruby-1.9.3-p429/ruby; server_names_hash_bucket_size 64; include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; gzip on; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; gzip_types text/plain application/xml text/css text/js text/xml application/x-javascript text/javascript application/json application/xml+rss; charset UTF-8; error_log /opt/nginx/logs/file.log warn; server { listen 80; server_name […]
我有Rails应用程序运行在独angular兽+ nginx上。 下面是nginx.conf和unicorn.rbconfiguration。 nginx.conf upstream unicorn { server unix:/tmp/unicorn.todo.sock fail_timeout=0; } server{ listen 80 default deferred; #server_name localhost; root /var/www/demo/public; try_files $uri/index.html $uri @unicorn; location @unicorn { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://unicorn; } error_page 500 502 503 504 /500.html; client_max_body_size 4G; keepalive_timeout 10; } unicorn.rb working_directory "/var/www/demo" pid "/var/www/demo/tmp/pids/unicorn.pid" stderr_path […]
我试图让下面的configuration在Nginx中工作,基本上重置是另一个Web应用程序,是更大的应用程序的一部分,重置较大的应用程序的数据库。 目前,无论何时我尝试访问domain.com/reset/,它都以domain.com/的path,然后传递到服务器,它需要/ reset /的响应。 tldr; http://domain.com/reset/正在触发第三个位置块,而不是第一个。 location /reset/ { proxy_pass http://127.0.0.1:9091; proxy_read_timeout 3600; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /reset/media { alias /home/jsoft/reset/srv/static/; expires 1y; } location / { proxy_pass http://127.0.0.1:8000; proxy_read_timeout 300; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
这主要与$ arg_NAME和$ cookie_NAMEvariables有关。 我找不到有关nginx中variables语法的大量文档。 variables名包含哪些字符,并且有什么要求来转义它们? 例如,我将如何获得cookie group[key] ? $cookie_group[key]似乎不适合我,大概是因为[]被认为是特殊字符?
我有一台运行3核心和7GB内存的机器。 在这台机器上我们正在运行Nginx 1.4.2和PHP-FPM。 每个PHP-FPM进程使用〜30MB的RAM。 所以这是我设置的池configuration: [www] listen = 127.0.0.1:9000 listen.allowed_clients = 127.0.0.1 user = nginx group = nginx pm = dynamic pm.max_children = 200 ; 200 x 30MB = 6000MB (leaving ~1.5GB for random stuff on the server) pm.start_servers = 20 ; 20 + (35 – 20) / 2 (rounded to the nearest 5) pm.min_spare_servers […]