使用nginx或http反向代理tomcat

一、LNT:Linux Nginx Tomcat

原理:Client (http) --> nginx (reverse proxy)(http) --> tomcat (http connector)
1、配置tomcat
配置java,去oracle官网下载JDK1.8的软件包

[root@centos7 app]# ls
jdk-8u161-linux-x64.tar.gz

把JDK解压至/usr/local目录下,并创建软链接

[root@centos7 app]# tar -xf jdk-8u161-linux-x64.tar.gz -C /usr/local
[root@centos7 app]# ln -sv jdk1.8.0_161  java-1.8.0
[root@centos7 local]# ll java-1.8.0
lrwxrwxrwx 1 root root 13 12月 31 21:38 java-1.8.0 -> jdk1.8.0_161/

配置java的环境变量

[root@centos7 local]# vim  /etc/profile.d/java_path.sh 
JAVA_HOME=/usr/local/java-1.8.0
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

2、安装tomcat,这里安装的是tomcat8.5.49版本的。
解压安装包,把安装包解压到/usr/local目录下。

[root@centos7 local]# tar xf /data/app/apache-tomcat-8.5.49.tar.gz -C /usr/local

创建软链接

[root@centos7 local]# ln -sv apache-tomcat-8.5.49 tomcat
[root@centos7 local]# ll tomcat
lrwxrwxrwx 1 root root 21 12月 31 23:52 tomcat -> apache-tomcat-8.5.49/

配置tomcat环境变量

[root@centos7 local]# cat /etc/profile.d/tomcat_path.sh 
CATALINA_BASE=/usr/local/tomcat
PATH=$PATH:$CATALINA_BASE/bin
export CATALINA_BASE PATH

创建tomcat系统用户,因为运行tomcat进程要以tomcat的身份来运行(也可以以root身份运行,不过建议以tomcat身份运行比较好)

[root@centos7 local]# useradd -r tomcat
[root@centos7 local]# chown -R tomcat.tomcat /usr/local/apache-tomcat-8.5.49/
[root@centos7 local]# ll apache-tomcat-8.5.49/
总用量 124
drwxr-x--- 2 tomcat tomcat  4096 12月 31 23:52 bin
-rw-r----- 1 tomcat tomcat 19318 11月 18 02:48 BUILDING.txt
drwx------ 3 tomcat tomcat   276 1月   1 19:43 conf
-rw-r----- 1 tomcat tomcat  5407 11月 18 02:48 CONTRIBUTING.md
drwxr-x--- 2 tomcat tomcat  4096 12月 31 23:52 lib
-rw-r----- 1 tomcat tomcat 57011 11月 18 02:48 LICENSE
drwxr-x--- 2 tomcat tomcat   239 1月   1 18:26 logs
-rw-r----- 1 tomcat tomcat  1726 11月 18 02:48 NOTICE
-rw-r----- 1 tomcat tomcat  3255 11月 18 02:48 README.md
-rw-r----- 1 tomcat tomcat  7136 11月 18 02:48 RELEASE-NOTES
-rw-r----- 1 tomcat tomcat 16262 11月 18 02:48 RUNNING.txt
drwxr-x--- 2 tomcat tomcat    30 12月 31 23:52 temp
drwxr-x--- 8 tomcat tomcat    93 1月   1 12:46 webapps
drwxr-x--- 3 tomcat tomcat    22 1月   1 00:04 work

启动tomcat

[root@centos7 local]# su - tomcat -c "catalina.sh start"
[root@centos7 local]# ps -aux | grep java
tomcat       9483  0.3  9.3 3011936 175500 pts/0  Sl   18:06   1:02 /usr/local/java-1.8.0/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root      13397  0.0  0.0 112676   980 pts/1    S+   23:07   0:00 grep --color=auto java

部署测试站点,tomcat的默认站点路径是/usr/local/tomcat/webapps,因此在此目录下新建一个test文件夹,用于放置测试页面及一些相关配置文件等。

