

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
6 messages in ru.sysoev.nginxRe: C fast-cgi implementation| From | Sent On | Attachments |
|---|---|---|
| Huy Phan | Apr 23, 2009 6:45 pm | |
| Roger Hoover | Apr 23, 2009 7:59 pm | |
| Charles McGarvey | Apr 23, 2009 8:09 pm | |
| Huy Phan | Apr 24, 2009 9:51 pm | |
| Charles McGarvey | Apr 24, 2009 10:31 pm | |
| Huy Phan | Apr 24, 2009 11:20 pm |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: C fast-cgi implementation | Actions... |
|---|---|---|
| From: | Charles McGarvey (onef...@brokenzipper.com) | |
| Date: | Apr 24, 2009 10:31:53 pm | |
| List: | ru.sysoev.nginx | |
Huy Phan wrote:
Charles McGarvey <onefriedrice@...> writes:
http://www.fastcgi.com/drupal/node/5
Download the "Development Kit" which includes a C library implementation of FastCGI and C/C++ examples. The library is very easy to learn, so you should be up and running quickly. Read the fcgiapp.h file to get going.
Cheers, Chaz
Thanks for this page, I see that Nginx has the module NginxHttpFcgiModule which allows Nginx to interact with FastCGI processes, but we have to start the fastcgi server myself. I wrote the code with FastCGI Dev Kit but don't know how to start the FastCGI server with it. The document from fastcgi.com only mentions about servers that support FastCGI and execute itself.
Here's some sample code to help you get started (may not compile but you get the idea):
#include <fcgiapp.h>
int main() { int sockfd = FCGX_OpenSocket("/var/run/myfcgiserver.sock", 1024); FCGX_Request request;
FCGX_Init(); FCGX_InitRequest(&request, sockfd, 0);
while (FCGX_Accept_r(&request) == 0) { FCGX_FPrintF(request.out, "Content-type: text/html\r\n" "\r\n") "<h1>Hello World!</h1>"); FCGX_Finish_r(&request); } }
You're right, nginx won't start your fastcgi server for you, so just run it yourself. Personally, I find it easy enough to just create an init script for any fcgi app I want running.
Then configure nginx something like this:
location ~ fcgi-bin/.*$ { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/myfcgiserver.sock; fastcgi_index whatever; }
With this, any request to yourserver/fcgi-bin/... will be sent to your fastcgi server.
One final note: If you want to use TCP rather than a unix socket, change the first argument of FCGX_OpenSocket to ":portnum" (i.e. ":2000" -- you need the colon). Then use "fastcgi_pass yourfcgiserver:2000;" in the nginx config.
Hope that helps.. --Chaz







