實戰Nginx與Perl、Java的安裝與配置

來源:互聯網
上載者:User

通過前面的介紹,可以對Nginx有了一個比較全面的認識:Nginx本身是一個靜態HTTP伺服器和反向 Proxy伺服器,它不支援動態網頁面,所謂的Nginx對動態程式的支援都是通過反向 Proxy功能實現的。下面要講述的Nginx對Perl和JSP的支援,就是通過Nginx的反向 Proxy功能完成的。Nginx對Perl和JSP的支援在實現細節上可能有一定差別,但是實現原理是完全一樣的。

Nginx的安裝這裡不再講述,這假定Nginx的安裝路徑為/usr/local/nginx。

一、Perl(FastCGI)的安裝

1.擷取wrapper程式

讀者可以從http://www.nginx.eu/nginx-fcgi/ 上下載nginx-fcgi.txt檔案,然後將其命名為nginx-fcgi.pl並放到/usr/local/nginx目錄下。nginx-fcgi.pl是一個用Perl指令碼寫的wrapper執行個體,所以,作業系統必須要安裝Perl程式以及相關模組。

2.安裝相關的系統支援模組

可以從http://search.cpan.org下載所需的相應模組,然後進行安裝。

(1)安裝FCGI模組

[root@localhost opt]# tar zxvf FCGI-0.71.tar.gz

[root@localhost opt]# cd FCGI-0.71

[root@localhost FCGI-0.71]# perl Makefile.PL

[root@localhost FCGI-0.71]# make

[root@localhost FCGI-0.71]# make install

(2)安裝IO模組

[root@localhost opt]# tar -xvzf IO-1.25.tar.gz

[root@localhost opt]# cd IO-1.25

[root@localhost IO-1.25]# perl Makefile.PL

[root@localhost IO-1.25]# make

[root@localhost IO-1.25]# make install

(3)安裝IO::ALL模組

[root@localhost opt]# tar -xvzf IO-All-0.39.tar.gz

[root@localhost opt]# cd IO-ALL-0.39

[root@localhost IO-ALL-0.39]# perl Makefile.PL

[root@localhost IO-ALL-0.39]#make

[root@localhost IO-ALL-0.39]#make install

3.編寫nginx-fcgi啟動指令碼

僅僅有wrapper檔案是不夠的,還需要一個指令碼來建立socket、啟動wrapper以及將wrapper和socket綁定,下面通過一個shell指令碼來完成這一系列工作。

[root@localhost root]# more nginx-fcgi

   #!/bin/bash

   nginxroot=/usr/local/nginx

   start ()

   {

   chown nobody.root $nginxroot/logs

   echo "$nginxroot/nginx-fcgi.pl -l $nginxroot/logs/nginx-fcgi.log -pid $nginxroot/logs/nginx-fcgi.pid  -S  $nginxroot/logs/nginx-fcgi.sock" >>$nginxroot/nginx_fcgi.sh

   chown nobody.nobody $nginxroot/nginx_fcgi.sh

   chmod 755 $nginxroot/nginx_fcgi.sh

   sudo -u nobody $nginxroot/nginx_fcgi.sh

   echo "start nginx-fcgi done"

   }

   stop ()

   {

   kill $(cat $nginxroot/logs/nginx-fcgi.pid)

   rm $nginxroot/logs/nginx-fcgi.pid 2>/dev/null

   rm $nginxroot/logs/nginx-fcgi.sock 2>/dev/null

   rm $nginxroot/nginx_fcgi.sh 2>/dev/null

   echo "stop nginx-fcgi done"

   }

   case $1 in

   stop)

   stop

   ;;

   start)

   start

   ;;

   restart)

   stop

   start

   ;;

   *)

   echo $"Usage: perl-cgi {start|stop|restart}"

       exit 1

   esac

在nginx-fcgi中,變數nginxroot指定Nginx的安裝目錄,nginx-fcgi.sock是產生的檔案sock, nobody為運行nginx_fcgi進程的使用者,這個使用者要和運行Nginx的使用者一致。

配置完指令碼後,將此檔案放到/usr/local/nginx目錄下,接著通過如下方式管理nginx-fcgi進程。

[root@localhost root]#chmod 755 /usr/local/nginx/nginx-fcgi.pl

[root@localhost root]#chmod 755 /usr/local/nginx/nginx-fcgi

[root@localhost root]#/usr/local/nginx/nginx-fcgi start|stop|restart

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.