[root@centos7 webapps]# mkdir test
[root@centos7 webapps]# mkdir  -pv  /usr/local/tomcat/webapps/test/{classes,lib,WEB-INF}

创建index.jsp文件

[root@centos7 test]# vim index.jsp 
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
<head>
<title>Test Page</title>
</head>
<body>
<% out.println("hello world");%>
</body>
</html>

访问测试
在这里插入图片描述
在这里插入图片描述

2、配置nginx反代

安装nginx,安装在tomcat服务的主机上,也可以安装在另外一台主机

[root@centos7 test]# yum install nginx
[root@centos7 test]# systemctl start nginx

编辑配置文件/etc/nginx/conf.d/tomcat_proxy.conf ,配置反代至后端的tomcat主机。

[root@centos7 conf.d]# vim /etc/nginx/conf.d/tomcat_proxy.conf 

server {
        listen 81;
        server_name  www.tomcat.com;
        #root         /usr/share/nginx/html;

        location / {
                proxy_pass http://192.168.239.128:8080/test/;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

}

通过上面的nginx配置信息可以知道,nginx监听在81端口上,当客户端访问81端口时就反代至后端的tomcat主机。因此重启nginx服务,客户端即可访问到。
注意:此处访问的是81端口
在这里插入图片描述
二、LAMT:Linux Apache(httpd) Tomcat
配置HTTP反代,要使用HTTP做反向代理,得确保加载proxy相关的模块。使用httpd -M可以列出HTTP动态加载的模块。其中就有关于反向代理的模块,还包含了反向代理支持的各种协议模块。

[root@centos7 conf.d]# httpd -M | grep proxy
 proxy_module (shared)   ##HTTP代理模块
 proxy_ajp_module (shared)   ##适配ajp协议客户端
 proxy_balancer_module (shared)
 proxy_connect_module (shared)
 proxy_express_module (shared)
 proxy_fcgi_module (shared)
 proxy_fdpass_module (shared)
 proxy_ftp_module (shared)
 proxy_http_module (shared)   ##适配http协议客户端;
 proxy_scgi_module (shared)
 proxy_wstunnel_module (shared)

配置proxy_http_module代理
原理:Client (http) --> httpd (proxy_http_module)(http) --> tomcat (http connector)
1、配置虚拟主机,虚拟主机监听在81端口上。

[root@centos7 conf.d]# vim /etc/httpd/conf.d/tomcat_proxy.conf
listen 81
<VirtualHost *:81>
  #DocumentRoot "/var/www/html/sitea"
  ServerName www.tomcat-proxy.com
  ProxyRequests Off
  ProxyVia        On
  ProxyPreserveHost On
  <Proxy *>
        Require all granted
  </Proxy>
  ProxyPass / http://192.168.239.128:8080/test/
  ProxyPassReverse / http://192.168.239.128:8080/test/
  <Location />
        Require all granted
  </Location>
</VirtualHost>

2、在客户端上编辑/etc/hosts,解析域名。

[root@centos7 conf.d]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 centos7.cwj.com
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.239.128  www.tomcat-proxy.com

3、客户端访问
在这里插入图片描述
配置proxy_ajp_module代理
1、HTTP配置ajp代理,首先要加载ajp模块。

[root@centos7 conf.d]# httpd -M | grep proxy
 proxy_module (shared)
 proxy_ajp_module (shared)

2、配置AJP代理的虚拟主机,
注意:这里使用的是ajp协议,tomcat使用ajp协议时时8009端口

[root@centos7 conf.d]# vim tomcat_ajp_proxy.conf 

listen 89
<VirtualHost *:89>
  #DocumentRoot "/var/www/html/sitea"
  ServerName www.tomcat-ajp-proxy.com
  ProxyRequests     Off
  ProxyVia          On
  ProxyPreserveHost On
  <Proxy *>
        Require all granted
  </Proxy>
  ProxyPass / ajp://192.168.239.128:8009/test/
  ProxyPassReverse / ajp://192.168.239.128:8009/test/
  <Location />
        Require all granted
  </Location>
</VirtualHost>

3、客户端访问

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值