标签: fastcgi

端口与插座上的FastCGI

我今天在Cherokee上设置了Django(使用SCGI),我注意到Django文档说你可以使用主机/端口组合或套接字来进行webserver和Django之间的通信.

他们唯一要说的就是这个问题

你选择的是一种偏好; 由于权限问题,TCP套接字通常更容易.

(顺便说一句,我使用套接字执行此操作时遇到了权限问题,但是没有使用主机:).)

我依旧记得套接字是如何从我的系统编程类中运行的,但我真的很好奇两者之间的有效区别.任何时候都有选择的东西,有人对此事有意见,所以我希望得到那个.特别是,有任何性能差异吗?

或者,如果它真的没关系,我只想要一些确认,所以我可以继续我的编程并忽略这个系统管理员的东西.

sockets fastcgi scgi

19
推荐指数
2
解决办法
1万
查看次数

nginx和Perl:FastCGI与反向代理(PSGI/Starman)

如今,运行Perl Web应用程序的一个非常流行的选择似乎是nginx webserver代理对FastCGI守护程序或PSGI启用的Web服务器(例如Starman)的请求.

关于为什么一般会这样做会有很多问题(例如为什么在Catalyst/Plack/Starman中使用nginx?)并且答案似乎适用于这两种情况(例如,允许nginx提供静态内容,轻松重启应用程序服务器,负载均衡等)

但是,我对使用FastCGI与反向代理方法的优缺点特别感兴趣.似乎Starman被广泛认为是最快和最好的Perl PSGI应用程序/网络服务器,我很难看到使用FastCGI的任何优势.这两种方法似乎都支持:

  • UNIX域套接字以及TCP套接字
  • fork/process manager样式服务器以及非阻塞基于事件的(例如AnyEvent)服务器.
  • 信号处理/正常重启
  • PSGI

同样,任一选项的nginx配置都非常相似.

那你为什么选择一个呢?

perl reverse-proxy fastcgi nginx plack

19
推荐指数
1
解决办法
8337
查看次数

如何使用fastcgi_finish_request()的示例

有人可以展示如何使用fastcgi_finish_request()函数的简单示例吗?我用谷歌搜索,但只发现了一些一般提及它,有些人说他们成功使用它但我找不到一个代码的例子.

例如,我有一个PHP对象.要向浏览器发送响应,我会生成HTML,然后通过它返回getResult().然后回应结果.

像这样:

$obj = new controller();
echo $o->getResult();
Run Code Online (Sandbox Code Playgroud)

假设我想利用这种优化技术将结果发送到浏览器,然后完成一些可能很长的过程,比如连接到某些API,比如Facebook API.

我该怎么做呢?我明白,基本上我可以调用fastcgi_finish_request();然后继续执行PHP脚本.

我只需要查看示例代码,我自己也不够聪明.

php fastcgi

19
推荐指数
1
解决办法
1万
查看次数

在nginx之后找不到Laravel路线

在我将ICG更改为nginx之后,除索引页之外的所有路由都不起作用.

Laravel配置:

