Nginx反向代理Tomcat服务器(linux)

先说效果,可以本地访问一个自己起的域名然后通过Nginx服务器转发到Tomcat服务器上(本质:请求转发)

文章分四部分

  • 基本介绍
  • Tomcat环境搭建
  • Nginx环境搭建
  • 打通Nginx和Tomcat连接

一、基本介绍

  • 首先安装Tomcat服务器,运行访问正常之后,本地host一个域名(自己起的)到Tomcat服务器,访问正常后Tomcat环境准备完毕;

  • 其次Nginx安装运行出现 Welcome to Nginx界面为正常;

  • 最后连接部分需要在Nginx配置文件中加上Tomcat的IP和端口、以及自己起的域名,测试连通。

二、Tomcat及环境搭建

Tomcat和JDK包

链接:https://pan.baidu.com/s/1VTqPqRYOVHy0TBTZ6cS3xA
提取码:lbju
内容如下:
apache-tomcat-9.0.40.tar.gz
jdk-11.0.9_linux-x64_bin.tar.gz

JDK

配置JDK环境,解压JDK包
tar -zxvf jdk-11.0.9_linux-x64_bin.tar.gz

配置路径

打开vim /etc/profile,添加配置

export JAVA_HOME=/opt/tomcat/jdk-11.0.9			#这个是jdk的位置
export JAVA_BIN=$JAVA_HOME$/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

验证java -version出现下面文字说明成功

java version "11.0.9" 2020-10-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.9+7-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.9+7-LTS, mixed mode)

参考:Linux系统下安装jdk及环境配置(两种方法)

Tomcat

解压 tar -zxvf apache-tomcat-9.0.40.tar.gz

启动

转到目录/apache-tomcat-9.0.40/bin下,./startup.sh启动Tomcat,./shutdown.sh关闭Tomcat

验证启动ps aux | grep tomcat这个Tomcat换成别的就可以测试别的程序是否启动。

出现下面启动成功

root       66901 36.2  1.0 9351748 169140 pts/0  Sl   20:00   0:07 /opt/tomcat/jdk-11.0.9/bin/java -Djava.util.logging.config.file=/opt/tomcat/apache-tomcat-9.0.40/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 /opt/tomcat/apache-tomcat-9.0.40/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-9.0.40/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat/apache-tomcat-9.0.40 -Dcatalina.home=/opt/tomcat/apache-tomcat-9.0.40 -Djava.io.tmpdir=/opt/tomcat/apache-tomcat-9.0.40/temp org.apache.catalina.startup.Bootstrap start
root       66959  0.0  0.0  12320  1084 pts/0    S+   20:00   0:00 grep --color=auto tomcat

此时我们可以直接使用***.***.***.***:8080的形式访问(***.***.***.***是ip)会出现如下图片
在这里插入图片描述
下面来看Tomcat的配置文件:
vim /opt/tomcat/apache-tomcat-9.0.40/conf/server.xml

<Connector port="8080" protocol="HTTP/1.1"		#第一个8080是tomcat的端口,可以修改
               connectionTimeout="20000"
               redirectPort="8443" />

Tomcat的web页面
/opt/tomcat/apache-tomcat-9.0.40/webapps/ROOT此路径下的index.jsp文件,有兴趣可以修改一下。

host测试
windows电脑:C:\Windows\System32\drivers\etc路径下的hosts文件,由于正规的域名是要买的,我们只能用在hosts文件里配置的方式来使用域名加端口的方式来爽一下(上面使用的是IP加端口的方式)

打开housts文件,输入Tomcat 所在电脑的ip,空格后面接自己起的域名保存后,浏览器上使用域名加端口的方式就能访问Tomcat。

hosts配置形式***.***.***.*** www.jkjk66.top
浏览器访问形式:www.jkjk66.top:8080

三、Nginx 及环境搭建

Nginx和pcre

链接:https://pan.baidu.com/s/1RhcboRItJAQv0Cxn_AP7dQ
提取码:vx8c
内容如下:
nginx-1.18.0.tar.gz
pcre-8.00.tar

参考:Nginx 系列一:Nginx 服务器的安装部署
参考:PCRE的安装及使用

基础环境配置
yum -y install gcc gcc-c++ automake zlib zlib-devel

解压pcre
tar -zxvf pcre-8.00.tar

出现了pcre-8.00,进入文件夹下
./configure --prefix=/usr/local/pcre-8.00 --libdir=/usr/local/lib/pcre --includedir=/usr/local/include/pcre

编译

有可能make不存在,yum install -y make安装一下

在当前文件夹下使用make

安装 make install

检查

  • ls /usr/local 检查是否有pcre-8.00目录
  • ls /usr/local/lib 检查是否有pcre目录
  • ls /usr/local/include 检查是否有pcre目录

将库文件导入cache:在/etc/ld.so.conf中加入: /usr/local/lib/pcre,然后运行ldconfig

Nginx安装

解压tar -zxvf nginx-1.18.0.tar.gz,完成后出现nginx-1.18.0,为了以后方便,创建文件夹,用来存放nginx相关文件

mkdir nginx-1.18.0-example创建文件夹
chmod a+x nginx-1.18.0-example 赋予操作权限

进入nginx-1.18.0中, 执行./configure --prefix=/opt/nginx/nginx-1.18.0-example其中--prefix 指定了Nginx软件的安装路径。

编译make

安装make install

