【nginx】nginx简单学习

发布于:2025-07-02 ⋅ 阅读:(44) ⋅ 点赞:(0)

nginx学习

公司是使用公司内部的开发部署平台进行部署项目的。

开发部署平台的使用过程就是需要先配置好nginx的一些信息,然后进行应用构建,这个应用构建是从git上拉取最新项目进行构建的。接着是部署实例

应用构建可以理解为将应用打包成jar包,jar内置tomcat、所有第三方依赖库、编译后的.class文件。部署实例可以理解为将jar包放到服务器某个目录下,然后启动jar包,jar内置的tomcat也会启动。那么tomcat就会监听端口的所有请求。

java -jar → JVM 加载 → Spring 容器初始化 → 自动创建内嵌 Tomcat → 启动端口监听 → 应用就绪。

ok,除了jar包方式,还有容器部署的方式,这个坑后续再补。现在我们研究这个nginx:

整个请求过程nginx起到的作用如下:

  1. 访问页面: 浏览器访问 http://localhost:80
    • 👉 Nginx 接收到请求 (GET /).
    • 👉 Nginx 查找配置的 root 目录,找到 index.html 文件。
    • 👉 Nginx 将 index.html 文件内容返回给浏览器。 (静态资源服务)
  2. 加载静态资源: 浏览器解析 index.html,发现需要加载 main.js, style.css, logo.png
    • 👉 浏览器发起新请求 GET /static/js/main.js, GET /static/css/style.css, GET /images/logo.pnglocalhost:80
    • 👉 Nginx 接收到这些请求。
    • 👉 Nginx 根据 root 配置,在 /path/to/your/vue/dist/static/js/, /path/to/your/vue/dist/static/css/, /path/to/your/vue/dist/images/ 目录下找到对应的文件。
    • 👉 Nginx 将这些文件内容返回给浏览器。(静态资源服务)
  3. 用户点击按钮 (触发 API 调用): 前端 JS (Vue) 代码执行,例如 axios.get('/api/data')
    • 👉 浏览器发起请求 GET http://localhost:80/api/data(注意:请求发给 80 端口!)
    • 👉 Nginx 接收到请求 (GET /api/data).
    • 👉 Nginx 检查配置,发现路径 /api/data 匹配location /api/ 规则。
    • 👉 Nginx 反向代理:将请求转发proxy_pass 指定的地址 http://localhost:8080/api/data。 🔄 (关键步骤!)
    • 👉 运行在 8080 端口的 Spring Boot 应用收到请求 GET /api/data
    • 👉 Spring Boot 执行对应的 Controller 方法,查询数据库/处理业务,生成数据 (JSON)。
    • 👉 Spring Boot 将 JSON 数据作为响应返回给… Nginx (因为是 Nginx 转发过来的请求)。
    • 👉 Nginx 收到 Spring Boot 的响应 (JSON)。
    • 👉 Nginx 将这个 JSON 响应原封不动地返回给浏览器。✅ (反向代理完成)
  4. 前端展示数据: 浏览器中的 axios.get 接收到 Nginx 返回的响应(里面是 Spring Boot 生成的 JSON)。
    • 👉 前端 JS 解析 JSON 数据。
    • 👉 前端 JS 使用这些数据更新页面(如填充表格、刷新图表)。