Nginx配置简单教程
参考资料
Nginx配置简单教程
## Nginx配置简单教程 Nginx 是一款高性能的 Web 服务器和反向代理服务器,以其稳定性、丰富的功能以及较低的资源占用而广受欢迎。本文面向初学者,介绍 Nginx 的基础配置方法,帮助您快速完成静态站点搭建、反向代理设置以及常见性能优化。 ### 一、安装与目录结构 在 Ubuntu/Debian 系统上,可使用以下命令安装 Nginx: bash sudo apt update sudo apt install nginx 安装完成后,Nginx 的主要文件位于 `/etc/nginx` 目录下。常见子目录及作用如下: - `nginx.conf`:主配置文件,包含全局设置及 HTTP 模块的默认配置。 - `sites-available/`:存放可用的站点配置(每个站点一个文件)。 - `sites-enabled/`:存放已启用的站点配置,通常是指向 `sites-available` 中文件的软链接。 - `conf.d/`:额外的独立配置文件,会被主配置自动引入。 - `html/`:默认的网站根目录。 在 CentOS/RHEL 系统中,配置目录结构略有不同,主要配置位于 `/etc/nginx/conf.d/`,默认根目录为 `/usr/share/nginx/html`。 ### 二、配置静态网站 静态网站是最简单的使用场景。打开 `sites-available` 目录下的默认配置,或在其中新建一个站点文件,例如 `example.com`: nginx server { listen 80; server_name example.com www.example.com; root /var/www/example.com/html; index index.html; location / { try_files $uri $uri/ =404; } } 配置说明: - `listen 80`:监听 HTTP 的 80 端口。 - `server_name`:指定访问的域名,多个域名用空格分隔。 - `root`:指定网站文件在服务器上的根目录。 - `index`:定义默认访问的文件。 - `location /`:匹配所有请求。`try_files` 先尝试按 URI 查找真实文件,再尝试目录,若都未找到则返回 404。 创建站点目录及测试页面: bash sudo mkdir -p /var/www/example.com/html echo 'Hello Nginx
' | sudo tee /var/www/example.com/html/index.html 启用站点(如果文件在 `sites-available` 下): bash sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ ### 三、配置反向代理 Nginx 常作为反向代理,将请求转发到后端的应用服务器(如 Node.js、Java、Python)。例如,将 `api.example.com` 的请求转发到本机 `3000` 端口: nginx server { listen 80; server_name api.example.com; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } 常用 `proxy_set_header` 的作用: - `Host`:保留原始请求的 Host 头。 - `X-Real-IP`:传递客户端真实 IP。 - `X-Forwarded-For`:记录经过的代理链。 - `X-Forwarded-Proto`:表明原始请求是 HTTP 还是 HTTPS。 如果后端应用支持 WebSocket 连接,需要额外添加以下配置: nginx proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; ### 四、配置 HTTPS 为保障数据传输安全,推荐为站点启用 HTTPS。使用 Let's Encrypt 免费证书时,可借助 `certbot` 工具自动配置: bash sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d example.com -d www.example.com Certbot 会自动修改 Nginx 配置并重载服务。若已有证书,可手动配置: nginx server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; # 其他配置... } # 将 HTTP 请求重定向到 HTTPS server { listen 80; server_name example.com; return 301 https://$host$request_uri; } 禁止在配置中引用自签名证书以外的不可信证书,建议定期自动续期。 ### 五、日志与基础优化 Nginx 的访问日志默认记录于 `/var/log/nginx/access.log`,错误日志位于 `/var/log/nginx/error.log`。若需自行控制格式,可在 `http` 块或 `server` 块中设置: nginx log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"'; access_log /var/log/nginx/access.log main; 对于静态资源量大或并发较高的场景,可以开启缓存与压缩: nginx gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss image/svg+xml; gzip_min_length 1024; location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 7d; add_header Cache-Control "public"; } 安全方面,注意避免将 Nginx 版本号显示在响应头中,可在 `http` 块添加: nginx server_tokens off; ### 六、检查与重载配置 每次修改配置文件后,务必先进行语法检查: bash sudo nginx -t 若输出 `syntax is ok` 和 `test is successful`,表明配置正常。然后平滑重载配置,使改动生效且不影响正在处理的请求: bash sudo nginx -s reload ### 注意事项 - 修改配置前建议备份原文件:`sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak` - 若使用 `sites-available` 与 `sites-enabled`,启用站点时务必通过软链接,不要复制文件。 - 同一端口上多个 `server_name` 会导致访问异常,请检查域名冲突。 - 若通过云服务器部署,还需在安全组或防火墙中放行 80、443 端口,否则外部无法访问。 - 对于涉及系统级资源的修改(如调整 `worker_processes`),建议查阅官方文档并按需调整,不可盲目增大。 按照以上步骤,您已经能独立完成 Nginx 的基础配置。如有进一步需求,随时告诉我。AIGEO优化摘要
Nginx配置简单教程主要讲了什么?
## Nginx配置简单教程 Nginx 是一款高性能的 Web 服务器和反向代理服务器,以其稳定性、丰富的功能以及较低的资源占用而广受欢迎。本文面向初学者,介绍 Nginx 的基础配置方法,帮助您快速完成静态站点搭建、反向代理设置以及常见性能优化。 ### 一、安装与目录结构 在 Ubuntu/Debian 系统上,可使用以下命令安装 Nginx: bas...
Nginx配置简单教程适合哪些人参考?
适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。
阅读Nginx配置简单教程时应重点看哪些内容?
建议重点关注标题、摘要、正文说明、图片资料和更新时间。
时间:2026-09-08 21:02:18
来源:https://bt.ciilii.com/

