Articles of fastcgi

nginx中使用的fastcgi_index是什么?

在很多网站上都可以find这个nginx的location块: location ~ \.php$ { fastcgi_pass 127.0.0.1:9000 fastcgi_index index.php … } 鉴于fastcgi_index的官方文档 ,它似乎是当请求以/结尾时使用的。 但是,它与上面的location块的正则expression式不匹配? 我错过了关于fastcgi_index指令的东西吗?

几个例子(fastcgi / uwsgi / scgi / proxy_pass)在同一个nginx虚拟主机中的Mojolicious应用?

我有一些基于Mojolicious的应用程序,它们使用mod_cgi和mod_fastcgi快速运行在Apache2下。 例如: http://example.org/oneapp/path/info?foo=bar http://example.org/oneapp?foo=bar http://example.org/secondapp/path/info?foo=bar http://example.org/thirdapp/path/info?baz=heh #etc… 我相对成功地将应用程序configuration为使用proxy_pass的子域名,但是我想保留旧的URL(只需从apache2切换到nginx)。 我想保持相同的URL,但使用nginx运行应用程序。 我的configuration应该是什么样的,我该如何运行应用程序。 提前致谢!

nginx + FastCGI的Django的应用程序—运行两个Web服务器或一个?

我即将在nginx Web服务器上部署一个Django应用程序,并且要确保我正确地构build了系统。 如果你在apache服务器上部署Django,似乎是普遍的看法,那么你仍然应该在应用程序前面放置一个nginx服务器来提供静态文件,而nginx的性能更高。 如果不是用于Django代码的apache,我想使用nginx + FastCGI来承载Django应用程序,是否有任何理由configuration第二个nginx安装,以便坐在服务于dynamic内容的nginx服务器之前,处理静态内容以及redirect到dynamic内容? 具体来说,将有静态和dynamic内容的不同configuration参数,这将使我想保持服务器分开,或者我可以托pipe它在一个单一的nginx安装,其中一些url被映射到Django的内容,和其余映射到从相同的nginx安装服务的静态内容? 谢谢你的build议!

如何获得nginx错误日志中的perl脚本错误(带有FCGIwrap的Nginx)

我只是安装了fcgiwrap和spawn-fcgi以便能够在nginx中使用perl脚本。 我在我的网站configuration中添加了这样的内容: location ~ \.pl$ { gzip off; fastcgi_pass unix:/var/run/fcgiwrap.socket; include fastcgi_params; fastcgi_index index.pl; } 它可以工作,但是如果perl代码中有错误,浏览器会显示以下消息: An error occurred while reading CGI reply (no response received) 而我无法在nginx日志中findperl错误。 命令行上的“perl -c”有助于解决perl编译错误,但它不能帮助我解决运行时错误。 我怎么能告诉perl或fcgiwrap在nginx错误日志或其他一些日志文件中保存错误?

Nginx + FastCGI + PHP(php-fpm)不logging捕获的错误/警告

FastCGI不想正确loggingPHP错误。 那么,这不完全是真的:它logging错误罚款,有点摆弄; 它不会logging任何其他内容,例如警告。 臭名昭着的FastCGI – > Nginx日志错误不是一个问题,一定是。 来自php-fpm的错误和警告直接转到Nginx – 但只有当它们没有被捕获的时候。 也就是说,如果set_error_handler成功地拦截了一个错误,那么不会附加日志条目。 这意味着我可以看到parsing错误,但这是关于它。 php-fpm不会自己loggingPHP错误(与nginx分开),而没有任何破解。 php-fpm的实例configuration文件默认包含这两行: php_admin_value[error_log] = /mnt/log/php-fpm/default.log php_admin_flag[log_errors] = on 我显然改变了error_log的path。 我不得不添加下面的行来让它实际上logging任何东西: php_admin_value[error_reporting] = E_ALL & ~E_DEPRECATED & ~E_STRICT 版本说明:E_STRICT部分是不必要的,因为我使用PHP 5.3.27,但是我打算在某个时候升级到5.4。 使用这一行,它会将错误(只有错误)logging到/mnt/log/php-fpm/default.log 。 现在,这将error_reporting设置为我在php.ini中设置的相同的值,所以在这里显然是错误的。 另外,它不logging捕获的错误:行为与nginx日志的行为相同。 我尝试使用数值(22527),而不是仍然没有运气。 我不在乎哪个日志文件的结果(nginx与php-fpm),但我确实需要捕获的错误logging在某处。 我可以诉诸注入我自己的错误和exception处理程序,但这有点hackish,所以我宁愿避免这一点。

