Nginx 使用方法
Nginx 是一个高性能的 HTTP 和反向代理服务器,同时也可以作为邮件代理和通用 TCP/UDP 代理服务器使用。本文将介绍 Nginx 的安装、基本配置及常见功能的使用方法。
1. Nginx 安装
1.1 在 Linux 系统上安装
Ubuntu/Debian 系统:
1 2
| sudo apt update sudo apt install nginx
|
CentOS 系统:
1 2
| sudo yum install epel-release sudo yum install nginx
|
启动和检查服务:
1 2 3
| sudo systemctl start nginx sudo systemctl enable nginx sudo systemctl status nginx
|
1.2 在 Windows 系统上安装
- 从 Nginx 官方网站 下载 Windows 版本。
- 解压到指定目录,例如:
C:\nginx
。
- 打开命令行,进入 Nginx 目录并启动:
2. 配置文件结构
Nginx 的主配置文件通常位于 /etc/nginx/nginx.conf
(Linux)或解压目录的 conf/nginx.conf
(Windows)。以下是一个典型的配置文件结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| user nginx; 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 localhost;
location / { root /usr/share/nginx/html; index index.html index.htm; }
error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } }
|
3. 常见功能与使用
3.1 反向代理
反向代理用于将客户端请求转发到后端服务器。
示例配置:
1 2 3 4 5 6 7 8 9 10 11
| server { listen 80; server_name example.com;
location / { 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; } }
|
3.2 静态文件服务
Nginx 可直接作为静态文件服务器。
示例配置:
1 2 3 4 5 6 7 8 9
| server { listen 80; server_name static.example.com;
location / { root /var/www/static; index index.html; } }
|
3.3 负载均衡
Nginx 可用作负载均衡器,将流量分发到多台后端服务器。
示例配置:
1 2 3 4 5 6 7 8 9 10 11 12 13
| upstream backend { server 192.168.1.101; server 192.168.1.102; }
server { listen 80; server_name example.com;
location / { proxy_pass http://backend; } }
|
3.4 HTTPS 配置
使用 Let’s Encrypt 生成免费证书并配置 HTTPS。
示例配置:
1 2 3 4 5 6 7 8 9 10 11 12
| server { listen 443 ssl; server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / { root /var/www/html; index index.html; } }
|
4. 常见问题与解决
问题 1:无法启动 Nginx
原因:端口被占用。
解决方法:检查并释放端口。
1 2
| sudo netstat -tulnp | grep :80 sudo fuser -k 80/tcp
|
问题 2:配置文件错误
解决方法:测试配置文件是否正确。
问题 3:静态文件无法访问
原因:权限不足。
解决方法:确保文件目录具有正确权限。
1
| sudo chmod -R 755 /var/www/html
|
5. 参考文档