前后端分离项目在windows服务器上部署

后端为springboot框架,前端为vue框架,服务器为windows2008server R2系统。

后端部署

首先将项目打包,由于开发环境使用IDEA编码,可以直接使用IDEA的打包功能。点击右侧 Maven 按钮,然后双击Lifecycle下的package按钮。会在项目下target文件下生成jar包。
然后将jar包导入服务器中,在cmd中执行下面命令:

java -jar XXX.jar

即可运行后端项目。
tips
服务器需要安装JDK,这里选用1.8版本。
打包时,需要将application.yml中的server.address改为服务器的ip地址。
有时候重启服务时,之前的服务没有完全停掉,会出现端口占用的问题,导致无法启动。这时需要查看被占用端口的进程,在任务管理器中停掉该进程。如果在任务管理器中查不到该进程,则需要直接把java进程停掉。

前端部署

首先在服务器中安装nginx。
在nginx.conf中编辑,
同样,将项目打包,执行

vue-cli-service build

或者按照项目文件package.json中的设置,执行

npm run build:prod

即可将项目打包,生成dist文件夹。
将dist文件夹导入服务器中。
服务器中需要安装nginx1.8,版本太低了安装不了。
ngxinx安装完毕后,在nginx安装目录下,/conf/nginx.conf文件中更改配置
nginx配置文件
主要是更改前两个方框,第一个框中分别改为前端服务端口和地址,第二个方框改为前端打包的dist文件路径。
更改完毕后,关闭nginx服务,开启nginx服务
这样正常的话,项目便可在服务器上正常运行了。

//关闭nginx服务
nginx -s quit
//开启nginx服务
start nginx.exe

报错

当使用公共域名的时候,类似http://localhost:8080/I_LOVE_YOU/login,需要在配置文件中同时配置公共域名的location,

location /I_LOVE_YOU/ {
	root D:\\nginx-1.20.1\\html\\dist;
	index index.html index.htm;
	try_files $uri $uri/ @router;
}
location @router {
	rewrite ^.*$ /index.html last;
}

如果没有配置的话,会报错404。
system cannot find the path specified /html/dist/user/login
一开始一直不明白为啥报这个错,把文件路径和访问地址拼在一起了,就离谱。。。

最近又遇到错误,在某台服务器上即便这样配置还是会报错
rewrite or internal redirection cycle while redirect to named location "router"
在location @router中的index.html的路径前还要添加子目录,这样才能正常运行。

tips
在本地页面正常显示,在服务器却显示为空白页面。原因为:
本地使用chrome浏览器访问正常,而服务器为ie浏览器,不能完整显示页面元素。
更换浏览器即可。

注意

1.之前出现服务器可以ping通主机,但主机ping不通服务器的问题。
需要在服务器中设置:
进入控制面板——>管理工具——>找到 “高级安全 Windows防火墙”
点击 入站规则
找到 回显请求-ICMPv4-In (Echo Request – ICMPv4-In)
右键 点击规则 点击“启用规则(Enable)”
(win7在本地网络连接----属性-----高级------网络连接设置-----设置----ICMP中—点击—允许传入的回显请求(打上勾)–确定就ok了。)
禁止ping的方法相同

2. 以及服务器的项目开启后,其他电脑请求失败的问题。
需要在服务器上的开放项目的前后台端口:
在防火墙设置中,新增入站规则,将两个端口分别开放即可。
3. 更改服务器的端口
打开注册表,在/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/Wds/rdpwd/Tds/Tcp,更改其PortNumber。
在/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/WinStations/RDP-Tcp,更改其PortNumber。
4. 项目中有导出txt文件功能,在本地导出的文件可以正常换行,而在服务器上却没有换行,解决方式,在后台代码中,更改写入函数,将 \n 改为 \r\n即可。
5. 每次生成的文件总会接着上次的文件后面继续生成,我想要覆盖以前的重新生成,需要将这里第二个参数改为false,意为不追加。
FileWriter fw = new FileWriter(file,true)
6.每次生成的文件为空白,内容只有“undefined”。
因为后台将生成文件的接口,默认设置了端口号20000,请求被浏览器拦截,故而没有写入文件。
7.刷新报500,每次页面第一次显示正常,但刷新一次就报500。在error.log中查看报错信息,类似于下面的报错,

rewrite or internal redirection cycle while processing "/web/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/Home/User/login", 

尝试在nginx.conf中添加location / { try_files $uri $uri/ /index.html; }
或者在前端vue项目中更改,将前端mode: ‘history’注释掉;

或者更改rewrite ^/(.*).html$ /$1.html?mode=test last;
last改为break.
都没有解决问题,最后发现实在location @router{}没有配置相应的root,配置完毕后刷新就正常了。

参考

server2008服务器可以远程桌面连接,但是ping不通
nginx中部署前端,后端打成jar包运行
Windows环境配置Nginx,并引入项目的配置文件
使用nginx作为vue项目服务器,解决vue路由404问题
nginx配置Router

要将ruoyi前后端分离项目部署Windows服务器上,可以按照以下步骤进行: ### 一、准备工作 1. **安装Java环境** - 下载并安装JDK(建议使用JDK 8或以上版本)。 - 配置环境变量: - `JAVA_HOME`:指向JDK安装目录。 - `PATH`:添加`%JAVA_HOME%\bin`。 2. **安装数据库** - 根据项目需求安装MySQL或Oracle数据库。 - 配置数据库用户和权限。 3. **安装Tomcat** - 下载并安装Tomcat。 - 配置环境变量: - `CATALINA_HOME`:指向Tomcat安装目录。 4. **安装Node.js** - 下载并安装Node.js。 - 配置环境变量: - `NODE_HOME`:指向Node.js安装目录。 - `PATH`:添加`%NODE_HOME%\bin`。 ### 二、部署后端 1. **获取项目代码** - 使用Git或直接下载项目代码。 2. **配置数据库连接** - 修改`application.yml`或`application.properties`文件,配置数据库连接信息。 3. **打包项目** - 进入项目目录,运行以下命令打包项目: ```bash mvn clean package ``` 4. **部署到Tomcat** - 将生成的`war`文件复制到Tomcat的`webapps`目录下。 - 启动Tomcat,访问`http://localhost:8080/项目名`验证部署是否成功。 ### 三、部署前端 1. **获取项目代码** - 使用Git或直接下载项目代码。 2. **安装依赖** - 进入项目目录,运行以下命令安装依赖: ```bash npm install ``` 3. **构建项目** - 运行以下命令构建项目: ```bash npm run build ``` 4. **部署静态文件** - 将`dist`目录中的静态文件复制到Tomcat的`webapps/ROOT`目录下,或配置Nginx进行反向代理。 ### 四、配置Nginx(可选) 1. **安装Nginx** - 下载并安装Nginx。 2. **配置反向代理** - 修改Nginx配置文件,添加以下内容: ```nginx server { listen 80; server_name your_domain.com; location / { root /path/to/your/dist; try_files $uri $uri/ /index.html; } location /api/ { proxy_pass http://localhost:8080/项目名/api/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` 3. **启动Nginx** - 启动Nginx,访问`http://your_domain.com`验证部署是否成功。 ### 五、验证部署 1. **访问前端** - 在浏览器中访问`http://your_domain.com`,验证前端是否正常显示。 2. **测试API** - 通过前端页面或Postman测试API接口,确保后端服务正常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值