在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