1. 程式人生 > >Nginx實例之反向代理Tomcat

Nginx實例之反向代理Tomcat

header mir forward 測試的 -s 安裝jdk apache 代理 off

本文索引:

  • 引言
  • tomcat的搭建與配置
  • Nginx反向代理的配置

引言

JSP(Java Server Pages)是目前采用的一種動態網頁技術,它既可以運行在Linux上,也可以運行在其他平臺上。JSP文件由傳統的網頁HTML文件內插入Java程序段和JSP標記組成。目前支持JSP技術規範最好、最流行的是Apche軟件基金會下的web應用服務器 --- Tomcat。

相對而言,nginx處理靜態文件的能力要比apache更好,同時也意味著比tomcat好(畢竟是一家)。通過使用nginx反向代理Tomcat服務器,實現加速網頁訪問的效果。

Tomcat的搭建與配置

這裏使用的都是使用二進制包,搭建簡單

  1. 安裝jdk
# 將下載壓縮包被放置在/usr/local/src/目錄下
# 下載鏈接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
[root@localhost src]# tar zxvf jdk-8u151-linux-x64.tar.gz 
[root@localhost src]# mv jdk1.8.0_151/ /usr/local/jdk1.8
[root@localhost src]# vim /etc/profile
//在最後追加
JAVA_HOME=/usr/local/jdk1.8/
JAVA_BIN=/usr/local/jdk1.8/
JRE_HOME=/usr/local/jdk1.8/jre
PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin
CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar
[root@localhost src]# source /etc/profile
  1. 安裝Tomcat
# 下載地址會不斷變化,可以https://tomcat.apache.org/download-80.cgi去找對應的二進制安裝包(Binary Distributions)
[root@localhost src]# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24.tar.gz
[root@localhost src]# tar zxvf apache-tomcat-8.5.24.tar.gz
[root@localhost src]# mv apache-tomcat-8.5.24 /usr/local/tomcat
  1. 修改配置文件
[root@localhost src]# mkdir -p /data/wwwroot/tomcat_server
[root@localhost src]# cp -rf /usr/local/tomcat/webapps/* /data/wwwroot/tomcat_server
[root@localhost src]# vi /usr/local/tomcat/conf/server.xml
//查找appBase,修改為
appBase="/data/wwroot/tomcat_server"
# /data/wwwroot為網頁根目錄
  1. 啟動tomcat
[root@localhost src]# /usr/local/tomcat/bin/startup.sh 
# 停止tomcat使用/usr/local/tomcat/bin/shutdown.sh 

Nginx反向代理的配置

這裏nginx的安裝就不寫了,比較簡單,為了實現代碼分離,這裏使用了虛擬主機技術。

# 這裏由於是測試的關閉,tomcat與nginx是安裝在同一個服務器上的,實際工作中可以分開安裝
[root@localhost src]# vim /usr/local/nginx/conf/vhost/ngx_tomcat.conf
upstream tomcat_server 
{
    server 127.0.0.1:8080;
    # tomcat服務器安裝在其他服務器,使用ip:port替代127.0.0.1:8080即可
}
server
{
    listen 80;
    server_name www.test.com;
    index index.html index.htm index.jsp
    root /data/wwwroot/tomcat_server;

    location ~ .*\.(jsp|jspx|do)?
    {
        proxy_pass http://tomcat_server;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }

    location ~ .*\.(jpg|gif|jpeg|png|bmp|swf)$
    {
        expires 30d;
    }

    location ~ .*\.(css|js)$
    {
        expires 1h;
    }

    # 關閉nginx日誌,日誌由tomcat自己記錄
    access_log off;
}

啟動nginx

[root@localhost src]# /usr/local/nginx/sbin/nginx -t
[root@localhost src]# /usr/local/nginx/sbin/nginx
# 如果nginx已啟動,執行下列代碼
[root@localhost src]# /usr/local/nginx/sbin/nginx -s reload

Nginx實例之反向代理Tomcat