若依部署Nginx和Tomcat全過(guò)程
Nginx部署
第一步:打包
# 構(gòu)建測(cè)試環(huán)境 npm run build:stage # 構(gòu)建生產(chǎn)環(huán)境 npm run build:prod
第二步:將生成的dist文件 中的

拉到

第三步:配置nginx.conf

#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
index index.html;
# 這里的配置 是防止 刷新后 找不到路徑
try_files $uri $uri/ @router;
}
# 這里的配置 是防止 刷新后 找不到路徑
location @router {
rewrite ^.*$ /index.html last;
}
# 只寫了 生產(chǎn) 環(huán)境
location /prod-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}后端部署
可以直接打成jar包,雙擊或者命令運(yùn)行
Tomcat部署
第一步:前端打包
# 構(gòu)建測(cè)試環(huán)境 npm run build:stage # 構(gòu)建生產(chǎn)環(huán)境 npm run build:prod

第二步:拉到webapps

第三步:訪問(wèn)測(cè)試

訪問(wèn):http://localhost:8080/dist/

可以看到已經(jīng) 可以訪問(wèn) 若依的頁(yè)面了
問(wèn)題:一直等待

解決方法
將靜態(tài)文件拉到webapps下面

效果

第四步:后端打包war

maven打包


或者去Maven本地倉(cāng)庫(kù)

第五步:放在webapps下面

第六步:?jiǎn)?dòng)tomcat看效果 訪問(wèn):http://localhost:8080/ruoyi-admin/

訪問(wèn):http://localhost:8080/dist 前后端無(wú)法通信
可以清楚看到驗(yàn)證碼獲取不到,說(shuō)明前后端無(wú)法通信

解決方法 將原本的war包名字修改掉
以為前端訪問(wèn)的是prod-api這個(gè)請(qǐng)求路徑


或者在打包前修改

測(cè)試環(huán)境:

或者
后端:

第七步:重啟tomcat

可以正常訪問(wèn)了
出現(xiàn)問(wèn)題:點(diǎn)擊刷新404
問(wèn)題出現(xiàn)在,若依采用的vue中的單頁(yè)面,頁(yè)面的變換是根據(jù)路由(routes)來(lái)變換的,在點(diǎn)擊刷新時(shí)走的tomcat的目錄路徑,所以404
解決方案
第一步:前端打包時(shí)設(shè)置路由
export default new Router({
mode: 'history', // 去掉url中的#
base: '/apps/', // -----------設(shè)置這里 和 前端 打包后的包名一直,不一致 等打包成功修改包名
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes
})
第二步:添加文件
在項(xiàng)目中添加WEB-INF文件夾,并在WEB-INF文件下創(chuàng)建web.xml
添加如下配置
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
<display-name>webapp</display-name>
<description>
webapp
</description>
<error-page>
<error-code>404</error-code>
<location>/index.html</location>
</error-page>
</web-app>重啟后即可
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx如何實(shí)現(xiàn)pathinfo模式的方法詳解
pathinfo是偽靜態(tài)的一種,對(duì)于用過(guò)thinkphp的朋友們來(lái)說(shuō)應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于Nginx如何實(shí)現(xiàn)pathinfo模式的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-09-09
nginx啟動(dòng)命令和默認(rèn)配置文件的使用
這篇文章主要介紹了nginx啟動(dòng)命令和默認(rèn)配置文件的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-06-06
聊聊Django+uwsgi+nginx服務(wù)器部署問(wèn)題
這篇文章主要介紹了Django+uwsgi+nginx服務(wù)器部署的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
Web服務(wù)器-Nginx-高并發(fā)問(wèn)題
Nginx通過(guò)事件驅(qū)動(dòng)、I/O多路復(fù)用和異步非阻塞技術(shù)高效處理高并發(fā),結(jié)合動(dòng)靜分離和限流策略,提升性能與穩(wěn)定性2025-08-08
nginx如何根據(jù)報(bào)文里字段轉(zhuǎn)發(fā)至不同地址
要在 Nginx 中根據(jù) POST 請(qǐng)求的 JSON 負(fù)載中的 id 字段的值進(jìn)行轉(zhuǎn)發(fā),你可以使用 Nginx 的 ngx_http_lua_module 模塊,這個(gè)模塊允許你在 Nginx 配置中使用 Lua 腳本,本文介紹nginx如何根據(jù)報(bào)文里字段轉(zhuǎn)發(fā)至不同地址,感興趣的朋友一起看看吧2024-12-12
nginx try_files指令判斷文件是否存在實(shí)例
這篇文章主要介紹了nginx try_files指令判斷文件是否存在實(shí)例,本文用一個(gè)實(shí)際需求講解try_files指令的使用,并給出配置示例,需要的朋友可以參考下2015-02-02

