插件窝 干货文章 linux服务器部署tomcat和Nginx的方法

linux服务器部署tomcat和Nginx的方法

Tomcat sudo Nginx 配置 763    来源:    2025-04-26

Linux服务器部署Tomcat和Nginx的方法

一、部署Tomcat

1. 安装Java环境

# 安装OpenJDK(以Ubuntu为例)
sudo apt update
sudo apt install openjdk-11-jdk

# 验证安装
java -version

2. 下载并安装Tomcat

# 下载Tomcat(以9.0版本为例)
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz

# 解压
tar -xzvf apache-tomcat-9.0.68.tar.gz
sudo mv apache-tomcat-9.0.68 /opt/tomcat

3. 配置Tomcat

# 创建tomcat用户
sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat

# 设置权限
sudo chown -R tomcat: /opt/tomcat
sudo chmod +x /opt/tomcat/bin/*.sh

# 创建systemd服务文件
sudo nano /etc/systemd/system/tomcat.service

将以下内容添加到tomcat.service文件中:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

4. 启动Tomcat服务

sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat

# 检查状态
sudo systemctl status tomcat

5. 配置防火墙

sudo ufw allow 8080

二、部署Nginx

1. 安装Nginx

# Ubuntu/Debian
sudo apt install nginx

# CentOS/RHEL
sudo yum install epel-release
sudo yum install nginx

2. 启动Nginx

sudo systemctl start nginx
sudo systemctl enable nginx

# 检查状态
sudo systemctl status nginx

3. 配置防火墙

sudo ufw allow 'Nginx Full'

三、配置Nginx反向代理到Tomcat

1. 创建Nginx配置文件

sudo nano /etc/nginx/conf.d/tomcat.conf

添加以下内容(根据实际域名修改):

server {
    listen 80;
    server_name example.com www.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

2. 测试并重载Nginx配置

sudo nginx -t
sudo systemctl reload nginx

四、可选配置

1. 配置Tomcat管理界面

# 编辑tomcat-users.xml
sudo nano /opt/tomcat/conf/tomcat-users.xml

<tomcat-users>标签内添加:

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="securepassword" roles="manager-gui,admin-gui"/>

2. 限制管理界面访问

# 编辑context.xml文件
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

注释掉或修改Valve部分以限制IP访问:

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
       allow="127\.0\.0\.1|192\.168\.1\.\d+|your.public.ip" />

五、验证部署

  1. 访问Nginx配置的域名(如http://example.com)应该显示Tomcat默认页面
  2. 访问http://example.com/manager/html可以进入管理界面(使用配置的用户名密码登录)

六、安全建议

  1. 配置SSL证书(使用Let's Encrypt或购买商业证书)
  2. 定期更新Tomcat和Nginx到最新版本
  3. 限制管理界面的访问IP
  4. 使用强密码替换默认凭据
  5. 考虑配置Tomcat的AJP连接器安全设置