在CentOS上使用Tomcat和Nginx部署Java Web项目,可以充分利用Tomcat的应用服务器功能和Nginx的反向代理及负载均衡能力,以下是详细的步骤和配置指南:
一、安装Tomcat
1、配置Java环境:
卸载系统自带的OpenJDK:
sudo yum remove java1.7.0openjdkheadless y
从ORACle官网下载最新版本的JDK(如jdk8u261),并解压到指定目录:
wget https://download.oracle.com/otn/java/jdk/8u261b12/a4634525489241b9a9e1aa73d9e118e6/jdk8u261linuxx64.tar.gz tar zvxf jdk8u261linuxx64.tar.gz C /usr/local/
配置环境变量:
echo 'export JAVA_HOME=/usr/local/jdk1.8.0_261' >> ~/.bashrc echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc source ~/.bashrc
2、安装Tomcat:
从Apache Tomcat官网下载Tomcat 9.0版本,并解压到指定目录:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat9/v9.0.38/bin/apachetomcat9.0.38.tar.gz tar zvxf apachetomcat9.0.38.tar.gz C /usr/local/
进入Tomcat的bin目录,启动Tomcat:
cd /usr/local/apachetomcat9.0.38/bin ./startup.sh
检查Tomcat是否成功启动,可以通过浏览器访问http://<your_server_ip>:8080,查看Tomcat欢迎页面。
二、安装Nginx
1、安装依赖库:
sudo yum install y gcc pcre pcredevel zlib zlibdevel openssl openssldevel
2、下载并编译Nginx:
从Nginx官网下载稳定版源码包:
wget http://nginx.org/download/nginx1.21.6.tar.gz tar zvxf nginx1.21.6.tar.gz C /usr/local/
进入Nginx源码目录,执行configure命令:
cd /usr/local/nginx1.21.6 ./configure prefix=/usr/local/nginx
编译并安装Nginx:
make && make install
3、启动Nginx:
/usr/local/nginx/sbin/nginx
检查Nginx是否成功启动,可以通过浏览器访问http://<your_server_ip>,查看Nginx欢迎页面。
三、配置Nginx反向代理Tomcat
1、编辑Nginx配置文件:
vim /usr/local/nginx/conf/nginx.conf
修改或添加以下配置,将请求代理到Tomcat:
server { listen 80; server_name your_server_ip; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header XRealIP $remote_addr; proxy_set_header XForwardedFor $proxy_add_x_forwarded_for; proxy_set_header XForwardedProto $scheme; } }
2、重启Nginx:
/usr/local/nginx/sbin/nginx s reload
四、设置开机自启动
对于Tomcat和Nginx,可以通过以下命令设置为系统服务,使其在系统启动时自动运行:
1、设置Tomcat为系统服务:
cp /usr/local/apachetomcat9.0.38/bin/startup.sh /etc/init.d/tomcat chmod +x /etc/init.d/tomcat chkconfig add tomcat
2、设置Nginx为系统服务:
cp /usr/local/nginx/sbin/nginx /etc/init.d/nginx chmod +x /etc/init.d/nginx chkconfig add nginx
常见问题解答(FAQs)
Q1:如何更改Tomcat默认端口号?
A1:编辑/usr/local/apachetomcat9.0.38/conf/server.xml
文件,找到以下内容并修改:
<Connector port="8080" ... />
将其改为所需的端口号,例如8088
,然后重新启动Tomcat:
/usr/local/apachetomcat9.0.38/bin/shutdown.sh /usr/local/apachetomcat9.0.38/bin/startup.sh
Q2:如何配置Nginx以支持HTTPS?
A2:首先需要获取SSL证书(可以是自签名证书或由CA签发的证书),在Nginx配置文件中添加HTTPS服务器块:
server { listen 443 ssl; server_name your_server_ip; ssl_certificate /path/to/your_certificate.crt; ssl_certificate_key /path/to/your_certificate.key; location / { proxy_pass http://localhost:8080; ... } }
重启Nginx使配置生效:
/usr/local/nginx/sbin/nginx s reload