一篇文章让你打通nginx的任通二脉

🧩 Nginx 理论与实战学习手册

记得点赞加收藏哦😁😁😁

一、Nginx 理论知识体系

1. 什么是 Nginx?

Nginx(Engine X)是一款高性能的 Web 服务器、反向代理服务器及邮件代理服务器。以轻量、高并发、稳定著称,被广泛用于网站架构中。

  • 轻量级:内存占用小
  • 高并发:事件驱动模型,可支撑10万级连接
  • 稳定性高:热部署、平滑升级

2. Nginx 的工作原理

采用 Master-Worker 模型

  • Master:管理进程,负责启动、停止 worker
  • Worker:事件循环处理请求

并发模型:事件驱动(epoll/kqueue),非阻塞I/O。

3. Nginx 配置结构

主配置文件:/etc/nginx/nginx.conf

user  www-data;
worker_processes  auto;

events {
    worker_connections 1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile on;
    keepalive_timeout 65;

    server {
        listen 80;
        server_name example.com;

        location / {
            root /var/www/html;
            index index.html;
        }
    }
}

4. Nginx 常用指令表

指令作用示例
listen监听端口listen 80;
server_name域名匹配server_name www.xxx.com;
root网站根目录root /var/www/html;
index默认文件index index.html index.php;
location路由匹配规则location /api/ {}
proxy_pass反向代理目标地址proxy_pass http://127.0.0.1:8080;
rewriteURL重写rewrite ^/old$ /new permanent;

二、Nginx 实际项目案例

案例 1:静态网站部署

server {
    listen 80;
    server_name mysite.com;

    root /var/www/mysite;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

案例 2:反向代理(Java/Node/PHP)

server {
    listen 80;
    server_name api.mysite.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

案例 3:多项目虚拟主机

server {
    listen 80;
    server_name shop.mysite.com;
    root /var/www/shop;
}

server {
    listen 80;
    server_name blog.mysite.com;
    root /var/www/blog;
}

案例 4:HTTPS 配置

server {
    listen 443 ssl;
    server_name secure.mysite.com;

    ssl_certificate /etc/nginx/ssl/mysite.crt;
    ssl_certificate_key /etc/nginx/ssl/mysite.key;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

案例 5:负载均衡集群

upstream myapp {
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
    server 127.0.0.1:8082;
}

server {
    listen 80;
    server_name load.mysite.com;

    location / {
        proxy_pass http://myapp;
    }
}

案例 6:防盗链与缓存

location ~* \.(jpg|png|gif|js|css)$ {
    valid_referers none blocked mysite.com;
    if ($invalid_referer) {
        return 403;
    }
    expires 30d;
}

三、学习路线建议

阶段内容目标
1安装与基本配置能启动静态网站
2反向代理与location匹配转发后端服务
3HTTPS/缓存/防盗链提升性能与安全
4负载均衡/灰度发布构建高并发架构
5日志/监控/Lua扩展深度优化

四、实战练习建议

  1. 安装 Nginx(Linux/Windows)
  2. 创建一个静态站点 www.test.com
  3. 配置代理到 localhost:8080
  4. 配置 HTTPS 证书
  5. 测试 upstream 负载均衡

五、推荐资源

  • 官方文档:https://nginx.org/en/docs/
  • Nginx 中文网:https://www.nginx.cn/doc/
  • OpenResty 官网:https://openresty.org/

作者建议
动手部署三次,比看十遍文档更有效。推荐结合 Spring Boot 或前端项目一起实践。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值