业务场景:公司要求临时开发一个小项目,部署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/;  # 指向后端服务
            
        }


    }

 

posted on 2025-05-24 11:01  茫无所知  阅读(28)  评论(0)    收藏  举报