标签: fastcgi

我应该在Apache下选择哪种FastCGI服务器模式?

我是FastCGI的新手,并希望使用这个平台来加速我现有的vanilla CGI(perl)程序.

但是在阅读FastCGI/Apache FAQ时,似乎我可以在Apache配置中设置我的脚本(一旦转换为使用单独的初始化/请求部分),如下所示:

1)动态

2)静态"在SetHandler的范围内"

3)静态"在AddHandler的范围内"

4)静态"在Set/AddHandler范围之外"(或者,我认为,这可以称为'外部')

我对这四个选项感到困惑,我假设"动态"的默认值是我应该使用的,但有人可以解释这些的优点/缺点吗?

apache perl cgi fastcgi mod-fastcgi

4
推荐指数
1
解决办法
1783
查看次数

Python fastcgi客户端

我正在python上编写一个工具来监控fastcgi应用程序.fastcgi我唯一需要的是加载ping和状态页面(如果失败则返回某种错误).

有很多库(从python-fasctgi绑定到扭曲)似乎能够做到这一点,但是大多数库对于我的目的来说简直太过分了,而且其中许多都会让我产生额外的依赖性,导致一些包装问题.

那么,是否有任何简单的python fastcgi 客户端实现/库,易于安装/打包(转rpm)或小到足以随项目分发.

更新:

感谢agf,我已经能够连接到fastcgi app并发送一些请求.它只不过是标准的php-fpm.但我无法得到任何位置的响应:我正试图从'/ ping',它应该响应200 OK和'pong'在体内.对于我的任何要求,所有我得到的是200 OK响应,空身.

我正在以这种方式提出要求:

def _load_page(self, url):
    """ load fastcgi page """
    fcgi = fcgi_client.FCGIApp(host = self.fcgi_host, port = self.fcgi_port)
    env = {
           'SCRIPT_FILENAME': url,
           'QUERY_STRING': url,
           'REQUEST_METHOD': 'GET',
           'SCRIPT_NAME': url,
           'REQUEST_URI': url,
           'GATEWAY_INTERFACE': 'CGI/1.1',
           'SERVER_SOFTWARE': 'ztc',
           'REDIRECT_STATUS': '200',
           'CONTENT_TYPE': '',
           'CONTENT_LENGTH': '0',
           'DOCUMENT_URI': url,
           'DOCUMENT_ROOT': '/',
           #'SERVER_PROTOCOL' : ???
           'REMOTE_ADDR': '127.0.0.1',
           'REMOTE_PORT': '123',
           'SERVER_ADDR': self.fcgi_host,
           'SERVER_PORT': str(self.fcgi_port),
           'SERVER_NAME': self.fcgi_host
           }
    ret = fcgi(env)
    print ret
Run Code Online (Sandbox Code Playgroud)

我还必须在stdin处理中修改flup客户端:

# Transfer wsgi.input …
Run Code Online (Sandbox Code Playgroud)

python client fastcgi

4
推荐指数
1
解决办法
3793
查看次数

Django和nginx.我还需要apache吗?

我一直在搜索这个主题,并且建议似乎是nginx应该在那里提供静态文件和apache + wsgi来处理Django.很多这方面的信息已经有几年了,所以我想知道是否有一种方法可以简化这种情况而不会降低性能,只需要依赖Nginx和fastCGI和/或wsgi.

我是非Heroku部署的新手,所以这就是为什么我可能听起来像我不知道我在说什么.

django wsgi fastcgi nginx

4
推荐指数
1
解决办法
3259
查看次数

与Ada一起使用FastCGI

我找到了http://support.zeus.com/zws/examples/2005/12/16/hello_world_in_perl_and_c,这两个例子正在运行.

现在我为Ada尝试了这个,我从2天后就无法完成它.

fcgi_stdio.ads

with Interfaces.C;
with Interfaces.C.Strings;

package fcgi_stdio is
    function FCGI_Accept return Interfaces.C.int;
    pragma Import (C, FCGI_Accept, "FCGI_Accept");

    procedure FCGI_printf (str : Interfaces.C.Strings.chars_ptr);
    pragma Import (C, FCGI_printf, "FCGI_printf");
end fcgi_stdio;
Run Code Online (Sandbox Code Playgroud)

