### Nginx 学习笔记知识点总结 #### 一、Nginx 简介及安装 **Nginx** 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 Nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 ##### 1.1 下载与安装依赖 在安装 Nginx 之前,需要先安装一系列的依赖包,这些包包括: - **pcre**:Perl Compatible Regular Expressions,用于支持正则表达式的库。 - **openssl**:用于加密传输,如 HTTPS。 - **zlib**:用于数据压缩,支持 gzip 压缩。 - **gcc**:编译器工具集。 具体步骤如下: 1. **下载 pcre 依赖** ```bash wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz ``` 2. **解压并编译安装 pcre** ```bash tar -zxvf pcre-8.37.tar.gz cd pcre-8.37 ./configure && make && make install pcre-config --version ``` 3. **安装其他依赖** 对于 CentOS 或 RHEL 类系统,可以使用 yum 包管理器安装所需的依赖: ```bash yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel ``` ##### 1.2 Nginx 的安装 1. **下载 Nginx** ```bash wget -c https://nginx.org/download/nginx-1.12.2.tar.gz ``` 2. **解压并编译安装 Nginx** ```bash tar -zxvf nginx-1.12.2.tar.gz cd nginx-1.12.2 ./configure make && make install ``` 3. **验证安装** 安装完成后,可以在 `/usr/local/` 目录下找到 `nginx` 文件夹,其中包含了 Nginx 的所有组件。 #### 二、Nginx 常用命令 Nginx 提供了一系列命令来帮助管理和控制服务器状态: - `./nginx -v`:查看 Nginx 版本信息。 - `./nginx`:启动 Nginx 服务。 - `./nginx -s stop`:立即停止 Nginx 服务。 - `./nginx -s quit`:优雅地停止 Nginx 服务。 - `./nginx -s reload`:重新加载配置文件。 #### 三、Nginx 配置文件详解 Nginx 的配置文件位于 `/usr/local/nginx/conf/nginx.conf`,它由三个主要部分组成: 1. **全局块**:这部分位于配置文件的开头,一直到 `events` 块之间。它通常包含了对 Nginx 整体行为的设置,如运行 Nginx 的用户(组)、允许创建的 worker process 数、PID 文件的位置、错误日志文件的位置以及配置文件的引入等。例如: ```nginx worker_processes 1; # 工作进程的数量,可以根据服务器核心数进行调整 ``` 2. **events 块**:这部分涉及到 Nginx 与客户端的网络交互,可以设置网络连接的处理方式,例如是否开启多工作进程下的网络连接序列化、是否允许同时接收多个网络连接、选择哪种事件驱动模型处理连接请求、每个 worker process 可以支持的最大连接数等。 ```nginx events { use epoll; # 使用 epoll 模型 worker_connections 1024; # 每个 worker process 最大连接数 } ``` 3. **http 块**:这是配置文件的核心部分,几乎所有的功能和第三方模块的配置都位于此。它还可以包含多个 `server` 块,每个 `server` 块相当于一个虚拟主机,用于处理不同的域名或 IP 地址的请求。`server` 块可以进一步细分为: - **http 全局块**:配置 MIME 类型、日志格式等全局设置。 - **server 块**:每个 `server` 块用于定义一个虚拟主机,包含域名/IP 和端口绑定等信息。 - **location 块**:根据 URI 进行更详细的路由规则配置,可以定义静态资源的处理、动态请求的反向代理、缓存策略等。 #### 四、Nginx 反向代理与负载均衡实例 Nginx 不仅可以用作 Web 服务器,还可以作为反向代理和负载均衡器,通过将客户端的请求转发到不同的后端服务器来提高网站的可用性和扩展性。 ##### 4.1 反向代理实例 Nginx 作为反向代理时,可以通过以下配置实现: ```nginx server { listen 80; server_name example.com; location / { proxy_pass http://backend_server; # 将请求代理到后端服务器 proxy_set_header Host $host; # 设置代理头部 proxy_set_header X-Real-IP $remote_addr; } } ``` ##### 4.2 负载均衡实例 Nginx 也可以作为负载均衡器,将流量均匀地分发到多个后端服务器上。常用的负载均衡策略有: 1. **轮询(默认)**:按顺序依次将请求发送到不同的后端服务器。 2. **权重(weight)**:根据服务器的处理能力来分配请求。 3. **ip_hash**:根据客户端 IP 地址进行哈希,确保来自同一客户端的请求始终被发送到同一台后端服务器。 4. **fair(第三方模块)**:根据后端服务器的响应时间进行分配。 示例配置如下: ```nginx upstream backend { server 192.168.1.10 weight=5; server 192.168.1.11 weight=1; server 192.168.1.12; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; } } ``` 以上是对 Nginx 的安装、配置及应用的一系列知识点的总结。Nginx 是一个非常强大的工具,不仅能够高效地处理大量的并发连接,还提供了丰富的功能和灵活性,使其成为现代 Web 架构中不可或缺的一部分。
- 粉丝: 5165
- 资源: 2961
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助