如何在Nginx中使用fastcgi_next_upstream

我希望有1个Web服务器(nginx)和2个FastCGI实例作为后端应用程序。 这个想法是,如果第一个请求closures,请求转发到第二个请求。 显然,我需要使用上游和fastcgi_next_upstream。 但是我找不到一个nginx.conf文件的工作示例。 有人有这样的例子吗?

如何运行nginx + python(不含django)

我想在Python中可以处理不同请求(POST,GET,MULTIPART-FORMDATA)的简单程序。 我不想使用一个完整的框架。 我基本上需要能够获得GET和POST PARAMS – 可能(但不一定)以类似于PHP的方式。 获得像REQUEST_URI,QUERY等其他SERVERvariables 我已经成功安装了nginx,但我没有find一个很好的例子,如何做其余的。 所以一个简单的教程或任何方向和想法如何设置nginx运行某些虚拟主机的某些python过程将是最受欢迎的!

Drupal + Nginx + Php-cgi:502错误的网关错误

我们使用php-fastcgi在Nginx上运行Drupal 5.x。 事情工作很好一段时间。 突然之间,我们(用户)正在运行502错误网关错误。 重新启动PHP的CGI,Nginx的..重新启动机器等没有帮助。 有没有其他人遇到这种types的问题? 什么是可能的嫌疑人?

如何使用Perl FCGI杀死?

我对nginx和Perl FCGI模块有点问题。 我在FCGI程序中有一个很长的操作,它可能比我用来沟通FCGI的Unix套接字的另一端的服务器(或者服务器上的用户)长。 如果FCGI请求closures,我需要在程序中的FCGI accept()循环中断。 我尝试安装INT,TERM等信号处理程序,但是它们什么都不做,因为nginx和我的程序之间唯一的通信发生在FCGI套接字AFAIK上。 我也试过这个,但是我没有办法看到使用Perl中的FCGI模块来通过FCGI套接字向nginx发送或从nginx发送原始数据。 有没有办法,我可以做到这一点,而不修改FCGI模块有一个“平”的function? 基本的问题是我的程序不知道nginx是否终止了FCGI请求。 例: #!/usr/bin/perl -w use strict; use FCGI; my $fcgi_socket = FCGI::OpenSocket( '/tmp/test.socket', 100000 ); my $request = FCGI::Request(\*STDIN, \*STDOUT, \*STDERR, \%ENV, $fcgi_socket); REQUEST: while($request->Accept() >= 0) { #begin handling request my $result = ''; while (1) { #or select(), etc if (somehow check whether the fcgi […]

Nginx 502坏的网关。 通过增加缓冲区来解决。 为什么?

我正在设置一个LEMP栈来运行Drupal。 我安装了Nginx和PHP-FastCGI。 Nginx的工作正常,但任何尝试运行PHP给了我错误“502错误的网关”。 一个快速的谷歌透露: nginx 502坏的网关 ,并增加缓冲区大小解决了这个问题。 fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; 问题是为什么? 我的理解 从前面的链接看来,nginx似乎向PHP-FastCGI发送请求,并且没有响应。 这些请求是什么让它超时? 有没有足够的时间来回应,因为PHP是复杂的(它不是,这是phpinfo(); )。 现在我已经增加了缓冲区,何时应该担心再次增加缓冲区?