test.adb

with fcgi_stdio;
with Interfaces.C;
with Interfaces.C.Strings;

procedure Test is
begin
    while Integer (fcgi_stdio.FCGI_Accept) >= 0 loop
        fcgi_stdio.FCGI_printf (Interfaces.C.Strings.New_String ("Content-Type: text/plain" & ASCII.LF & ASCII.LF));
        fcgi_stdio.FCGI_printf (Interfaces.C.Strings.New_String ("Hello World from Ada!" & ASCII.LF));
    end loop;
end Test;
Run Code Online (Sandbox Code Playgroud)

当我在控制台中运行它时,我收到以下错误:

$ ./test
raised STORAGE_ERROR : stack overflow or erroneous …
Run Code Online (Sandbox Code Playgroud)

c fastcgi ada mod-fcgid mod-fastcgi

4
推荐指数
1
解决办法
494
查看次数

nginx:将单个静态URL映射到PHP文件

我有一个WordPress安装启动并运行没有问题.页面上有一个元素不是WP的一部分,而是我们自己的自定义PHP脚本.只是在那里处理表单POST请求并在某种程度上处理它.

要求我们没有以.php结尾的扩展名.我的表单提交的内容如下:

/places/signup.html
Run Code Online (Sandbox Code Playgroud)

在我的nginx配置中,我有这个:

