业务场景:公司要求临时开发一个小项目,部署windows服务器,后端项目:使用之前现有的后端框架(前后端不分离的那种)。前端项目:前端开发人员自己搞的一个单独的前端框架。
难题:领导初期想法前端dist包直接嵌入到后端框架中,部署时只使用一个后端包。试了不行!!!
解决:分别部署,java环境启动后端包,安装node环境使用http-server启动前端包。统一使用nginx反向代理,前端资源调用前端路由,后端资源调用后端接口。
操作步骤:
下载node并用http-server启动前端包dist
启动命令:(cmd窗口执行,http-server -p 8081)
或者(powershell窗口执行窗口静默执行,Start-Process -FilePath "npx" -ArgumentList "http-server", "-p", "8081" -WindowStyle Hidden)
解压 Node.js 压缩包
将下载的 Node.js 压缩包解压到你希望安装的位置,比如 D:\Program Files\NodeJS。
创建自定义文件夹
在 Node.js 的解压目录下新建两个文件夹:node_global 和 node_cache。node_global 用于存放 npm 全局模块,node_cache 作为 npm 缓存路径。
配置环境变量
右键点击 “此电脑”,选择 “属性”,然后点击 “高级系统设置”,在弹出的窗口中点击 “环境变量”。
在 “系统变量” 中点击 “新建”,创建一个名为 NODE_HOME 的变量,变量值为 Node.js 的解压路径,例如 D:\Program Files\NodeJS。
编辑 “系统变量” 中的 Path 变量,点击 “新建”,添加 %NODE_HOME% 和 %NODE_HOME%\node_global。
设置 npm 全局路径和缓存位置
以管理员身份打开命令提示符(CMD)窗口,输入以下命令:
cmd
npm config set cache "D:\Program Files\NodeJS\node_cache"
npm config set prefix "D:\Program Files\NodeJS\node_global"
更换 npm 镜像地址
在命令提示符窗口中输入以下命令,将镜像地址改为淘宝镜像(也可根据实际情况选择其他国内镜像):
cmd
npm config set registry https://registry.npm.taobao.org/
你可以通过 npm config get registry 命令查看镜像地址是否修改成功。
完成以上配置后,在命令提示符中输入 node -v 和 npm -v 查看版本号,以确认安装和配置是否成功
下载ng并配置windows
启动start nginx.exe
停止nginx.exe -s stop
查找netstat -ano|find "8081"
删除taskkill /f /pid **
或者打开任务管理器(ctrl+alt+delete/ctrl+shift+esc),查看详细信息,手动停止对应进程
核心ng配置
server { listen 8082; server_name localhost; # 静态资源缓存配置(可选) location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg)$ { expires 7d; proxy_pass http://localhost:8081; # 指向http-server启动的前端项目 } # SPA路由处理 location / { proxy_pass http://localhost:8081; # 指向http-server启动的前端项目 proxy_set_header Host $host; try_files $uri $uri/ /index.html; # 处理前端路由刷新问题 } # API请求转发到后端服务 location /api/ { proxy_pass http://localhost:8080/api/; # 指向后端服务 } # API请求转发到后端服务 location /image/ { proxy_pass http://localhost:8080/image/; # 指向后端服务 } # API请求转发到后端服务 location /gzh/ { proxy_pass http://localhost:8080/gzh/; # 指向后端服务 } }
浙公网安备 33010602011771号