标签: fastcgi

我是否必须将数据库连接/初始化置于FCGI循环之外以利用Perl中的FastCGI?

假设我有一些Perl代码,每当它被命中时,它会增加数据库特定行中的列,并且我希望它经常被命中,所以我想用FCGI对它进行优化.现在,我基本上把大部分代码包装成这样的东西:

while (FCGI::accept() >= 0) {
 [code which currently creates a db connection and makes calls through it]
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否最好将数据库连接(我的$ dbh = DBI-> connect(etc))放在FCGI循环之外,以便脚本保持连接活动,或者我仍然可以获得FCGI速度的优势将资源留在循环中?

mysql perl fastcgi

6
推荐指数
1
解决办法
1071
查看次数

在Dreamhost部署Django

我正在尝试在我的Dreamhost帐户上使用Poll教程(我没有任何部署Django的经验).我在我的主目录下载了我在这里找到的脚本(http://gabrielfalcao.com/2008/12/02/hosting-and-deploying-django-apps-on-dreamhost/)并执行了它.现在我在〜/ .myroot /中有Python 2.5和Django,我的Django项目目录是〜/ projects /

这是〜/ projects /目录的内容(我自己复制了民意调查/和模板/民意调查/目录).

projects/
|-- admin_media -> /home/imran2140/.myroot/usr/lib/python2.5/site-packages/django/contrib/admin/media
|-- dispatch.fcgi
|-- polls
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- admin.py
|   |-- admin.pyc
|   |-- models.py
|   |-- models.pyc
|   |-- polls.db
|   |-- urls.py
|   |-- urls.pyc
|   |-- views.py
|   `-- views.pyc
|-- script_templates
|   |-- dispatch.template
|   `-- htaccess.template
`-- templates
    `-- polls
        |-- detail.html
        |-- index.html
        `-- results.html

5 directories, 17 files
Run Code Online (Sandbox Code Playgroud)

现在我应该怎么做才能让民意调查应用程序运作?

更新

我终于得到了一个使用Passanger WSGI的"Hello World"Django应用程序.服务器的默认Python …

deployment django wsgi fastcgi dreamhost

6
推荐指数
1
解决办法
6967
查看次数

获取FastCGI中的所有客户端头文件(C/C++)

目前我遇到了一个小问题:
我想为nekoVM创建FastCGI/CGI绑定.这是通过编写VM加载的一些线索C/C++代码来完成的.我想使我的绑定行为尽可能与neko native API(mod_neko,mod_tora)兼容.使用mod_neko,可以获取客户端发送的所有HTTP头.
据我所知,只有通过调用才能获得FastCGI的HTTP头getenv('header_name').要使用此功能,您需要知道所有标题的名称.

我的问题:是否有可能获得客户端发送的所有标头?

c c++ fastcgi http

6
推荐指数
1
解决办法
3260
查看次数

lighttpd + perl + mojolicious =?

mojolicious在lighttpd网络服务器下工作吗?怎么配置?我需要设置FastCGI吗?这是我第一次使用lighttpd.

perl fastcgi lighttpd mojo mojolicious

6
推荐指数
1
解决办法
1423
查看次数

CGI ::客户之间的会话共享会话!

当我尝试这个时:

while (my $cgi = new CGI::Fast) {
    ...
    my $session = CGI::Session->new(undef, $cgi);
    ...
 }
Run Code Online (Sandbox Code Playgroud)

我发现不同的客户正在进行相同的会话!什么会导致这个奇怪的会话共享?

编辑:我无法可靠地重现这一点,但在我的测试中,我看到过从浏览器中删除会话cookie,刷新页面以及(使用Firebug的Net窗格)看到我没有发送cookie的情况.请求,但在响应中使用会话ID 获取Set-Cookie !由于使用FastCGI,可能会在内存中出现问题?

(注意:我从这个问题的早期版本中删除了第二段代码,因为我不再确定它是否相关)

编辑:http://osdir.com/ml/web.fastcgi.devel/2004-02/msg00007.html似乎描述了我所看到的行为

编辑: 如上面的osdir.com帖子所述,FCGI.pm包含以下代码:

for (keys %FCGI::ENV) {
    $ENV{$_} = $FCGI::ENV{$_} unless exists $ENV{$_};
}
Run Code Online (Sandbox Code Playgroud)

这看起来很明显是我眼中的缺陷.只要当前请求不为给定变量提供值,它就会从环境变量的持久副本复制到脚本可见的环境副本中.因此,如果请求没有cookie,那么它将找不到定义的HTTP_COOKIE,因此它将为脚本提供发送它们的最后一个请求的cookie,这意味着其他会话!我不明白这段代码怎么可能是正确的,这是一个非常高度使用的模块!

perl cgi fastcgi

6
推荐指数
1
解决办法
670
查看次数

几个(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...
Run Code Online (Sandbox Code Playgroud)

我使用proxy_pass 将应用程序配置为子域名相对成功,但我想保留旧的URL(只需从apache2切换到nginx).我想保留相同的网址,但使用nginx运行应用程序.我的配置应该是什么样的,我该如何运行应用程序.

提前致谢!

perl fastcgi apache2 nginx mojolicious

6
推荐指数
1
解决办法
1458
查看次数

fastcgi 多路复用?

我正在实现一个 fastcgi 应用程序,在阅读 fastCGI 规范后,我发现了一个名为“请求多路复用”的功能。它让我想起 Adob​​e RTMP 多路复用协议在协议是专有的和封闭的时代。

据我所知,多路复用允许减少创建到 FCGI 客户端的新连接的开销,有效地交织请求块,同时启用“保持活动”模型连接。后者允许通过单个连接发送多个请求。

第一个问题是我做对了吗?

接下来是 - 经过一些谷歌搜索后,我发现没有实现 FCGI 多路复用的服务器,我首先对“流行”服务器感兴趣,我的意思是 nginx 和 lighttpd。我什至发现了一些关于弃用 FCGI 请求多路复用的讨论。

所以问题是 - 是否有任何服务器支持此功能?

fastcgi lighttpd nginx multiplexing

6
推荐指数
1
解决办法
2147
查看次数

apache服务器上的fcgi vs mod_fastcgi

我有一个apache服务器,我正在设置它fcgi.我正在考虑是否要设置量身定制的mod_fastcgi或普通的旧款cgi-fcgi.

mod-fastcgi似乎不支持"多路复用"功能fcgi,我正在构建的Web服务是一个非常高的流量服务,每分钟有几千个呼叫,我希望它们尽快处理.

任何建议或意见??

c++ apache cgi web-services fastcgi

6
推荐指数
1
解决办法
1223
查看次数

如何在使用Lighttpd和Fast-CGI时显示PHP错误?

我使用FastCGI运行Lighttpd网络服务器,网络服务器不输出PHP解析错误.

我的php.ini文件有以下设置:

error_reporting = E_ALL
display_errors = Off
display_startup_errors = Off
log_errors = On
html_errors = On
Run Code Online (Sandbox Code Playgroud)

我在我的PHP脚本中启用错误输出以进行开发(对于其他环境具有冗余):

error_reporting( E_ALL );
ini_set( 'display_errors', 1 );
ini_set( 'html_errors', 'On' );
Run Code Online (Sandbox Code Playgroud)

大多数错误输出正常.解析错误没有.下面是抛出解析错误的示例代码.Lighttpd网络服务器不输出错误,但是从命令行执行时,因为它没有使用FastCGI.(注意缺少的连接运算符):

<?php echo 'foo' 'bar'; ?>
Run Code Online (Sandbox Code Playgroud)

我发现如果我display_errors = On在php.ini中设置然后使用FastCGI和Lighttpd正确解析错误输出,但是我不能在我的PHP脚本中使用它来关闭它们ini_set( 'display_errors', 0 ).

我希望能够在开发它时在我的应用程序中显示这些,并且能够在不更改php.ini配置的情况下关闭它们进行生产.使用FastCGI时,我的PHP应用程序中无法执行此操作吗?

php runtime-error fastcgi lighttpd syntax-error

6
推荐指数
1
解决办法
8009
查看次数

将Django项目移植到1&1共享主机Web服务器

作为一个小背景,我一直在为1&1共享主机网站开发一个django应用程序.当我尝试将应用程序移植到网络上时,我从这里开始遵循教程:http://robhogg.me.uk/post/2.服务器有Python 2.6,我通过SSH安装了django和flup.这是我的.fsgi文件......

#!/usr/bin/python
import sys, os

basepath = '/home/path/' # This isn't my actual homepath

sys.path.insert(0, basepath + '/.local/lib')
sys.path.insert(0, basepath + '/mysite')

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method='threaded', daemonize='false')
Run Code Online (Sandbox Code Playgroud)

......这是我的.htaccess文件......

AddHandler fcgid-script .fcgi
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !(cgi-bin/mysite.fcgi) 
RewriteRule ^(.*)$ cgi-bin/mysite.fcgi/$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)

我也已经给了.fcgi脚本755权限.当我运行.fcgi脚本时,主页HTML在控制台上打印(根据许多站点,这意味着脚本是好的).但是,当我访问我的网站的域名时,我只得到一个位于我的主目录中的Index.html页面.所以我从主目录中移动了所有html文件,然后再次尝试.但是这次我收到一个错误:

Forbidden

You don't have permission to access / on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Run Code Online (Sandbox Code Playgroud)

我又尝试了一件事,那就是.htaccess文件,改变了 …

python django shared-hosting fastcgi

6
推荐指数
1
解决办法
3024
查看次数