server {
    listen       87948; # It's behind a reverse proxy
    server_name domain.com www.domain.com;

    include /etc/nginx/proxy_params;

    index index.php;
    root /opt/www/public_html;

    location /favicon.ico {
        return 404;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }

    location ~ \.php$ {
        add_header Access-Control-Allow-Origin "*";
        client_body_buffer_size 4096k;
        fastcgi_pass unix:/tmp/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /opt/www/public_html/$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

    # LOOK HERE
    location ~ /places/signup.html {
        root                             /opt/www/custom_scripts/;
        fastcgi_pass    unix:/tmp/php5-fpm.sock;
        fastcgi_param …
Run Code Online (Sandbox Code Playgroud)

fastcgi nginx

4
推荐指数
1
解决办法
8354
查看次数

HHNVM与Nginx fastcgi无法正常工作

我想通过Nginx使用HHVM.(Ubuntu 12.04.2 LTS,PHP 5.3.10)

我按照这里提到的步骤进行了访问:http:
//www.hhvm.com/blog/1817/fastercgi-with-hhvm

这就是我的Nginx设置的外观:

server {
        listen  80;
        server_name demo1.dev
        server_name_in_redirect off;
        root /var/www/demo1;
        location / {
                index index.php;
                try_files $uri $uri/ @handler;
                expires 30d;
        }
        location @handler {
                rewrite / /index.php;
        }
        location ~ .php$ {
                fastcgi_keep_conn on;
                if (!-e $request_filename) { rewrite / /index.php last; }
                expires        off;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_param PHP_VALUE "error_log=/var/report/PHP.error.log";
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
        }
        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                expires 1y;
                log_not_found off;
        }
}
Run Code Online (Sandbox Code Playgroud)

我有一个名为hhvm.php的文件,其中包含:

function is_hhvm() { …
Run Code Online (Sandbox Code Playgroud)

fastcgi nginx hhvm

4
推荐指数
1
解决办法
8177
查看次数

HHVM + NGinx连接被拒绝

我正在尝试通过预构建的软件包在Debian 7上安装HHVM.我有另一台具有相同配置的服务器并且它正在工作但是在其中一台服务器中HHVM FastCGI拒绝连接

这是/var/log/nginx/error.log

2014/11/25 23:24:10 [error] 422#0: *39 connect() failed (111: Connection refused) while connecting to upstream, client: 213.128.95.22, server: , request: "GET /api/v2/checkaccess HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "77.75.35.140"
Run Code Online (Sandbox Code Playgroud)

我确信HHVM守护程序正在工作并正在监听9000.端口.

COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
hhvm    12192 www-data   16u  IPv6 792971      0t0  TCP *:9000 (LISTEN)
Run Code Online (Sandbox Code Playgroud)

但我也无法与telnet连接

root@server:/home/itusozlukcom# telnet 127.0.0.1 9000
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
Run Code Online (Sandbox Code Playgroud)

我确信代码没有问题,因为相同的代码在另一台服务器上工作,在这个服务器中,代码由HHVM CLI工作.

HHVM error.log为空.

可能是什么问题?

fastcgi nginx hhvm

4
推荐指数
1
解决办法
5704
查看次数

Apache中的快速CGI:无法绑定unix域套接字

排除了琐碎的原因,如缺少写入文件的权限,我正在寻找原因.该文件fcgid.conf仅提供基本设置,我无法验证它尝试打开的端口.我如何授予许可?

提示:我的系统可能阻塞了端口,但我没有发现端口没有提到.在fcgid配置中.

这是Apache错误日志.加载快速CGI脚本时:

[Tue Oct 06 14:16:24.235309 2015] [fcgid:error] [pid 23141:tid 139803208390720] (13)Permission denied: mod_fcgid: couldn't bind unix domain socket /var/run/httpd/mod_fcgid/23141.256
[Tue Oct 06 14:16:24.235351 2015] [fcgid:warn] [pid 23141:tid 139803208390720] (13)Permission denied: mod_fcgid: spawn process /var/www/html/azure/testfcgi.fcgi error
[Tue Oct 06 14:16:25.236606 2015] [fcgid:error] [pid 23141:tid 139803208390720] (13)Permission denied: mod_fcgid: couldn't bind unix domain socket /var/run/httpd/mod_fcgid/23141.257
[Tue Oct 06 14:16:25.236682 2015] [fcgid:warn] [pid 23141:tid 139803208390720] (13)Permission denied: mod_fcgid: spawn process /var/www/html/azure/testfcgi.fcgi error
[Tue Oct 06 14:16:26.237965 2015] [fcgid:error] [pid …
Run Code Online (Sandbox Code Playgroud)

sockets apache config fastcgi httpd.conf

4
推荐指数
1
解决办法
5182
查看次数

无法导入flup.server.fcgi

我正在按照这些步骤部署Django项目

我的.htaccess是:

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

我的.fcgi:

#!/homeX/your_username/python27/bin/python27
import sys, os

# Add a custom Python path.
sys.path.insert(0, "/homeX/your_username/python27")
sys.path.insert(13, "/homeX/your_username/myproject")

os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")
Run Code Online (Sandbox Code Playgroud)

当我跑来python2.7 mysite.fcgi证明它有效时,它会让我:

无法导入flup.server.fcgi

我该怎么导入flup.server.fcgi

我使用的是:Django 1.8.7,flup 1.0.3,python 2.7,psycopg2postgreSQL,并使用一切都下载pip.

python django .htaccess fastcgi flup

4
推荐指数
1
解决办法
1617
查看次数

通过Docker中的Nginx的多个版本的PHP

我为PHP5.6运行了两个docker容器:

docker run --name php5 \
    -v /html1:/var/www/html/site1 \
    -d -p 9001:9000 php:5.6-fpm
Run Code Online (Sandbox Code Playgroud)

对于PHP7:

docker run --name php7 \
  -v /html2:/var/www/html/site2 \
  -d -p 9000:9000 php:7-fpm
Run Code Online (Sandbox Code Playgroud)

我用Nginx运行Docker容器:

docker run --name nginx-cache \
  -v /nginx.conf:/etc/nginx/nginx.conf \
  -v /nginx/html1:/var/www/html/site1 \
  -v /nginx/html2:/var/www/html/site2 \
  -v /sites-enabled:/etc/nginx/sites-enabled/ \
  --link php5 --link php7 -d -p 9999:80 nginx
Run Code Online (Sandbox Code Playgroud)

nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    sendfile on;

    gzip              on;
    gzip_http_version 1.0;
    gzip_proxied      any;
    gzip_min_length …
Run Code Online (Sandbox Code Playgroud)

php fastcgi docker

4
推荐指数
1
解决办法
1022
查看次数

标签 统计

fastcgi ×10

nginx ×4

apache ×2

django ×2

hhvm ×2

mod-fastcgi ×2

python ×2

.htaccess ×1

ada ×1

c ×1

cgi ×1

client ×1

config ×1

docker ×1

flup ×1

httpd.conf ×1

mod-fcgid ×1

perl ×1

php ×1

sockets ×1

wsgi ×1