我有一个负载平衡器服务器(使用nginx) lb1的networking,它在四个web服务器web1 , web2 , web3 , web4之间路由stream量。 这四个networking服务器被路由到在nginx中使用循环。 所有服务器都设置为max_fails = 1 , fail_timeout = 5s ,所以当服务器closures时,如果不在线,应该很快被忽略。 我应该注意到,如果所有四个Web服务器都在线,那么每个Web服务器的网页的平均响应时间大约在50-150ms之间。 只有一个Web服务器处于脱机状态时会出现此问题。 当一个人离线,一个用户尝试加载另一个页面时,响应时间从50ms到25s不等。 是的,25 秒 。 我很困惑,因为我认为循环法和fail_timeout设置会使得离线服务器被忽略。 另外,可能相关的注意事项:所有四个Web服务器都使用php5运行apache,并且四个之间启用了memcached。
PS显示nginx早在服务器启动时就开始了。 比如跑步 ps -e -o pid,user,etime,args 说明: 1136 root 09:50 / usr / sbin / sshd -D 1147根09:50 cron 1162 root 09:50 nginx:主进程/ usr / sbin / nginx -g守护进程; master_process on; … 1248 pgb 09:43 / usr / sbin / pgbouncer -d /var/local/pgbouncer/pgbouncer.ini … 1436 root 09:31 / usr / sbin / apache2 -k start […]
我的configuration有问题,除了我的crowler proxy_pass以外,一切都很好,stream量不会碰到那台服务器。 有没有人知道如何使用两个proxy_pass在同一位置/ {? 这是我的configuration: upstream play_backend { server web01.local:1333; server web02.local:1333; } server { server_name website.com; listen 80; return 301 https://website.com$request_uri; } server { server_name website.com; listen 443; if ($host = website.com) { rewrite ^(.*) https://www.website.com:443$request_uri? permanent; } ssl on; ssl_certificate /xxx/fullchain.pem; ssl_certificate_key /xxx/privkey.pem; #HSTS add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; # ## Block http […]
我有一个IP地址,比如说192.168.1.20,它有一个运行两个HTTP站点作为子域的NGINX服务器,说: site1.domain.com site2.domain.com 如果我在浏览器中访问site1.domain.com或site2.domain.com,我将被导向到正确的网站。 如果我去192.168.1.20,我被引导到site1。 我想NGINX使用头来select适当的位置,当通过浏览器访问 – 但我希望能够通过IP地址到达site2.domain.com。 我是否需要以某种方式为请求添加特定的头文件来执行此操作,或者有其他方法吗?
我们有一系列的服务器设置使用我们新的shiny的API,它将取代我们以古老的语言编写的旧API。 新应用程序是一个使用节点的服务器集群,位于NGINX之后。 这是为旧的API设置的相同types的集群。 还有另一台服务器坐在这两个集群的字体中,使用NGINX将stream量路由到一个或另一个。 目前,新集群的stream量远低于1%,而旧集群的stream量超过99%。 日志表明客户端(坐在NGINX路由器前面的客户端)总是及时接收响应(无论哪个集群处理请求) 日志还表明节点正在及时响应本地的NGINX。 旧的NGINX / API运行良好。 但是,节点集群的LOCAL NGINX正在logging每个请求所花费的时间,以使节点响应…加上额外的5秒钟。 有一点调查certificate,这是由于configuration设置称为lingering_close …它被设置为5秒。 根据文件,持续closures使用“启发式”决定何时保持开放。 http://nginx.org/en/docs/http/ngx_http_core_module.html#lingering_close 这是比较模糊的。 我们知道当响应小于1.1k时,连接只保持5秒。 我知道这很奇怪,但“启发式” 如果我们将lingering_closeclosures…连接closures没有启发式的影响。 这似乎从来没有发生在旧的群集。 有没有人有任何启发式可能保持连接的更清楚的信息,并可能有一些build议如何进行。 我最担心的是,所有的stream量都被转移到了第二个集群,所有这些打开的连接开始引起性能问题。
我已经安装了一个网站的tomcat和另一个(WordPress的)的apache2。 这个问题发生在WordPress的网站。 有反向代理的nginx,这里是: server { listen 80; root /var/www/html/; index index.php index.html index.htm; server_name test.example.com; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8081; } location ~ /\.ht { deny all; } } server { listen 80; server_name conf.example.com; location / […]
我正在尝试使用X-Accel-Redirect标头按照本教程(和许多其他)使用nginx来提供受保护的文件。 物理path: /home/media/file.pdf url: example.com/media/file.pdf nginxconfiguration: location /media/ { internal; alias /home/; } 在Django中,我有一个中间件,它检查用户是否被authentication,如果是的话,使用X-Accel-Redirect for nginx来传递文件: response["X-Accel-Redirect"] = request.path 当我尝试访问文件时,我得到404错误(访问日志中请求的文件path正常)。 在我看来,Nginx不会将请求传递给Django,只是以404错误结束。 任何想法我可能做错了什么? 有没有一个好的方法来debugging呢? 提前致谢。
即使我改变了root指令指向/var/www/html ,nginx也试图从/var/www加载文件作为我的根目录。 我已经重新启动nginx,并在更改default.conf后收到“确定”。 难道我做错了什么? 值得一提的是,这个nginx服务器正在Docker容器中运行。 ================================== /etc/nginx/nginx.conf user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile off; 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 […]
我想简化nginx错误日志,但没有成功。 我正在执行index.php这个: error_log('abc'); 我得到这个错误: 2016/08/22 16:11:57 [error] 5267#0: *4 FastCGI sent in stderr: "PHP message: abc" while reading response header from upstream, client: 192.168.1.12, server: domain.com, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "domain.com", referrer: "http://domain.com/" 一边看着nginx的错误文件: tail -f /var/log/nginx/error.log 我试图编辑/etc/nginx/nginx.conf +添加 log_format vhosts 'test'; 在http {section中,但是错误信息仍然是一样的。 我想在error.log文件中只获取“abc”。 谢谢
我在Ubuntu 14.04上安装了最新的nginx版本。 我主持了几个网站,无论是有和没有SSL。 我的问题是,每次尝试在非SSL主机上设置新网站时,当我尝试访问该主机时,nginx都会redirect到同一主机的SSL版本(即使SSL没有服务器块对于特定的主机),并从同一台服务器上的随机Web应用程序呈现内容,同样触发SSL证书不匹配。 任何想法可能是错的? 下面是我尝试设置的非SSL主机的nginx conf: server { listen 80; listen [::]:80; server_name some.domain.eu; root /usr/share/nginx/some.domain.eu/html; index index.php index.html index.htm; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # pass the PHP scripts to FastCGI server listening on the php-fpm socket location ~ \.php$ { try_files […]