在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.shNginx反向代理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数据库;
可以按照网页指引或自行百度继续操作;
原创
部署JPress博客系统
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法