安装配置Nginx作为Apache和Tomcat服务器的前端服务器

时间:2022-09-19 17:53:45

前言

测试机运行ubuntu sever 12.04系统。安装好后会同时运行Nginx, Apache和Tomcat服务器. Nginx用作前端服务器,接收所有http请求并处理返回静态请求,将动态Java请求转发给Tomcat, 将动态PHP请求,转发给Apache. 在我安装配置过程中,缺乏给初学者的详细完整的攻略,因此产生了这篇安装配置指南。希望能够帮助有需要的朋友更便捷地安装配置实现。

简介

Nginx是小巧快速的轻量级服务器,优雅的线程设计类似JBoss,为非阻塞设计,对于静态请求有非常好的处理能力。既然是指南,就用手册体了。在完成所有配置之后, Nginx服务器会运行在了公网IP中,监听80端口,其他的两个服务器,Apache和Tomcat会运行在localhost中,等待Nginx的转发。以下就是三个服务器的IP和端口配置。这些配置都可以根据个人情况进行更改。
Nginx Web Server your-domain:80
Apache Web Server port localhost:8080
Tomcat Server port localhost:8081

Apache服务器的安装配置

1. 使用以下命令安装Apache服务器。
sudo apt-get install apache2
2. 设置Apache服务器作为后端服务器,运行在localhost。修改 /etc/apache2/ports.conf 文件。在该文件中输入以下两行配置内容。可以选择使用不同的端口号。
NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080
3. 配置Virtual Host. 复制/etc/apache2/sites-available/default 文件,将其重命名为你喜欢的名字,我在这使用demo。 然后在该文件中输入以下内容。可以指定不同的路径,只要正确就好。
<VirtualHost 127.0.0.1:8080>
DocumentRoot /var/www
4. 使用以下第一行命令让默认的配置文件失效,使用第二行命令让新的配置文件生效。
sudo a2dissite default
sudo a2ensite demo
5. 安装php相关软件。
sudo apt-get install libapache2-mod-php5 php5 php-pear php5-xcache
6. 为了验证Nginx正确地把php相关请求转发给了Apache,创建一个info.php文件用来测试,在里面加入以下内容来查看php的相关信息。
<?phpinfo();?>
7. 使用以下命令重启Apache服务器。
sudo /etc/init.d/apache2 restart

Nginx服务器的安装配置

1. 使用以下命令安装Nginx服务器。
sudo apt-get install nginx
2. 复制/etc/nginx/site-available/default 文件,并重命名为你喜欢的名字。这里还是用demo这个名字吧。在该文件中添加以下内容,让Nginx服务静态页面,将动态PHP请求传递给Apache服务器了。
server {
listen 80;
root /var/www/;
index index.php index.html index.htm;
server_name your-domain;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
location ~ /\.ht {
deny all;
}
}
3. 依次使用以下命令,让默认的配置失效,让新的配置生效。
sudo ln -s /etc/nginx/sites-available/demo /etc/nginx/sites-enabled/demo
sudo rm /etc/nginx/sites-enabled/default
4. 使用以下命令,重启Nginx服务器。
sudo /etc/init.d/nginx restart
5. 访问domain/info.php页面来查看服务器是否正确配置运行了。如果正确的话,你将看到php的相关信息。

Tomcat服务器的安装配置

安装Tomcat服务器需要你事先安装了Java.
1. 使用以下命令下载Tomcat服务器。
wget http://apache.cs.utah.edu/tomcat/tomcat-7/v7.0.41/bin/apache-tomcat-7.0.41.tar.gz
2. 使用以下命令解压缩。
tar xvzf apache-tomcat-7.0.41.tar.gz
3. 使用以下命令将解压后的文件移动到你指定的文件夹下。
sudo mv apache-tomcat-7.0.41 /opt/tomcat7
4. 更改该文件的所有权。按照个人喜好来。
sudo chown -R root:root /opt/tomcat7
5. 将以下内容添加到 /etc/environment文件中。
CATALINA_HOME="/opt/tomcat7"
6. 将以下内容添加到/opt/tomcat7/bin/catalina.sh文件中。你需要使用你自己的Java路径。
JAVA_HOME="/usr/lib/jvm/java-7-oracle"
JRE_HOME="/usr/lib/jvm/java-7-oracle/jre"
7. 在/opt/tomcat7/conf/server.xml文件中使用如下配置。
  <Connector address="127.0.0.1" port="8081" 
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
8. 让Nginx服务器转发Tomcat的应用请求,你需要在Nginx和Tomcat端做相应配置。假如你有个Java的Web应用,叫作webDemo, 在/etc/nginx/sites-available/demos文件中加入如下 location信息。
  location /webDemo/{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8082/webDemo/;
}
9. 在/opt/tomcat7/conf/server.xml文件里面的<Host>标签中,加入以下内容。
 <Context path="/webDemo" docBase="/opt/tomcat7/webapp/webDemo" 
debug="0" reloadable="true" cachingAllowed="false" allowLInking="true" />
10. 假如你有更多其他的应用,可以用以上同样的方法添加应用配置。接下来使用以下命令先启动Tomcat服务器,再重启Nginx服务,这样我们的所有配置过程就结束了。
sudo $CATALINA_HOME/bin/catalina.sh start
sudo /etc/init.d/nginx restart
你可以使用以下命令查看各个端口是否运行着相应的服务器。
sudo netstat -plunt

References