mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-06 00:10:19 +02:00
* Added NGINX instructions
git-svn-id: trunk@22842 -
This commit is contained in:
parent
58d9b0853c
commit
1f3870cc84
@ -45,6 +45,8 @@ latter case.
|
||||
2. mod_fastcgi from fastcgi.com
|
||||
2.1 on Windows
|
||||
2.1 on Linux
|
||||
3. NGINX configuration
|
||||
|
||||
===============================================================================
|
||||
|
||||
1. mod_fcgid from Apache:
|
||||
@ -400,3 +402,61 @@ http://127.0.0.1/myfcgi/webmodule1/func1call
|
||||
If there is any problem, you can try and check the Apache error.log for clues.
|
||||
|
||||
===============================================================================
|
||||
|
||||
3. NGINX Configuration
|
||||
|
||||
Full configuraion of FastCGI is discussed at:
|
||||
|
||||
http://wiki.nginx.org/HttpFastcgiModule
|
||||
|
||||
NGINX does not support managing the FastCGI process. The FastCGI process must be
|
||||
started outside of the NGINX engine, much like the FastCgiExternalServer
|
||||
mode of Apache. NGINX will just forward the requests to whatever port the
|
||||
FastCGI process is running on. Note that the fastcgi process does not need
|
||||
to be running on the same machine as the NGINX process.
|
||||
|
||||
This means that in the FastCGI program, you must set the port on which the
|
||||
FastCGI process is listening:
|
||||
|
||||
Example:
|
||||
<...snip...>
|
||||
Application.Initialize;
|
||||
Application.Port:=1234;//Port the FCGI application is listening on
|
||||
Application.Run;
|
||||
<...snip...>
|
||||
|
||||
And the FastCGI process must be started somehow separately.
|
||||
On windows, a windows service application is most suitable.
|
||||
On Unices, a simple process can be put in the system startup scripts.
|
||||
|
||||
Then, NGINX must be told to forward all requests to this address.
|
||||
|
||||
The following is a sample of a NGINX configuration which sends all requests
|
||||
to a FastCGI process, listening on port 1234 on the same machine:
|
||||
|
||||
{
|
||||
include /etc/nginx/fastcgi_params;
|
||||
|
||||
location / {
|
||||
fastcgi_pass 127.0.0.1:1234
|
||||
fastcgi_split_path_info ^((?U).+www.mysite.com)(/?.+)$;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
}
|
||||
}
|
||||
|
||||
The "fastcgi_split_path_info" and fastcgi_param directives are needed,
|
||||
so that the FCL-Web environment gets enough information to act on the
|
||||
request. (PATH_INFO and SCRIPT_FILENAME are needed to work correctly)
|
||||
|
||||
This is another example:
|
||||
|
||||
location ~ /helloworld/.*) {
|
||||
fastcgi_pass 127.0.0.1:1234
|
||||
fastcgi_split_path_info ^((?U)./helloworld)(/?.+)$;
|
||||
fastcgi_param PATH_INFO $path_info;
|
||||
fastcgi_param SCRIPT_NAME "/helloworld";
|
||||
}
|
||||
|
||||
All urls below 'helloworld' will be passed on to the FastCGI process.
|
||||
|
Loading…
Reference in New Issue
Block a user