centos 配置Nginx支持PHP和JSP

2014-06-19 23:04:29
当前的服务器是centos系统,LEMP环境,也就是linux+nginx+mysql+php,web程序都是PHP语言开发的。 现在需要将一个基于java的网站部署到这台服务器上,所以需要安装java web应用服务器, 这里选择的是resin-3.1.12。

当前的服务器是centos系统,LEMP环境,也就是linux+nginx+mysql+php,web程序都是PHP语言开发的。
现在需要将一个基于java的网站部署到这台服务器上,所以需要安装java web应用服务器,
这里选择的是resin-3.1.12。

大体的结构,如图所示:

由 Nginx负责前端的所有http请求,然后根据不同的站点配置,
有的发给php进程处理,有的交给resin服务器来处理。 

由于服务器上Nginx+PHP的环境已经正常运行了,现在只需要再安装resin服务器就可以了。

1、下载JDK
这是安装resin的前提条件,这里我们选择的是Oracle的jdk1.7,首先到oracle网站上找到相应的版本,我这里选择64位的rpm包

#使用wget命令下载rpm文件
wget http://download.oracle.com/otn-pub/java/jdk/7u60-b19/jdk-7u60-linux-x64.rpm

#安装下载的rpm包,这里的参数U是update的意思,也可以用i,rpm -ivh 重新安装
rpm -Uvh jdk-7u60-linux-x64.rpm

#查询刚才的java rpm包安装到系统的哪个目录下了
rpm -ql jdk

#编辑系统环境变量,添加JAVA_HOME  CLASSPATH 两个环境变量,并且把java/bin目录加到PATH环境变量中
vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.7.0_60
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

至此,我们的jdk安装好了,运行java --version试一下。

2、下载、安装resin
这里我们用的还是resin-3.1.12这个老版本,现在resin是4.0的版本了,功能更加强大

#下载resin安装包 
wget http://www.caucho.com/download/resin-3.1.12.tar.gz

#解压
tar zxvf resin-3.1.12.tar.gz

#进入resin目录
cd resin-3.1.12

#运行配置程序,通过prefix参数指定安装位置,这里我们指定把resin安装到 /usr/local/resin这个目录下,
./configure --prefix=/usr/local/resin

#编译、安装
make
make install

#启动resin服务器
./httpd.sh start

至此,我们的resin服务器就安装成功了,在浏览器里打开 http://www.hutuseng.com:8080 ,就可以看到resin的默认页面了。

3、配置java web网站

把我们的java网站传到服务器上,修改resin的配置文件,增加一个虚拟主机
resin-3.1.12的配置文件是 conf/resin.conf

vi resin.conf

<host id="www.hutuseng.com" root-directory="/data/huduseng/">
<web-app id="/" document-directory="WebRoot"></web-app>
</host>

这样,就增加了一个虚拟主机,
重启一下resin服务器,./httpd.d restart,使配置生效。

但是,这时我们只能通过 8080端口来访问,也就是 http://www.hutuseng.com:8080,不能通过80端口访问,
因为80端口被nginx占用了。


4、配置nginx,做反向代理(reverse proxy)

打开nginx配置文件 conf/nginx.conf
增加一个server节点,也就是虚拟主机节点,将所有hutuseng.com的请求发送到本机的8080端口,也就是resin服务器。
注意,不能漏了 Host参数,否则resin的虚拟主机功能就不好用了。

server
{
	listen          80;
	server_name www.hutuseng.com hutuseng.com;
	location / {
		proxy_pass              http://127.0.0.1:8080/;
		proxy_redirect          off;
		proxy_set_header        X-Real-IP       $remote_addr;
		proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header        Host            $host;
		}
}

这样,我们就实现了在一台服务器上,同时支持php jsp的环境, 以后也可以根据需要扩展,比如支持python、asp.net等,而且大家都可以使用80端口了。