#/etc/nginx/sites-enabled/laravel
server {
    listen 80;

    root /var/www/home;
    index index.php;

    server_name 192.168.178.71;

    access_log /var/www/home/storage/app/logs/laravel-nginx-access.log;
    error_log  /var/www/home/storage/app/logs/laravel-nginx-error.log error;


    location /home {
        root /home/public;
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt  { log_not_found off; access_log off; }


    # ERROR
    error_page 404 /index.php;


    # DENY HTACCESS
    location ~ /\.ht {
        deny all;
    }
}
Run Code Online (Sandbox Code Playgroud)

默认配置:

# /etc/nginx/sites-enabled/default
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www;

        # Add index.php to the …
Run Code Online (Sandbox Code Playgroud)

php apache fastcgi nginx laravel

19
推荐指数
4
解决办法
2万
查看次数

Apache的mod_php还是FastCGI?哪个对Wordpress有好处?

我有关于在不同的配置中运行PHP的基本想法,如mod_php,cgi,FastCGI等.

在我的发现和测试中,我发现FastCGI略胜一筹.我最喜欢FastCGI对SuEXEC的支持.等等我不想再次进入基准测试业务.如果你上网,你会发现在每秒处理的请求数量方面,证明一种方式比另一种更快的人.那么它的好指标,但我对不同的因素感兴趣,这是我的问题......

  1. 运行PHP的哪种方法占用的内存较少?
  2. 另外哪种方法消耗内存几乎不变.我用mod_php看到我的服务器内存使用率每隔几秒就会在300MB到800MB之间波动.
  3. 但是使用FastCGI,来自服务器的第一个响应来得非常晚.我看到FastCGI每个网页请求有一个初始延迟.一旦服务器的第一个响应到达,其他项目,如图像,css,js加载速度相当快.
  4. 两种混合运行都可以吗?我在专用服务器上有5个站点.如果我使用mod_php运行少量并使用FastCGI休​​息,这样可以吗?
  5. 我确信我的服务器出现故障主要是因为mod_php的内存使用不当.我检查了所有脚本.有没有办法确保服务器上的内存消耗几乎保持不变?
  6. .htaccess的复杂性是否会显着影响内存使用?如果是,是否可以使服务器内存不足?
  7. apache MPM prefork/worker设置会影响内存消耗吗?它们是否同样影响mod_php和FastCGI模式?
  8. 当我运行"top"命令时,我看到apache(httpd)消耗大约40MB的内存.有许多httpd运行的实例.此外,FastCGI还会分配一些类似大小的进程.httpd进程的正常内存大小是多少?
  9. 当我在我们所有的网站上运行Wordpress时,在这种情况下这将是一个好方法吗?
  10. FastCGI/SuExec与APC一起工作正常吗?我是否需要重新配置APC才能与SuEXEC和FastCGI配合使用.

请注意,我对DIGG或交通高峰的生存兴趣不大.我想要一种可以使服务器稳定和可预测的方法.

对不起,如果我很困惑,但我真的很乱.我有512MB物理内存,400MB交换和我的服务器疯狂的内存不足.平均内存需求大约为350MB,只是内存使用量激增使得内存几秒钟无法访问,如果在那几秒钟窗口中收到的额外点击很少,则apache在mysql和所有其他fellas运行正常时崩溃.

请帮帮我们.我不会买更多的RAM或硬件.我很确定问题出在我的配置中.对不起,如果我听起来傲慢或无知.

php apache wordpress fastcgi mod-php

18
推荐指数
1
解决办法
2万
查看次数

PSGI:它是什么,有什么大惊小怪的?

我一直试图决定我的Web项目是否是使用PSGI实现的候选者,但我真的没有看到它在这个阶段对我的应用程序有什么好处.

我真的不明白所有的大惊小怪.对我来说,PSGI似乎是一个框架,它提供了不同Apache模块之间的通用接口,允许您在它们之间移动应用程序.例如,轻松地将您的应用程序从mod_perl上运行到fastcgi,并提供运行这两个选项的应用程序支持.

是的,还是我错过了什么?

因为我和团队不仅是开发应用程序的一部分,而且几乎都是服务器的维护和设置,我没有看到能够在fastcgi,cgi和mod_perl上运行的价值,我们做只需mod_perl即可.

我误解了PSGI功能,还是不适合我的项目?

perl fastcgi mod-perl2 psgi

18
推荐指数
3
解决办法
3594
查看次数

如何为django nginx虚拟服务器+ fcgi?

我想通过nginx运行几个虚拟主机,每个主机通过fcgi提供不同的django应用程序.这可能吗?如果是这样,有没有人有关于在哪里/如何开始的良好资源?nginx文档似乎主要是示例,但没有我正在尝试的特定配置...

django fastcgi nginx

17
推荐指数
1
解决办法
1万
查看次数

部署Django(fastcgi,apache mod_wsgi,uwsgi,gunicorn)

有人可以解释守护进程模式下的apache mod_wsgi和线程模式下的django fastcgi之间的区别.我认为它们都使用线程来实现并发性. 假设我使用nginx作为apache mod_wsgi的前端.

更新:

我正在比较内置fastcgi(./ manage.py方法=线程maxchildren = 15)的django和'daemon'模式下的mod_wsgi(WSGIDaemonProcess示例threads = 15).他们都使用线程并获得GIL,对吗?

UPDATAE 2:

所以,如果它们都相似,那么apache mod_wsgi对fastcgi有什么好处.我看到fastcgi的这些优点:

  • 我们不需要apache
  • 我们消耗更少的RAM
  • 我注意到fastcgi的开销较小

UPDATAE 3:

我现在对nginx + uwsgi很满意.

UPDATAE 4:

我现在对nginx + gunicorn很满意:)

python deployment django mod-wsgi fastcgi

17
推荐指数
1
解决办法
8206
查看次数

为什么将Web应用程序实现为FastCGI而不是新的Web服务器?

我了解FastCGI在性能方面优于其他网关接口的目的.但是,如果实现FastCGI的库已经经历了实施安全高效的TCP服务的艰苦措施,为什么不将应用程序编写为Web服务器呢?前端Web服务器实现反向代理的效率低于FCGI的效率吗?或者FCGI的规范比HTTP的规范简单得多?

fastcgi

17
推荐指数
1
解决办法
1600
查看次数

不同Ruby on Rails生产Web服务器之间的建议(和差异)

我很快就计划将我的第一个Ruby on Rails应用程序部署到生产环境中,我甚至选择了一个带有所有托管服务器的webhost,以及你期望从RoR提供商那里获得的Capistrano优点.

提供商允许Mongrel,Thin,Passenger和FastCGI Web服务器,这看起来非常灵活,但老实说我不知道​​它们之间的差异.我已经对它们进行了一些研究,但是当它们开始讨论功能和最大同时请求时,它们都会变得有点多 - 而且这些数据似乎会因发布者的不同而有所不同.

我看过Passenger(表面上看) - 这看起来对我很有吸引力 - 但我的印象是Passenger不是真正的网络服务器,而是更像是Apache或nginx之上的一层并且管理产生了应用程序的实例(如Mongrel集群).

任何人都可以请我直截了当地说明外行人的条款,以便我可以明智地选择(因为任何看过印第安纳琼斯和最后的十字军的人都知道如果选择不好会发生什么).

webserver mongrel fastcgi ruby-on-rails passenger

16
推荐指数
2
解决办法
6077
查看次数