现在的位置: 首页 > 综合 > 正文

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

2016年08月26日 ⁄ 综合 ⁄ 共 3326字 ⁄ 字号 评论关闭

前言

测试机运行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

抱歉!评论已关闭.