Nginx实例之反向代理Tomcat

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx实例之反向代理Tomcat相关的知识,希望对你有一定的参考价值。

本文索引:

  • 引言
  • 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
[[email protected] src]# tar zxvf jdk-8u151-linux-x64.tar.gz 
[[email protected] src]# mv jdk1.8.0_151/ /usr/local/jdk1.8
[[email protected] 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
[[email protected] src]# source /etc/profile
  1. 安装Tomcat
# 下载地址会不断变化,可以https://tomcat.apache.org/download-80.cgi去找对应的二进制安装包(Binary Distributions)
[[email protected] src]# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24.tar.gz
[[email protected] src]# tar zxvf apache-tomcat-8.5.24.tar.gz
[[email protected] src]# mv apache-tomcat-8.5.24 /usr/local/tomcat
  1. 修改配置文件
[[email protected] src]# mkdir -p /data/wwwroot/tomcat_server
[[email protected] src]# cp -rf /usr/local/tomcat/webapps/* /data/wwwroot/tomcat_server
[[email protected] src]# vi /usr/local/tomcat/conf/server.xml
//查找appBase,修改为
appBase="/data/wwroot/tomcat_server"
# /data/wwwroot为网页根目录
  1. 启动tomcat
[[email protected] src]# /usr/local/tomcat/bin/startup.sh 
# 停止tomcat使用/usr/local/tomcat/bin/shutdown.sh 

Nginx反向代理的配置

这里nginx的安装就不写了,比较简单,为了实现代码分离,这里使用了虚拟主机技术。

# 这里由于是测试的关闭,tomcat与nginx是安装在同一个服务器上的,实际工作中可以分开安装
[[email protected] 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

[[email protected] src]# /usr/local/nginx/sbin/nginx -t
[[email protected] src]# /usr/local/nginx/sbin/nginx
# 如果nginx已启动,执行下列代码
[[email protected] src]# /usr/local/nginx/sbin/nginx -s reload

以上是关于Nginx实例之反向代理Tomcat的主要内容,如果未能解决你的问题,请参考以下文章

[Nginx]nginx配置实例_反向代理

3. Nginx配置实例-反向代理

三Nginx反向代理实例

nginx 配置实例-反向代理

nginx之 nginx-1.9.7 + tomcat-8.5.15 反向代理+应用负载均衡 安装配置

Nginx应⽤场景之反向代理