super-mortal

Back

理解服务器中的Nginx#

一.什么是 Nginx?#

打个比喻,你去饭店吃饭,前台问你定的哪个包间,这个前台在服务器上就叫Nginx

餐厅前台服务器 Nginx
接待来吃饭的顾客接待访问网站的用户
问顾客订哪个包间根据域名区分请求
带顾客到包间把请求转发给后端程序
把菜端给顾客把处理结果返回给用户

二.Nginx 在服务器中起什么作用?#

  1. 先看看没有 Nginx 会怎样

没有nginx的世界

  1. 有 Nginx 之后
用户访问网站
           ┌───────────────────────────┐
           │        服务器              │
           │                           │
           │   ┌─────────────┐         │
           │   │  Nginx      │         │
           │   │  (前台)      │         │
           │   └──────┬──────┘         │
           │          │                │
           │          ↓                │
           │   ┌────────────┐          │
           │   │ 后端程序    │          │
           │   │ (厨师)      │          │
           │   └────────────┘          │   ->返回网页给用户
           └───────────────────────────┘
plaintext

Nginx 专门负责”接待”,后端程序专门负责”做菜”,各司其职!

  1. 更深层次理解Nginx 具体干什么

Nginx的作用

  1. 前台可以同时接待很多客人,Nginx也可以同时处理不同的用户请求
一个前台(Nginx),同时接待多个人:

访客1 ──→ 前台 ──→ A网站
访客2 ──→ 前台 ──→ B网站
访客3 ──→ 前台 ──→ A网站    ->高效处理
plaintext

三.Nginx配置中的核心概念#

  1. 什么是server?

server = 一家公司/一个网站

server {
    server_name first.com;
    # 这就是 first.com 这个网站
}

server {
    server_name second.com;
    # 这就是 second.com 这个网站
}
nginx

同一个服务器上部署多个不同的服务,分别绑定对应的域名时,这里的server_name就是对应的域名,通过这个配置,Nginx就可以清楚的知道用户需要访问的是哪个服务,比如用户输入的是second.com,Nginx就会去找second.com对应的配置文件对应的服务然后返回给用户,而不会返回first.com域名对应的服务,这就是多域名共用一个服务器(域名分流)

  1. 什么是 location?

location = URL 路径/部门

server {
    server_name first.com;

    location / {
        # 处理 first.com/ 的请求
    }

    location /api {
        # 处理 first.com/api 的请求
    }
}
nginx
  1. 什么是 proxy_pass?

proxy_pass = 转交/外包

location / {
    proxy_pass http://127.0.0.1:3000;
    # 这个请求我不处理了
    # 转交给 http://127.0.0.1:3000
}
nginx

四.Nginx在服务器中的目录#

  • 一般情况下Nginx的安装目录
  • SSL 证书存放目录
/usr/local/nginx/conf/ssl/            ← ⭐ SSL 证书放这里

    ├── first.top/                    ← first.top 网站的证书
    │   │
    │   ├── fullchain.pem             ← 完整证书链
    │   └── key.pem                   ← 私钥

    └── second.top/                   ← second.top 网站的证书

        ├── fullchain.pem
        └── key.pem
plaintext
  • 快速查看命令

五.一个请求的完整旅程#

以docker部署的服务为例,当你访问 https://first.top 时:

六.总结#

所以在服务器中,Nginx主要负责这些工作(仅本文提到)

  1. 域名分流:一个服务器对应多个域名多个网站服务,看域名转发给不同的服务
  2. 静态资源处理:直接返回图片、JS、CSS,减轻后端压力
  3. 反向代理:把请求转给后端服务(如Java、Node.js),隐藏真实端口
  4. HTTPS加密:配置SSL证书,实现安全访问

关键目录速查

用途目录
Nginx 主配置/usr/local/nginx/conf/nginx.conf
网站配置/usr/local/nginx/conf/conf.d/***.conf
SSL 证书/usr/local/nginx/conf/ssl/域名/
Nginx 日志/usr/local/nginx/logs/
启动命令/usr/local/nginx/sbin/nginx
理解服务器中的Nginx
https://supermortal.cn/blog/li-jie-fu-wu-qi-zhong-de-nginx
作者 Mortal
发布时间 2026年3月23日
许可证 CC BY-SA 4.0