要将 user-service
部署到服务器上并且使其他服务可以调用,通常需要以下几个步骤。使用的是一台 linux服务器,并且项目是 Spring Boot 应用程序。以下是详细的部署步骤:
1. 准备工作
安装 JDK
确保服务器上安装了 Java 运行环境(JDK)。可以通过以下命令检查:
java -version
如果未安装 Java,可以执行以下命令来安装:
Ubuntu/Debian 系统:
sudo apt update
sudo apt install openjdk-17-jdk
CentOS 系统:
sudo yum update
sudo yum install java-17-openjdk-devel
安装完成后,检查 Java 安装是否成功:
java -version
2. 将 JAR 包上传到服务器
使用 SCP 将 JAR 包上传到服务器
你可以通过 scp
命令将 JAR 包上传到服务器。
在本地终端中执行以下命令将 JAR 包上传:
scp /path/to/your/user-service.jar username@your-server-ip:/path/on/server/
/path/to/your/user-service.jar
是你本地 JAR 包的路径,/path/on/server/
是服务器上存放 JAR 包的路径。
3. 配置并运行 JAR 包
运行 JAR 包
登录到服务器后,进入 JAR 包所在的目录,并使用 java -jar
命令运行 JAR 包。
cd /path/on/server/
java -jar user-service.jar
这将在前台启动服务。如果你想让服务在后台运行,并且在关闭终端后继续运行,可以使用 nohup
命令:
nohup java -jar user-service.jar > user-service.log 2>&1 &
这会将日志输出到 user-service.log
文件中,并在后台运行服务。
查看服务状态
你可以通过以下命令查看服务是否成功启动:
tail -f user-service.log
如果服务启动成功,会看到 Spring Boot 启动的相关日志信息。
如果服务器启用了防火墙,确保开放应用运行的端口。假设 user-service
运行在默认的 8080
端口,你可以使用以下命令开放该端口。
Ubuntu/Debian 系统(使用 ufw
):
sudo ufw allow 8080/tcp
sudo ufw reload
CentOS 系统(使用 firewalld
):
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
5. 配置反向代理(可选)
如果你想通过域名或子域名访问 user-service
,可以配置 Nginx" data-pretit="nginx" style="box-sizing: border-box; outline: 0px; margin: 0px 3px 0px 0px; padding: 0px 18px 0px 0px; overflow-wrap: break-word; cursor: pointer; background: url("../img/gitcode-key.png") right center / 14px 14px no-repeat transparent; box-shadow: none; color: #4EA1DB !important;">Nginx 作为反向代理。Nginx 将会转发外部请求到你的 user-service
。
安装 Nginx
如果服务器上没有安装 Nginx,可以通过以下命令安装:
Ubuntu/Debian 系统:
sudo apt install nginx
CentOS 系统:
sudo yum install nginx
配置 Nginx 反向代理
编辑 Nginx 配置文件,创建一个反向代理配置:
sudo nano /etc/nginx/sites-available/user-service
添加以下内容(假设你希望通过 http://your-domain.com
访问服务):
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost: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;
}
}
启用该配置:
sudo ln -s /etc/nginx/sites-available/user-service /etc/nginx/sites-enabled/
测试配置是否正确:
sudo nginx -t
如果没有错误,重新加载 Nginx:
sudo systemctl reload nginx
现在你可以通过 http://your-domain.com
访问你的 user-service
。
6. 设置服务开机启动
使用 systemd
创建服务
为了确保服务器重启后,user-service
自动启动,可以创建一个 systemd
服务。
1.创建 user-service
的服务文件:
sudo nano /etc/systemd/system/user-service.service
2.在文件中添加以下内容:
[Unit]
Description=User Service
After=network.target
[Service]
User=your-username
ExecStart=/usr/bin/java -jar /path/on/server/user-service.jar
SuccessExitStatus=143
StandardOutput=journal
StandardError=inherit
Restart=always
[Install]
WantedBy=multi-user.target
确保路径和用户名正确替换为你服务器上的实际路径和用户。
3.保存后,执行以下命令使服务生效:
sudo systemctl daemon-reload
sudo systemctl start user-service
sudo systemctl enable user-service
检查服务状态
你可以通过以下命令检查 user-service
是否运行:
sudo systemctl status user-service
至此,user-service
已成功在服务器上运行,并且设置为开机启动。其他服务可以通过 REST API
或直接引用该服务的 JAR 包来调用它。
总结流程
1.在服务器上安装 JDK。
2.将 JAR 包上传到服务器。
3.使用 java -jar
或者通过 systemd
启动服务。
4.配置防火墙开放端口。
5.(可选)使用 Nginx 配置反向代理。
6.设置服务开机自动启动。
这样就可以在服务器上成功部署 user-service
并提供对外服务。
本文链接:https://blog.runxinyun.com/post/174.html 转载需授权!
版权声明
网站名称: 润信云资讯网
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!邮件:7104314@qq.com
网站部分内容来源于网络,版权争议与本站无关。请在下载后的24小时内从您的设备中彻底删除上述内容。
如无特别声明本文即为原创文章仅代表个人观点,版权归《润信云资讯网》所有,欢迎转载,转载请保留原文链接。
留言0