二、为Nginx添加FCGI支持
修改Nginx配置文件,在server虚拟主机中添加如下配置:
location ~ \.cgi${
root html;
fastcgi_pass unix:/usr/local/nginx/logs/nginx-fcgi.sock;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
在这个location配置中,Nginx与FastCGI的通信方式为Unix Socket。根据经验,IP Socket在高并发访问下比Unix Socket稳定,但Unix Socket速度要比IP Socket快。 “$document_root”是虚拟主机的根目录,在这里是/usr/local/nginx/html目录。
三、测试Nginx +Perl(FastCGI)
以上配置工作完成后,即可启动服务了。首选启动nginx-fcgi进程:
/usr/local/nginx/nginx-fcgistart
再启动nginx:
/usr/local/nginx/sbin/nginx
在/usr/local/nginx/html目录下创建一个123.cgi的文件。
# disable filename globbing
set-f
echo"Content-type: text/plain;charset=iso-8859-1"
echo
echoCGI/1.0 testscript report:
echo
echoargc is $#. argv is "$*".
echo
echoSERVER_SOFTWARE = $SERVER_SOFTWARE
echoSERVER_NAME = $SERVER_NAME
echoGATEWAY_INTERFACE = $GATEWAY_INTERFACE
echoSERVER_PROTOCOL = $SERVER_PROTOCOL
echoSERVER_PORT = $SERVER_PORT
echoREQUEST_METHOD = $REQUEST_METHOD
echoREMOTE_ADDR = $REMOTE_ADDR
接着通过浏览器访问“”,如果显示与下面类似的信息,表明Nginx+Perl环境搭建成功:
问题:
1、编译FCGI的时候报错.
Can't locateExtUtils/MakeMaker.pm in @INC
……
BEGIN failed--compilation aborted at Makefile.PL line 3.
解决办法:
yum install perl-ExtUtils-CBuilderperl-ExtUtils-MakeMaker
2、编译IO-All的时候报错:
make: Warning: File`Makefile.PL' has modification time 3.9e+06 s in the future
安装IO-All的时候make报以上错,说明是系统时间的问题,
解决办法:/usr/sbin/ntpdatentp.api.bz
3、启动nginx-fcgi的时候报PID文件问题
ERROR PID file /usr/local/nginx/logs/nginx-fcgi.pid already exists
是权限不够
解决办法:chown nobody.root /usr/local/nginx –R
总结:各个语言各有利弊,也都有所需要的市场,现实环境会有更多的支持扩展和变换性,上面是轻量级的一个架构,还可以利用Nginx做负载,然后做单独的Java和Perl环境服务器,利用Nginx实现将不同语言的处理请求直接交给后端的环境服务器。
Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里
相关阅读:
实例详解Tomcat组件安装+Nginx反向代理Tomcat+Apache使用mod_jk和mod_proxy反向代理和负载均衡