Nginx 是一个高性能的 HTTP 和反向代理服务器,也能作为邮件代理服务器。以下是一个基本的 Nginx 使用教程,涵盖了安装、配置以及一些常见的使用场景。
### 安装 Nginx
#### 在 Ubuntu 上安装
```bash
sudo apt update
sudo apt install nginx
```
#### 在 CentOS 上安装
```bash
sudo yum install epel-release
sudo yum install nginx
```
安装完成后,可以启动 Nginx 并设置开机自启:
```bash
# 启动 Nginx
sudo systemctl start nginx
# 设置开机启动
sudo systemctl enable nginx
```
### 基本配置
Nginx 的主要配置文件位于 `/etc/nginx/nginx.conf` 或者在 `/etc/nginx/conf.d/` 目录下的单独配置文件中。每个站点可以通过创建新的配置文件来定义。
例如,为一个新的网站创建配置文件 `/etc/nginx/sites-available/example.com`:
```nginx
server {
listen 80;
server_name example.com;
location / {
root /var/www/example.com;
index index.html index.htm;
}
}
```
然后,创建一个符号链接到 `sites-enabled` 目录以启用该配置:
```bash
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
```
检查配置是否有语法错误并重新加载 Nginx:
```bash
sudo nginx -t
sudo systemctl reload nginx
```
### 常见用法示例
1. **静态内容服务**:如上述例子所示,你可以指定一个目录来提供静态网页。
2. **反向代理**:将请求转发给另一个服务器。
```nginx
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000; # 转发至本地运行的应用
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
3. **负载均衡**:通过 upstream 模块分配流量。
```nginx
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
location / {
proxy_pass http://backend;
}
}
```
4. **SSL/TLS 配置**:使用 Let's Encrypt 获取免费证书,并配置 HTTPS。
```nginx
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
location / {
# 配置你的应用或静态资源
}
}
```
5. **日志管理**:配置访问日志和错误日志的位置及格式。
```nginx
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
```
以上是 Nginx 的一些基础操作和配置示例,实际使用时可能需要根据具体需求调整配置。对于更复杂的场景,比如缓存、gzip 压缩等高级功能,可以参考[Nginx 官方文档](https://nginx.org/en/docs/)获取更多信息。