2012-03-05 51 views
1

我想使用套接字而不是tcp的nginxfastcgi如何使用套接字与nginx和fastcgi

下面是我对nginx的配置。如果我使用127.0.0.1:9001即tcp连接,它可以工作。

这里是错误日志。

2012/03/06 22:04:53 [crit] 19328#0: *1 connect() to unix:/tmp/nginx9001.socket failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: 127.0.0.1, request: "GET /pixel/ HTTP/1.1", upstream: "fastcgi://unix:/tmp/nginx9001.socket:", host: "127.0.0.1" 

nginx的CONF:

location /pixel/ { 
      fastcgi_param REQUEST_METHOD $request_method; 
      fastcgi_param QUERY_STRING $query_string; 
      fastcgi_param CONTENT_TYPE $content_type; 
      fastcgi_param CONTENT_LENGTH $content_length; 
      fastcgi_param GATEWAY_INTERFACE CGI/1.1; 
      fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 
      fastcgi_param REMOTE_ADDR $remote_addr; 
      fastcgi_param REMOTE_PORT $remote_port; 
      fastcgi_param SERVER_ADDR $server_addr; 
      fastcgi_param SERVER_PORT $server_port; 
      fastcgi_param SERVER_NAME $server_name; 
      fastcgi_param SERVER_PROTOCOL $server_protocol; 
      fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; 
      fastcgi_param PATH_INFO $fastcgi_script_name; 
      #fastcgi_pass 127.0.0.1:9001; 
        fastcgi_pass unix:/tmp/nginx9001.socket; 
     } 

这里是我的产卵-fcgi的脚本

exec spawn-fcgi -n -d /home/ubuntu/workspace/rtbopsConfig/rtbServers/ -s /tmp/nginx9001.socket -f /home/ubuntu/workspace/rtbopsConfig/rtbServers/index.py >> /var/log/test.sys.log 2>&1 
+0

-1这是一个可怕的设置! – mate64 2013-12-20 22:34:49

回答

2

PHP未配置为侦听Unix套接字上,它配置为侦听tcp socket。改变你的PHP配置,以匹配你想要的东西。

+0

哦..我忘了它提到..我使用spawn-fcgi来执行python cgi脚本 – Tampa 2012-03-06 13:43:47

+0

解决了添加-u www-data到spawn-fcgi – Tampa 2012-03-06 14:26:38

+1

你应该永远不要使用spawn-fcgi。这是一个可怕的黑客,导致破坏的设置。 – MTeck 2012-03-06 14:35:41