概述
CentOS使用Nginx反向代理Tomcat部署Java Web项目
今天我舍友问我:CSDN是什么意思?床上等你吗?
文章目录
- CentOS使用Nginx反向代理Tomcat部署Java Web项目
- 一、安装Tomcat9.0
- 1.配置Java环境
- 2.安装Tomcat
- 二、安装Nginx
- 1. 编译工具及库文件
- 2.安装PCRE
- 3.安装Nginx
- 4.编辑Nginx配置文件
- 三.小结
一、安装Tomcat9.0
1.配置Java环境
先卸载系统自带的恶心人的openjdk,方法的话比较暴力,使用rpm找到所有java有关的包,一个一个卸载就可以了。
[raichu@localhost bin]$ rpm -qa | grep java
java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
tzdata-java-2018e-3.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64
[raichu@localhost bin]$ sudo yum remove java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
一直卸载到rpm -qa | grep java什么都不显示为止。
然后从Java官网下载JDK,如果没有特殊要求的话就下载最新版吧,Tomcat的最新版和JDK最新版同时使用不会出现兼容问题
cd ~
wget https://download.oracle.com/otn/java/jdk/8u261-b12/a4634525489241b9a9e1aa73d9e118e6/jdk-8u261-linux-x64.tar.gz?AuthParam=1601028104_c08130b1af5d94a8e19e7cad46402807
#(需要登录才能下载)
好像wget下载下来之后的文件后面还是带着AuthParam,重命名一下之后就可以进行解压了
mv jdk-8u261-linux-x64.tar.gz?AuthParam=1601028104_c08130b1af5d94a8e19e7cad46402807 jdk-8u261-linux-x64.tar.gz
tar -zvxf jdk-8u261-linux-x64.tar.gz
然后配置环境变量
[raichu@localhost jdk1.8.0_261]$ sudo vim /etc/profile
在末尾追加以下内容(JAVA_HOME填jdk的实际位置,这里只是演示)
#java
export JAVA_HOME=/home/raichu/jdk1.8.0_261
export PATH=$PATH:$JAVA_HOME/bin
保存并退出后执行
[raichu@localhost jdk1.8.0_261]$ source /etc/profile
查看java版本,看到现在java使用的已经不是恶心人的openjdk了
[raichu@localhost jdk1.8.0_261]$ java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
2.安装Tomcat
从官网下载tomcat最新版9.0,解压并进入文件夹
[raichu@localhost ~]$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.38/bin/apache-tomcat-9.0.38.tar.gz
[raichu@localhost ~]$ tar -zvxf apache-tomcat-9.0.38.tar.gz
[raichu@localhost ~]$ cd apache-tomcat-9.0.38/bin
[raichu@localhost bin]$ ./startup.sh
Using CATALINA_BASE: /home/raichu/apache-tomcat-9.0.38
Using CATALINA_HOME: /home/raichu/apache-tomcat-9.0.38
Using CATALINA_TMPDIR: /home/raichu/apache-tomcat-9.0.38/temp
Using JRE_HOME: /home/raichu/jdk1.8.0_261
Using CLASSPATH: /home/raichu/apache-tomcat-9.0.38/bin/bootstrap.jar:/home/raichu/apache-tomcat-9.0.38/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
其实到这儿如果不出错的话,tomcat已经在监听内网的8080端口了,我用的finalshell可以很清楚的看到java占用了内存和CPU,说明正常的运行了,如果出错,tomcat退出了,可以查看logs/catalina.out来检查错误报告
二、安装Nginx
关于Nginx的安装我主要是借鉴的菜鸟教程
1. 编译工具及库文件
这步没啥好说的,用yum安装一下就可以。
sudo yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2.安装PCRE
依次执行下列命令,即可完成PCRE编译。最喜欢看执行configure和make的时候刷刷刷冒出来的代码了,很有大黑客的感觉
cd /usr/local/src/
su root
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure
make && make install
执行完后,如果能正常显示PCRE版本即可
[raichu@localhost pcre-8.35]$ pcre-config --version
8.35
3.安装Nginx
还是从官网下载Nginx的源代码, 解压,配置,编译,不再赘述,如果上一步PCRE位置正确的话,这一步的配置代码可以直接复制。等待编译完成就算是成功安装了Nginx
cd /usr/local/src/
su root
wget http://nginx.org/download/nginx-1.6.2.tar.gz
tar -zvxf nginx-1.6.2.tar.gz
cd nginx-1.6.2.tar.gz/
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
make && make install
安装后尝试显示一下版本
[root@localhost nginx-1.6.2]$ /usr/local/webserver/nginx/sbin/nginx -v
nginx version: nginx/1.6.2
为了以后便于操作nginx,我还建立了一个软连接,软连接可以通俗的理解成“快捷方式”,放到/usr/bin下便于直接输入nginx来调用nginx应用,而不是每次都要输入/usr/local/webserver/nginx/sbin/nginx,关于软连接详细的讲解可以看这篇文章
ln /usr/local/webserver/nginx/sbin/nginx /usr/bin
4.编辑Nginx配置文件
既然要进行反向代理,那还得说一下反向代理的原理。
关于正向代理,应该有一定的了解了。
代理服务器Proxy和用户Client建立连接后再请求服务器Server,通俗点说就是起到了隐藏用户Client的用途,或者说当Client和Server不能直接建立连接的时候起到桥梁的作用(科学上网就是基于这种原理来做的)
而反向代理则是将整个过程反了过来,隐藏服务器server,很多时候需要反向代理都是因为服务器Server太弱小,其安全程度低或能力不够强,不足以直接和大量client进行连接,Proxy可以将请求分配到空闲的server上,并帮助server分担一些压力(例如Nginx代理静态资源,Tomcat只解析动态资源)。
为了反向代理,我们需要让Nginx作为Proxy监听80端口,并将80端口的请求转发至内网的8080端口,来让Tomcat处理。我们可以先建立一个用户用于Nginx的服务
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
然后配置nginx.conf
vi /usr/local/webserver/nginx/conf/nginx.conf
我只用了最简单的配置,简单的配置了8080端口的反向代理,关于这个文件的具体配置方法,网络上有很多教程。
user www www;#用户有关信息
worker_processes 1;#这里和CPU核心数一致
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit;#错误文件目录和等级
pid /usr/local/webserver/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
server
{
listen 80;
location /{
proxy_pass http://127.0.0.1:8080;#反向代理的内网端口
proxy_read_timeout 60;
}
}
}
配置好配置文件之后,可以使用Nginx引以为傲的热加载进行配置,使用nginx -t命令测试配置文件
[root@localhost raichu]$ nginx -t
nginx: the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful
如果测试通过,就可以使用nginx -s reopen重启nginx服务,然后就可以尝试访问了,如果访问不了可能是防火墙的问题,可以尝试用lynx在ssh里去访问http://127.0.0.1:80 如果内网可以访问而外网无法访问,可以通过这个教程来打开80端口。
三.小结
使用Nginx反向代理的关键就在于写好Nginx的配置文件,其余的都是很基础的安装。除了Tomcat,Nginx也可以反向代理gunicorn这种Python服务器,方法类似,如果遇到任何问题,欢迎评论讨论。
最后
以上就是聪明跳跳糖为你收集整理的CentOS使用Nginx反向代理Tomcat部署Java Web项目CentOS使用Nginx反向代理Tomcat部署Java Web项目一、安装Tomcat9.0二、安装Nginx三.小结的全部内容,希望文章能够帮你解决CentOS使用Nginx反向代理Tomcat部署Java Web项目CentOS使用Nginx反向代理Tomcat部署Java Web项目一、安装Tomcat9.0二、安装Nginx三.小结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复