nginx教程

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 系统上安装

  1. Nginx 官方网站 下载 Windows 版本。
  2. 解压到指定目录,例如:C:\nginx
  3. 打开命令行,进入 Nginx 目录并启动:
    1
    nginx.exe

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:配置文件错误

解决方法:测试配置文件是否正确。

1
sudo nginx -t

问题 3:静态文件无法访问

原因:权限不足。
解决方法:确保文件目录具有正确权限。

1
sudo chmod -R 755 /var/www/html

5. 参考文档