凌峰创科服务平台

Linux如何搭建Java Web服务器?

  1. 准备环境:安装操作系统、Java 开发工具包 和 Web 服务器/应用服务器。
  2. 部署 Web 应用:将你的 Java Web 应用(通常是 WAR 文件)部署到服务器上。
  3. 配置服务器:配置端口、虚拟主机等。
  4. 启动与维护:启动服务器,并学会如何管理其生命周期。

下面我将为你提供一个详细、分步的指南,以最主流和推荐的组合 Ubuntu + JDK 17 + Nginx + Tomcat 10 为例,进行讲解。

Linux如何搭建Java Web服务器?-图1
(图片来源网络,侵删)

场景选择:Nginx + Tomcat (推荐)

这是一个非常流行且强大的组合,被称为“动静分离”架构。

  • Tomcat:作为 Java Web 容器,负责运行你的 Java 代码(Servlet, JSP),它是应用服务器。
  • Nginx:作为反向代理和静态资源服务器,它接收来自外部的所有请求,然后将动态请求(如 .jsp, .do)转发给 Tomcat 处理,而直接自己处理静态请求(如 .css, .js, .jpg, .png)。

优点

  • 高性能:Nginx 在处理静态文件和高并发连接方面远超 Tomcat。
  • 稳定性:Tomcat 专注于处理复杂的 Java 业务逻辑,避免了被静态请求拖垮。
  • 安全性:Nginx 可以作为一道防火墙,隐藏 Tomcat 的具体细节。

第一步:准备 Linux 环境 (以 Ubuntu 22.04 为例)

你需要一个可以访问的 Linux 服务器,你可以使用云服务器(如阿里云、腾讯云)或者虚拟机(如 VirtualBox, VMware)。

  1. 更新系统软件包 打开终端,执行以下命令:

    Linux如何搭建Java Web服务器?-图2
    (图片来源网络,侵删)
    sudo apt update
    sudo apt upgrade -y
  2. 安装 JDK (Java Development Kit) Tomcat 运行需要 Java 环境,我们推荐安装最新的 LTS 版本。

    # 安装 OpenJDK 17
    sudo apt install openjdk-17-jdk -y
    # 验证安装
    java -version
    # 应该显示类似 openjdk version "17.0.x" 的信息
  3. 设置 JAVA_HOME 环境变量 很多应用(包括 Tomcat)需要这个变量来定位 JDK 安装路径。

    # 查找 JDK 的实际安装路径
    # 通常是 /usr/lib/jvm/java-17-openjdk-amd64
    sudo update-alternatives --config java
    # 编辑环境变量配置文件
    sudo nano /etc/environment

    在文件末尾添加以下内容(请将路径替换为你自己的实际路径):

    JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
    PATH="$JAVA_HOME/bin:$PATH"

    Ctrl + X,然后按 Y 保存并退出。

    Linux如何搭建Java Web服务器?-图3
    (图片来源网络,侵删)

    使环境变量立即生效:

    source /etc/environment

第二步:安装和配置 Tomcat

  1. 下载 Tomcat 访问 Tomcat 官网下载页面,下载最新的 Core 版本(Tomcat 10),我们使用 wget 命令下载。

    # 假设下载 Tomcat 10.1.x
    wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.x/bin/apache-tomcat-10.1.x.tar.gz

    注意:请将 1.x 替换为最新的稳定版本号。

  2. 解压并移动 Tomcat

    # 解压
    tar -zxvf apache-tomcat-10.1.x.tar.gz
    # 创建一个通用的目录来存放 Tomcat
    sudo mkdir -p /opt/tomcat
    # 将解压后的文件夹移动到 /opt/tomcat 并重命名
    sudo mv apache-tomcat-10.1.x /opt/tomcat/tomcat10
    # 设置目录所有者,避免每次都用 root 操作
    sudo chown -R $USER:$USER /opt/tomcat/tomcat10
  3. 配置 Tomcat 环境变量 同样编辑 /etc/environment 文件(或 ~/.bashrc 只对当前用户生效):

    sudo nano /etc/environment

    在文件中添加 CATALINA_HOME

    JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
    CATALINA_HOME="/opt/tomcat/tomcat10"
    PATH="$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH"

    保存并退出,然后执行 source /etc/environment 使其生效。

  4. 启动 Tomcat 并测试

    # 进入 Tomcat 的 bin 目录
    cd /opt/tomcat/tomcat10/bin
    # 启动 Tomcat
    ./startup.sh

    你会看到类似 Using CATALINA_BASE: ... 的输出。

    检查 Tomcat 是否在监听 8080 端口:

    netstat -tuln | grep 8080
    # 或者使用 ss 命令
    ss -tuln | grep 8080

    如果看到 0.0.0:8080::8080,说明启动成功。

    在浏览器中访问 http://<你的服务器IP地址>:8080,你应该能看到 Tomcat 的欢迎页面。

  5. 创建 Tomcat 服务 (Systemd) 为了方便管理(开机自启、重启、停止等),我们将其注册为系统服务。

    sudo nano /etc/systemd/system/tomcat10.service
    [Unit]
    Description=Apache Tomcat 10
    After=network.target
    [Service]
    Type=oneshot
    User=$USER # 使用你的当前用户
    Group=$USER
    Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"
    Environment="CATALINA_HOME=/opt/tomcat/tomcat10"
    Environment="CATALINA_BASE=/opt/tomcat/tomcat10"
    ExecStart=/opt/tomcat/tomcat10/bin/startup.sh
    ExecStop=/opt/tomcat/tomcat10/bin/shutdown.sh
    RemainAfterExit=yes
    [Install]
    WantedBy=multi-user.target

    保存并退出 (Ctrl+X, Y)。

    现在你可以使用 systemctl 命令来管理 Tomcat 了:

    # 重新加载 systemd 配置
    sudo systemctl daemon-reload
    # 启动 Tomcat 服务
    sudo systemctl start tomcat10
    # 设置开机自启
    sudo systemctl enable tomcat10
    # 查看服务状态
    sudo systemctl status tomcat10

第三步:安装和配置 Nginx

  1. 安装 Nginx

    sudo apt install nginx -y
  2. 配置 Nginx 反向代理 我们将为你的 Web 应用创建一个配置文件,假设你的域名是 www.yourdomain.com

    # 创建一个新的配置文件
    sudo nano /etc/nginx/sites-available/yourdomain

    粘贴以下配置:

    server {
        listen 80;
        server_name www.yourdomain.com; # 替换成你的域名或 IP
        # 访问日志和错误日志
        access_log /var/log/nginx/yourdomain.access.log;
        error_log /var/log/nginx/yourdomain.error.log;
        # 静态资源由 Nginx 直接处理
        # 假设你的应用 WAR 包名为 myapp.war,解压后 WEB-INF 目录下的静态文件路径为 /myapp/
        location /static/ {
            alias /opt/tomcat/tomcat10/webapps/myapp/static/;
            expires 30d; # 缓存30天
        }
        # 所有其他请求都转发给 Tomcat
        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;
        }
    }

    说明

    • server_name:替换成你的实际域名或 IP 地址。
    • `location
分享:
扫描分享到社交APP
上一篇
下一篇