我想configuration服务器以显示维护页面。 我试过这个代码,并工作: location / { try_files /maintenance.html $uri $uri/ @codeigniter; } 但是我注意到它会提供一个200的状态代码,这可能会导致search引擎混淆。 我认为最好的做法是返回一个503状态码。 在谷歌我find几个相关的网页,就像这样 。 然而,他们使用如果做redirect,并根据nginx文档使用ifs是不安全的。 有没有办法不使用,如果? 在这种情况下使用安全吗? 谢谢。
我正在尝试configurationnginx,以便对我的节点应用程序进行proxy_pass请求。 StackOverflow的问题得到了许多upvotes: https ://stackoverflow.com/questions/5009324/node-js-nginx-and-now,我使用从那里的configuration。 (但由于问题是关于服务器configuration,它应该是在ServerFault上) 这里是nginxconfiguration: server { listen 80; listen [::]:80; root /var/www/services.stefanow.net/public_html; index index.html index.htm; server_name services.stefanow.net; location / { try_files $uri $uri/ =404; } location /test-express { proxy_pass http://127.0.0.1:3002; } location /test-http { proxy_pass http://127.0.0.1:3003; } } 使用普通节点: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(3003, […]
我对我的nginxconfiguration感到沮丧,所以我在写configuration文件时要求帮助,以便从同一根目录中的子目录提供多个项目。 这不是虚拟主机,因为它们都使用相同的主机值。 也许一个例子会澄清我的尝试: 请求192.168.1.1/应该从/var/www/public/ 请求192.168.1.1/wiki/应该从/var/www/wiki/public/ 请求192.168.1.1/blog/应该从/var/www/blog/public/ 这些项目正在使用PHP并使用fastcgi。 我目前的configuration是非常小的。 server { listen 80 default; server_name localhost; access_log /var/log/nginx/localhost.access.log; root /var/www; index index.php index.html; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; } } 我已经尝试了alias和rewrite各种东西,但无法为fastcgi正确设置事物。 看起来应该比写位置块和复制root , index , SCRIPT_FILENAME等更有说服力的方法。 任何指引,让我朝着正确的方向是值得赞赏的。
我已经开始使用Nginx作为提供某种服务的一组服务器的反向代理。 这个服务有时可能相当慢(它运行在Java上,而且JVM有时会陷入“完全垃圾回收”中,可能需要几秒钟),所以我把proxy_connect_timeout设置为2秒,这将给Nginx足够的时间弄清楚服务停留在GC上,不会及时响应,而且应该将请求传递给另一台服务器。 我还设置了proxy_read_timeout来防止反向代理被阻塞,如果服务本身需要太多时间来计算响应 – 再次,它应该将请求移动到另一个服务器,该服务器应该有足够的空间来返回一个及时的响应。 我已经运行了一些基准,我可以清楚地看到, proxy_connect_timeout正常工作,因为一些请求正好在连接超时指定的时间返回,因为服务被卡住,不接受传入的连接(服务使用Jetty作为embedded式servlet容器)。 proxy_read_timeout也可以工作,因为我可以看到在那里指定的超时之后返回的请求。 问题是我希望在proxy_read_timeout + proxy_connect_timeout之后看到一些超时,或者几乎是这个时间长度,如果服务被卡住,并且不会在Nginx尝试访问它时接受连接,但是在Nginx可以超时之前 -它被释放并开始处理,但速度太慢,Nginx会由于读取超时而中止。 我相信这个服务有这样的情况,但是在运行了几个基准之后,总共有几百万个请求 – 我没有看到一个返回超过proxy_read_timeout (这是更大的超时)的请求。 我会很感激这个问题的任何评论,虽然我认为这可能是由于Nginx的一个错误(我还没有看代码,所以这只是一个假设)超时计数器不会重置后连接是成功的,如果Nginx没有从上游服务器读取任何东西。
我刚刚安装了nginx,我试图设置我的第一个网站。 我试图用php-fpm来使用nginx。 nginx安装(当我去我的IP我得到默认的欢迎页面)。 现在我正试图获得一个简单的脚本运行: <?php phpinfo(); 但我一直打403页禁止页面。 在我的虚拟主机的日志中,我可以看到很多行: 2012/05/18 01:29:45 [error] 4272#0: *1 access forbidden by rule, client: x.170.147.49, server: example.com, request: "GET / HTTP/1.1", host: "example.com" 该文件是/srv/www/test/index.php其中nginx是所有者(我去了包括文件的完整path无效)。 我已经检查了nginx确实在configuration中运行在用户和组nginx/nginx下。 在nginx.conf中,我已经改变了默认configuration包含path,以确保没有其他configuration( include /etc/nginx/sites-enabled/ )。 我正在使用的configuration看起来像(如果您需要其他configuration(php-fpm / nginx.conf),请让我知道): server { listen 80; server_name example.com; root /srv/www/test; access_log /var/log/nginx/example-access.log; error_log /var/log/nginx/example-error.log error; location ~ /. { access_log off; […]
我运行PHP-FPM和Nginx,偶尔出于任何原因,我必须重新启动服务器。 一旦服务器再次运行,nginx服务会自动启动,但是PHP-FPM不会。 当我在sudo /etc/init.d/php-fpm restart后立即运行sudo /etc/init.d/php-fpm restart命令时,可以看到这个结果: $ sudo /etc/init.d/php-fpm restart Stopping php-fpm: [FAILED] Starting php-fpm: [ OK ] 这是预期的行为? 什么是使PHP-FPM自动启动的最佳方式? 在任何地方有configuration选项,还是必须将命令添加到其中一个Linux启动脚本? 谢谢。
如何configurationnginx在限制/速率限制时返回http状态码429(太多请求),而不是默认的503(服务不可用)? 仅供参考,我使用nginx作为HttpLimitReqModule的反向代理。 429状态码的规范草案是RFC6585 。 关于stackexchanged的这个(closures的) 问题表明可以使用error_page指令。 但是,如果确实存在服务器问题(而不是客户打我们太多),并且服务器应返回503服务不可用,我不想返回429。 有什么build议么?
我正在考虑一个新的Web服务器的体系结构。 将Varnish作为Nginx之前的caching作为反向代理,并在apache之前为静态文件提供静态文件是一个好主意? 我要在rails应用程序上运行php和ruby。 会有太多的开销通过PHP请求通过其他两个进程的Apache? 非常感谢!
用nginx的HttpLimitReq模块请求可以被IP限制。 但是,我不明白“nodelay”选项的作用。 如果限制突发延迟内的多余请求不是必需的,则应使用节点布局 limit_req zone=one burst=5 nodelay;
我已经阅读了关于Nginxconfiguration适合SSE的一系列不同的问题,并提出了一些关于使用什么设置的令人困惑的结果: https://stackoverflow.com/questions/17529421/sending-server-sent-events-through-a-socket-in-c https://stackoverflow.com/questions/13672743/eventsource-server-sent-events-through-nginx https://stackoverflow.com/questions/21630509/server-sent-events-connection-timeout-on-node-js-via-nginx 那么正确的答案是什么?