2012-03-05 23 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