1. nginx
1.1 简介
Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
1.2 应用场景
- http服务器;
- 虚拟主机;
- 反向代理、负载均衡。
1.3 nginx的本地下载安装
1. 版本介绍
- Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版;
- Stable version:最新稳定版,生产环境上建议使用的版本;
- Legacy versions:遗留的老版本的稳定版
2. 下载
官网下载地址:nginx: download
在此选择稳定版本nginx-1.18.0.zip,大家可以根据自己的需求选择。
3. 安装
将下载的安装包解压即可。
4. 启动
方法一:
找到解压后的软件文件夹,双击nginx.exe一闪而过,启动成功。
启动成功过后,在浏览器输入http://localhost:80访问nginx首页,如下:
方法二:
在nginx文件目录下输入cmd,在命令框输入nginx.exe即可启动。
2. 项目打包
2.1 前端打包命令
在终端输入以下命令:
npm run build 发布到线上的代码 不便于测试
命令:
(1) npm run build:dev 开发调试环境
(2) npm run build:prod 生产调试环境
打包成功后,项目目录下的dist文件夹就是前端包,将dist文件夹放到nginx文件夹下的html文件夹下,如下:
2.2 后端打包
方法一:
在idea右侧的Maven,点击项目Lifecycle下的clean和package即可打包。
方法二:
在终端输入Maven命令,如下:
mvn clean # 清理
mvn package #打包
3. 项目部署
3.1 修改nginx => conf文件夹下的nginx.conf文件,如下:(重点)
server {
listen 80;
server_name localhost;
location / {
root html/dist/; # 该项目以nginx/html为根目录的相对路径,如果是在html目录下的dist文件夹,就修改为html/dist即可
index index.html index.html;
}
location /stage-api {
rewrite ^.+api/?(.*)$ /$1 break; # 路径重写,不再重新匹配路径
proxy_pass http://localhost:8082/;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location = /50x.html {
root html;
}
}
(1) proxy_pass:反向代理,本次代理的端口是8082;
(2) rewrite ^.+api/?(.*)$ /$1 break:路径重写
<1> ^.+api/?(.*)$ :匹配路径的正则表达式,用了分组语法就是*(.)**,把/api/以后的所有部分当做1组;
<2> /$1:重写的目标路径,这里用$1引用前面正则表达式匹配到的分组(组编号从1开始,也就是api),即/api/后面的所有。这样新的路径就是除去/api/以外的所有,就达到了去除/api前缀的目的。
(3) break或last指令
<1> last:重写路径结束后,将得到的路径重新进行一次路径匹配;
<2> break:重写路径结束后,不在重新进行路径匹配。
3.2 双击启动nginx
3.3 运行后端项目的jar包
在win+r打开的命令窗口下,输入以下命令:
java -jar jar包的目录
例如:
java -jar F:\xxx\project\xxx-boot-1.0.jar
如果运行成功,会看到以下:
3.4 测试
在浏览器输入http://localhost:80即可运行项目系统。