Nginx 的安装与基本配置
发布时间: 2024-05-01 06:40:13 阅读量: 77 订阅数: 54
nginx安装与配置
![Nginx 的安装与基本配置](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAyMC8zLzEzLzE3MGQ0ODI0ZjljNzJkNjQ?x-oss-process=image/format,png)
# 2.1 Nginx 配置文件结构
### 2.1.1 主配置文件
Nginx 的主配置文件通常位于 `/etc/nginx/nginx.conf`。它是 Nginx 的核心配置文件,定义了 Nginx 的全局设置,例如:
- 监听端口
- 工作进程数量
- 日志文件路径
- 模块加载
### 2.1.2 虚拟主机配置文件
虚拟主机配置文件定义了特定域名的配置。它们通常位于 `/etc/nginx/sites-available` 目录中,并以 `.conf` 扩展名结尾。每个虚拟主机配置文件包含以下内容:
- 服务器块:定义虚拟主机的监听端口、根目录和索引文件。
- 位置块:定义特定 URL 路径的处理规则,例如重定向、代理和缓存。
- 访问控制:限制对虚拟主机的访问,例如通过 IP 地址或用户名/密码。
# 2. Nginx 配置基础
Nginx 配置文件是 Nginx 服务器运行的核心,它定义了服务器如何处理请求、响应以及各种其他设置。理解 Nginx 配置文件的结构和语法对于配置和优化 Nginx 服务器至关重要。
### 2.1 Nginx 配置文件结构
Nginx 配置文件通常分为两个主要部分:主配置文件和虚拟主机配置文件。
#### 2.1.1 主配置文件
主配置文件通常位于 `/etc/nginx/nginx.conf`,它包含 Nginx 服务器的全局设置,包括:
- 监听端口
- 工作进程数
- 连接数限制
- 日志配置
- 模块加载
#### 2.1.2 虚拟主机配置文件
虚拟主机配置文件位于 `/etc/nginx/sites-available/` 目录中,每个配置文件对应一个虚拟主机。虚拟主机配置文件包含特定于该虚拟主机的设置,包括:
- 域名
- 根目录
- 索引文件
- 错误页面
### 2.2 Nginx 指令语法
Nginx 指令是用于配置 Nginx 服务器的关键字。Nginx 指令语法遵循以下格式:
```
指令 参数1 参数2 ... ;
```
其中:
- `指令` 是一个关键字,指定要执行的操作。
- `参数` 是指令的参数,用于指定操作的详细信息。
- `;` 是分号,表示指令的结束。
#### 2.2.1 基本指令
Nginx 提供了一系列基本指令,用于配置服务器的基本设置,包括:
| 指令 | 描述 |
|---|---|
| `listen` | 指定服务器监听的端口 |
| `server_name` | 指定服务器的域名 |
| `root` | 指定服务器的根目录 |
| `index` | 指定服务器的默认索引文件 |
| `error_page` | 指定服务器的错误页面 |
#### 2.2.2 虚拟主机指令
虚拟主机指令用于配置特定虚拟主机的设置,包括:
| 指令 | 描述 |
|---|---|
| `server` | 定义一个虚拟主机 |
| `location` | 定义虚拟主机中的一个位置块 |
| `proxy_pass` | 将请求转发到后端服务器 |
| `rewrite` | 重写请求的 URL |
| `limit_req` | 限制请求速率 |
### 2.3 Nginx 模块管理
Nginx 模块是可加载的代码模块,用于扩展 Nginx 服务器的功能。Nginx 提供了一系列内置模块,还支持第三方模块。
#### 2.3.1 内置模块
Nginx 提供了一系列内置模块,包括:
- `ngx_http_core_module`:核心模块,提供基本功能。
- `ngx_http_gzip_module`:Gzip 压缩模块,用于压缩响应。
- `ngx_http_proxy_module`:代理模块,用于将请求转发到后端服务器。
- `ngx_http_rewrite_module`:重写模块,用于重写请求的 URL。
- `ngx_http_ssl_module`:SSL 模块,用于启用 SSL/TLS。
#### 2.3.2 第三方模块
除了内置模块,Nginx 还支持第三方模块。第三方模块可以从 Nginx 模块仓库中安装。
| 模块 | 描述 |
|---|---|
| `ngx_pagespeed` | 页面加速模块,用于优化 Web 性能 |
| `ngx_brotli` | Brotli 压缩模块,用于压缩响应 |
| `ngx_http_geoip2_module` | GeoIP2 模块,用于根据客户端 IP 地址获取地理位置信息 |
| `ngx_http_auth_request_module` | 请求认证模块,用于基于请求进行身份验证 |
| `ngx_http_limit_conn_module` | 连接限制模块,用于限制客户端连接数 |
# 3. Nginx 性能优化
### 3.1 Nginx 性能调优参数
Nginx 提供了丰富的性能调优参数,通过合理配置这些参数,可以显著提升 Nginx 的性能。
#### 3.1.1 worker_processes
`worker_processes` 参数指定 Nginx 运行的 worker 进程数量。worker 进程负责处理客户端请求,因此增加 worker 进程数量可以提高并发处理能力。但是,过多的 worker 进程会消耗更多的系统资源,因此需要根据服务器的实际情况进行调整。
**参数说明:**
```
worker_processes 4;
```
* `4`:worker 进程数量,建议设置为服务器 CPU 核数的 1-2 倍。
**代码逻辑分析:**
该指令指定 Nginx 运行 4 个 worker 进程。
#### 3.1.2 worker_connections
`worker_connections` 参数指定每个 worker 进程可以同时处理的最大连接数。增加 `worker_connections` 可以提高 Nginx 的并发处理能力,但同时也会消耗更多的系统资源。
**参数说明:**
```
worker_connections 1024;
```
* `1024`:每个 worker 进程可以同时处理的最大连接数,建议设置为服务器内存大小的 1/
0
0