在Ubuntu系统上搭建Java Web开发和生产环境

安装JAVA

 # 华为云提供了一个 JDK 1.8 的镜像
 wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
 ​
 # 解压文件
 tar -xvf jdk-8u202-linux-x64.tar.gz 
 ​
 # 剪切重命名
 sudo mv jdk1.8.0_202/ /usr/local/jdk1.8
 ​
 # 配置 JDK 环境变量
 sudo vim /etc/profile 
 ​
 # 最后一行添加
 #set java enviroment
 JAVA_HOME=/usr/local/jdk1.8
 CLASSPATH=.:$JAVA_HOME/lib.tools.jar
 PATH=$JAVA_HOME/bin:$PATH
 export JAVA_HOME CLASSPATH PATH
 ​
 # 加载修改后文件
 source /etc/profile
 ​
 # 验证安装
 java -version

安装 Maven

 # 切换目录
 cd /usr/local
 ​
 # 下载Maven
 wget https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.tar.gz
 ​
 # 解压
 sudo tar -zxvf apache-maven-3.9.9-bin.tar.gz
 ​
 # 重命名方便后续使用
 sudo mv apache-maven-3.9.9 apache-maven  
 ​
 # 配置环境变量
 sudo vim /etc/profile
 ​
 # 添加内容最下面
 export MAVEN_HOME=/usr/local/apache-maven
 export PATH=$MAVEN_HOME/bin:$PATH
 ​
 # 配置文件生效
 source /etc/profile
 ​
 # 检查版本
 mvn -v

安装JPress

编译安装(整个过程10-15分钟左右)

# 下载Tomcat
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.117/bin/apache-tomcat-9.0.117.tar.gz

# 解压
tar -xvf apache-tomcat-9.0.117.tar.gz

# 移动并重命名
sudo mv apache-tomcat-9.0.117 /opt/tomcat

# 使用 Git 克隆项目
git clone https://FanXing97:37741453e60febc61522249cc654ce74@gitee.com/JPressProjects/jpress.git

# 进入项目目录
cd /usr/local/jpress

# 执行编译命令
mvn clean package

# 编译完成后生成的 .war 文件位于(存放位置)
/usr/local/jpress/starter-tomcat/target/starter-tomcat-5.0.war

# 复制 war 包到 Tomcat 的 webapps 目录
cp starter-tomcat/target/starter-tomcat-5.0.war /opt/tomcat/webapps/

# (可选)重命名为ROOT.war,这样可以直接通过根路径访问
cd /opt/tomcat/webapps/
mv ROOT ROOT.bak
sudo mv starter-tomcat-5.0.war ROOT.war

# 进入 Tomcat bin 目录
cd /opt/tomcat/bin

# 启动 Tomcat(如果已启动,先停止再启动)
./shutdown.sh			# 先关闭
./startup.sh			# 在启动

# 访问(根据是否重命名选择)
# 如果重命名为ROOT.war:
http://你的服务器IP:8080/
# 如果没有重命名:
http://你的服务器IP:8080/starter-tomcat-5.0/

修改配置文件方式

 # 修改核心配置文件切换目录
 cd /opt/tomcat/conf
 ​
 # 修改文件
 sudo vim server.xml
 ​
 # 修改 HTTP 访问端口 找到 <Connector> 标签,修改 port 属性。例如,将默认的 8080 改为 8088:
 <Connector port="8088" protocol="HTTP/1.1"
            connectionTimeout="20000"
            redirectPort="8443" />
            
 # 修改关闭 Tomcat 的端口和命令(增强安全性)找到 <Server> 标签,修改 port 和 shutdown 属性
 # '建议'将 shutdown 的默认值 SHUTDOWN 改为一个复杂的字符串,以防止通过默认端口和命令远程关闭服务。
 <Server port="8006" shutdown="ComplexShutdownKey">
 ​
 # 保存文件并重启 Tomcat 修改配置后,必须重启 Tomcat 才能生效
 cd /opt/tomcat/bin
 ./shutdown.sh                        # 先关闭
 ./startup.sh                         # 再启动

安装Nginx

 # 下载脚本并安装
 wget https://fanxing97.cn/download/Nginx_ubuntu.sh
 ​
 # 执行脚本
 bash Nginx_ubuntu.sh

Nginx反向代理Tomcat

 # 编辑配置文件
 sudo vim /usr/local/nginx/conf/nginx.conf
 ​
 # 添加反向代理配置 (将以下配置添加到 http 块中)
 http {
     # ... 原有配置(如 log_format、sendfile 等)保持不变 ...
 ​
     # 反向代理配置 - 站点 www.a.com
     server {
         listen       80;
         listen       [::]:80;
         server_name  www.a.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;
         }
     }
 ​
     # 反向代理配置 - 站点 www.b.com
     server {
         listen       80;
         listen       [::]:80;
         server_name  www.b.com;
 ​
         location / {
             proxy_pass http://127.0.0.1:8081;
             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;
         }
     }
 }
 ​
 # 检查配置是否正确
 /usr/local/nginx/sbin/nginx -t
 ​
 # 使用 systemctl 重载(推荐)
 sudo systemctl reload nginx
 或
 # 者直接使用 nginx 命令重载
 /usr/local/nginx/sbin/nginx -s reload

配置文件注释解析

 http {
     # ============================================
     # 1. 全局 HTTP 配置区域
     # ============================================
     # 注意:此处原本可能有 log_format、sendfile 等基础配置
     # 这些配置会作用于所有虚拟主机(server 块)
     # ============================================
 ​
     # ============================================
     # 2. 第一个虚拟主机配置 - www.a.com
     # ============================================
     server {
         # 监听 IPv4 的 80 端口(标准 HTTP 端口)
         listen       80;
         # 监听 IPv6 的 80 端口(支持 IPv6 访问)
         listen       [::]:80;
         # 指定该虚拟主机响应的域名
         # 当用户访问 www.a.com 时,此 server 块生效
         server_name  www.a.com;
 ​
         # 根路径的请求处理规则
         location / {
             # 反向代理:将请求转发给本机 8080 端口
             # 假设后端服务运行在 127.0.0.1:8080
             proxy_pass http://127.0.0.1:8080;
 ​
             # ----- 以下为转发给后端的请求头设置 -----
             # 传递原始 Host 头(保持客户端请求的域名)
             proxy_set_header Host $host;
             
             # 传递客户端真实 IP(Nginx 直连客户端时使用)
             proxy_set_header X-Real-IP $remote_addr;
             
             # 传递完整的代理链 IP(如果经过多层代理)
             # $proxy_add_x_forwarded_for 会追加当前客户端 IP
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             
             # 传递原始请求协议(http 或 https)
             # 帮助后端判断是否为加密连接
             proxy_set_header X-Forwarded-Proto $scheme;
         }
     }
 ​
     # ============================================
     # 3. 第二个虚拟主机配置 - www.b.com
     # ============================================
     server {
         # 同样监听 IPv4 和 IPv6 的 80 端口
         listen       80;
         listen       [::]:80;
         # 响应的域名是 www.b.com
         server_name  www.b.com;
 ​
         location / {
             # 反向代理到本机 8081 端口(不同的后端服务)
             proxy_pass http://127.0.0.1:8081;
             
             # 与上面的代理头设置完全一致
             # 这样后端服务能获取到客户端的真实信息
             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;
         }
     }
 }

链接Mysql

 如果想要正常使用博客还需要链接mysql数据库;
 可以按照网页指引或自行百度继续操作;