本文是《Linux 运维常用软件实战》系列第 1 篇。建议先收藏,跟着练手效果更好。
Nginx 不是"装上了就行"的软件,而是运维手里的"总闸门"。今天把它的核心运维方法一次讲透,从安装到排错,照着练你就能独立扛住一套线上业务。
一、先搞懂:Nginx 到底管什么
Nginx 是当下最主流的 Web 服务,但它真正的价值在这四块:
- 反向代理:把外部请求转给内网后端,对外只暴露一个入口。
- 负载均衡:请求分发到多台后端,挂一台用户无感知。
- 静态资源:HTML、图片、JS、CSS 直接由 Nginx 发,速度极快。
- 网关能力:SSL 终接、限流、重写、缓存,都在这一层做。
理解一句话:客户端不直接碰后端,Nginx 是中间那道"调度中枢"。
打开网易新闻 查看精彩图片
二、安装与最小可用配置
主流发行版一条命令搞定:
# CentOS / Rockyyum install -y nginx# Ubuntu / Debianapt install -y nginx关键目录要记牢:
- /etc/nginx/nginx.conf:主配置(全局 + 引入其他配置)。
- /etc/nginx/conf.d/:站点配置放这里,一个文件一个 server 块。
- /var/log/nginx/:access.log(访问)和 error.log(错误)排错必看。
- /usr/share/nginx/html/:默认站点根目录。
改完配置永远先校验再重载,这是习惯:
nginx -t # 语法检查,看到 successful 再继续systemctl reload nginx # 平滑重载,不中断连接三、虚拟主机:一台机器跑多个站点用 server 块区分不同域名,互不干扰:
server {listen 80;server_name www.a.com;root /var/www/a;index index.html;server {listen 80;server_name www.b.com;root /var/www/b;}server_name 决定请求交给谁,root 决定去哪找文件。域名解析 + 防火墙 80 端口放行是新手最容易漏的两步。
四、反向代理 + 负载均衡(重点)
这是 Nginx 最值钱的活。后端多台时,用 upstream 定义集群,再 proxy_pass 转发:
upstream app_cluster {server 10.0.0.11:8080 weight=3; # 权重,能力强多分点server 10.0.0.12:8080;server 10.0.0.13:8080 backup; # 备机,主全挂才上server {listen 80;server_name api.example.com;location / {proxy_pass http://app_cluster;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}三种常用策略:轮询(默认)、weight 加权、 ip_hash(同一 IP 落同一后端,解决会话问题)。backup 节点是容灾兜底,主集群全挂才启用。
五、location匹配优先级(最易踩坑)
路径怎么走,全看 location 规则,优先级从高到低:
- = 精确匹配,优先级最高。
- ^~ 前缀匹配(不检查正则)。
- ~ / ~* 正则匹配。
- 普通前缀匹配,最低。
写错顺序就会导致"明明配了却走了别的规则"。生产环境改 location 后务必 nginx -t + 实测一条请求。
六、HTTPS 与性能调优
HTTPS 现在几乎是标配,certbot 一行申请免费证书并自动续期:
certbot --nginx -d www.example.com # 自动验证 + 写入配置 + 续期性能三件套:
- worker_processes auto;:按 CPU 核数开进程。
- gzip on;:文本压缩,省一半带宽。
- 静态资源加 expires 缓存头,回源压力骤降。
网站异常别乱猜,按这个顺序来:
- nginx -t 看配置有无语法错。
- tail -f /var/log/nginx/error.log 看真实报错。
- journalctl -u nginx -n 50 看服务层面状态。
九成问题在这三步里就能定位。真实练手目标:搭一台 Nginx,做两个虚拟主机 + 一个 2 节点负载均衡 upstream,再配 HTTPS,你就算真正入门 Nginx 运维了。
#Linux运维 #Nginx #运维工程师 #程序员 #零基础学编程
热门跟贴