Nginx配置简单教程
参考资料
Nginx配置简单教程
Nginx配置简单教程
Nginx 是一款高性能的 Web 服务器和反向代理服务器,广泛用于托管网站、负载均衡以及 HTTP 缓存等场景。它的配置文件结构清晰、语法简洁,学习成本较低。本文将从实际运维角度,带您完成一份最基础的 Nginx 配置,并让配置生效。
一、认识 Nginx 配置文件
在大多数 Linux 发行版中,Nginx 的主配置文件位于 `/etc/nginx/nginx.conf`。为了方便管理,通常会将不同站点的配置单独存放在 `/etc/nginx/conf.d/` 或 `/etc/nginx/sites-available/` 目录中,并在主配置文件中通过 `include` 指令引用。 一个典型的 Nginx 配置块包括:
- `events`:设置连接处理方式,如最大连接数。
- `http`:包含 HTTP 服务器通用配置,以及一个或多个 `server` 块。
- `server`:定义一个虚拟主机(站点)的监听端口、域名、根目录等。
- `location`:针对特定 URL 路径设置处理规则,如反向代理、静态文件映射。
二、一个最简单的静态站点配置
假设您有一个网站,代码存放在 `/var/www/mysite`,域名为 `www.example.com`,Nginx 配置如下: nginx server { listen 80; server_name www.example.com; root /var/www/mysite; index index.html; location / { try_files $uri $uri/ =404; } }
- `listen 80`:监听 HTTP 默认端口。
- `server_name`:匹配请求中的 Host 头,可写多个域名,用空格分隔。
- `root`:网站的绝对路径。
- `index`:目录访问时默认加载的文件。
- `location /`:对所有请求生效,`try_files` 先尝试按请求路径查找文件,找不到则尝试作为目录,再找不到返回 404。
保存文件后,请先测试配置语法是否正确: bash nginx -t 如果输出 `syntax is ok`,则重载配置使其生效: bash nginx -s reload 此时,访问 `http://www.example.com`,即可看到站点内容。需确认服务器防火墙已放行 80 端口,且域名已正确解析到服务器 IP。
三、配置反向代理
Nginx 最常见的用途之一是作为反向代理,将请求转发给后端应用(如 Java、Python、Node.js 服务)。例如,将 `http://www.example.com/api/` 转发给本机 `8080` 端口: nginx server { listen 80; server_name www.example.com; location /api/ { proxy_pass http://127.0.0.1:8080/; 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 / { root /var/www/mysite; index index.html; } } 注意 `proxy_pass` 路径末尾的 `/`,它表示将 `/api/` 前缀去掉后转发。例如请求 `/api/login`,后端实际收到 `/login`。如果不需要去除前缀,保留原路径即可: nginx proxy_pass http://127.0.0.1:8080; 转发时带上客户端真实 IP 尤为重要。很多后端程序依赖 IP 做日志记录或安全校验,若不设置上述头信息,后端只能看到 Nginx 的内网地址。 配置完成后,同样执行 `nginx -t` 与 `nginx -s reload` 验证。
四、启用 HTTPS
如今所有网站都建议启用 HTTPS。您可以从 Let's Encrypt 等机构申请免费证书,也可使用企业现有证书。假设证书文件分别为 `example.com.crt` 和 `example.com.key`,则 HTTPS 配置如下: nginx server { listen 443 ssl; server_name www.example.com; ssl_certificate /etc/nginx/certs/example.com.crt; ssl_certificate_key /etc/nginx/certs/example.com.key; root /var/www/mysite; index index.html; } 同时,建议将 HTTP 请求永久跳转至 HTTPS。可单独增加一个 80 端口 server: nginx server { listen 80; server_name www.example.com; return 301 https://$host$request_uri; } 重载后,访问 HTTP 地址会自动跳转到 HTTPS。请确认 443 端口已在防火墙中开放,且证书私钥文件权限建议设为 `600`,避免泄露: bash chmod 600 /etc/nginx/certs/example.com.key
五、常见安全加固
即便只是基础配置,也应考虑以下几个安全要点:
- 隐藏 Nginx 版本号。
- 限制请求体大小,防止大体积上传拖垮服务。
- 为敏感目录增加访问限制。
在 `http` 块中添加: nginx server_tokens off; client_max_body_size 10m; 若某个后台管理路径,如 `/admin`,只允许指定 IP 访问,使用: nginx location /admin/ { allow 203.0.113.10; deny all; proxy_pass http://127.0.0.1:8080; } `allow` 可写多行,按顺序匹配。注意以上仅为基本示例,生产环境还应结合专业安全策略进行防护。
六、验证与排错流程
每次修改配置后,请按以下步骤执行:
- 检查语法:
bash nginx -t
- 查看错误信息。若有提示,根据提示行号定位到对应配置文件。
- 确认无误后平滑重载:
bash nginx -s reload
- 通过 `curl` 测试生效情况:
bash curl -I http://www.example.com curl -I https://www.example.com 观察返回的 HTTP 状态码,如 `200 OK` 或 `301 Moved Permanently` 是否符合预期。 此外,Nginx 的错误日志通常位于 `/var/log/nginx/error.log`。当页面出现 502、504 时,查看该日志可快速定位后端服务是否可用。访问日志则在 `/var/log/nginx/access.log`,可用来分析请求量、来源 IP 等信息。
七、回滚与备份
如果新配置出现问题,请立即恢复旧配置。强烈建议在每次修改前备份当前配置文件: bash cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak 若修改的是独立站点配置,也请一并备份对应文件。回滚时,将备份文件覆盖回去,再执行: bash nginx -t && nginx -s reload 以上是 Nginx 配置的基础入门。掌握这些内容后,您即可独立完成一个小型站点从 HTTP 到 HTTPS、从静态文件到反向代理的常用配置。随着业务增长,还可以进一步学习负载均衡、缓存策略、速率限制等高级用法。如有进一步需求,随时告诉我。
AIGEO优化摘要
Nginx配置简单教程主要讲了什么?
Nginx配置简单教程 Nginx 是一款高性能的 Web 服务器和反向代理服务器,广泛用于托管网站、负载均衡以及 HTTP 缓存等场景。它的配置文件结构清晰、语法简洁,学习成本较低。本文将从实际运维角度,带您完成一份最基础的 Nginx 配置,并让配置生效。 一、认识 Nginx 配置文件 在大多数 Linux 发行版中,Nginx 的主配置文件位于 `/...
Nginx配置简单教程适合哪些人参考?
适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。
阅读Nginx配置简单教程时应重点看哪些内容?
建议重点关注标题、摘要、正文说明、图片资料和更新时间。
时间:2026-09-09 11:28:20
来源:https://bt.ciilii.com/