完成后,nginx-1.18.0-example文件夹下会出现如下文件

[root@localhost nginx-1.18.0-example]# ls -l
总用量 4
drwxr-xr-x. 2 root root 4096 12月  20 03:21 conf
drwxr-xr-x. 2 root root   40 12月  20 03:21 html
drwxr-xr-x. 2 root root    6 12月  20 03:21 logs
drwxr-xr-x. 2 root root   19 12月  20 03:21 sbin

启动nginx [root@localhost nginx-1.18.0-example]# ./sbin/nginx

查看启动ps aux | grep nginx

[root@localhost nginx-1.18.0-example]# ps aux | grep nginx
root      117126  0.0  0.0  35096   420 ?        Ss   21:36   0:00 nginx: master process ./sbin/nginx
root      117127  0.0  0.0  66580  4188 ?        S    21:36   0:00 nginx: worker process
root      117133  0.0  0.0  12320   972 pts/0    S+   21:37   0:00 grep --color=auto nginx

启动成功

浏览器访问 ***.***.***.***(nginx程序所在的电脑的ip)直接访问,出现如下界面则开启成功
在这里插入图片描述
关闭nginx

首先查询nginx的进程号 ps aux | grep nginx

[root@localhost nginx-1.18.0-example]# ps aux | grep nginx
root      117126  0.0  0.0  35096   420 ?        Ss   21:36   0:00 nginx: master process ./sbin/nginx
root      117127  0.0  0.0  66580  4188 ?        S    21:36   0:00 nginx: worker process
root      117133  0.0  0.0  12320   972 pts/0    S+   21:37   0:00 grep --color=auto nginx

关闭kill -INT 117126关闭第一行的主程序master process

再次查询ps aux | grep nginx

[root@localhost nginx-1.18.0-example]# ps aux | grep nginx
root      117133  0.0  0.0  12320   972 pts/0    S+   21:37   0:00 grep --color=auto nginx

关闭成功

四、 打通Nginx和Tomcat连接(在nginx配置tomcat)

打开配置完成的配置文件
vim /opt/nginx/nginx-1.18.0-example/conf/nginx.conf

#user  nobody;
user root; 	#这个地方最好改一下,不然可能会出现权限不够的情况

worker_processes  1;
events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;
    server {								#这是默认的
        listen       80;								
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;			# 那个welcome to Nginx就是这个页面
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
	##########################################################
	#配置www.jkjk66.top:8080 对应的服务监听端口
    upstream tomcat1{
	server ***.***.***.***:8080;#这个***填tomcat的主机ip,端口号如果tomcat配置文件没修改就是8080
	}
    server{
	listen 	80;			#同样监听80端口,因为互联网默认是访问80,所以后面域名访问可以不带端口
	server_name www.jkjk66.top;			#这个是自己起的,后面会使用这个通过nginx访问tomcat
	location / {
		proxy_pass http://tomcat1;			#这个tomcat1和上面的要对应
		#配置默认网页,这里会访问到tomcat1里面的web界面
		index index.jsp;							#tomcat默认的web页面
	}
     }	
     ########################################################
}

配置完成后重新启动nginx,到这**99.99%**已经完成,最后一步将我们自己起的域名在windosw的hosts文件中与nginx所在主机关联起来,就可以了。
在这里插入图片描述
巩固知识的同时,希望能帮助大家,略。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Linux下,可以使用Nginx反向代理Tomcat反向代理的作用是将客户端的请求转发到后端的Tomcat服务器上,并将Tomcat服务器的响应返回给客户端。这样可以提高Tomcat服务器的性能和安全性。 以下是反向代理Tomcat的步骤: 1. 安装NginxTomcat。 2. 配置Tomcat服务器,确保Tomcat服务器可以正常运行。 3. 配置Nginx服务器,将客户端的请求转发Tomcat服务器上。 4. 重启Nginx服务器,验证反向代理是否生效。 具体的步骤如下: 1. 安装NginxTomcat。 可以使用apt-get或yum等包管理器来安装NginxTomcat。例如,在Ubuntu系统上,可以使用以下命令来安装NginxTomcat: ``` sudo apt-get install nginx sudo apt-get install tomcat8 ``` 2. 配置Tomcat服务器,确保Tomcat服务器可以正常运行。 在Tomcat服务器上,需要配置server.xml文件,将Tomcat服务器的端口号改为8081(或其他未被占用的端口号),并启用AJP协议。具体的配置如下: ``` <Connector port="8081" protocol="AJP/1.3" redirectPort="8443" /> ``` 然后,启动Tomcat服务器: ``` sudo service tomcat8 start ``` 3. 配置Nginx服务器,将客户端的请求转发Tomcat服务器上。 在Nginx服务器上,需要编辑nginx.conf文件,添加以下配置: ``` server { listen 80; server_name example.com; location / { proxy_pass http://localhost:8081; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` 这个配置将客户端的请求转发Tomcat服务器的8081端口上。其中,proxy_pass指定了Tomcat服务器的地址和端口号,proxy_set_header指定了一些HTTP头信息,用于传递客户端的真实IP地址和其他信息。 4. 重启Nginx服务器,验证反向代理是否生效。 在Nginx服务器上,执行以下命令重启Nginx服务器: ``` sudo service nginx restart ``` 然后,在浏览器中输入Nginx服务器的IP地址或域名,应该可以看到Tomcat服务器的欢迎页面。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值