一、Nginx特点
处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。
无缓存的反向代理加速,简单的负载均衡和容错。
FastCGI,简单的负载均衡和容错。
模块化的结构。包括gzipping, byte ranges, chunked responses,以及SSI-filter等filter。如果有FastCGI或其他代理服务器处理单页中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。支持SSL和TLSSNI。
二、Nginx 的原理
-
Nginx简介
Nginx是一种十分轻量级的Web服务器/高性能反向代理服务器,因为Nginx是一时间驱动的方式编写的所以有非常好的性能,同时也是一种非常高效的反向代理服务器,负载均衡服务器。
-
模块化设计
- Nginx 使用模块化结构,可以根据需求加载不同功能的模块,比如 HTTP、Mail、Stream 等模块。
-
反向代理和负载均衡
- Nginx 常用作反向代理,将客户端请求转发到后端服务器。
- 支持多种负载均衡算法(如轮询、加权轮询、最少连接等),提高系统的可用性和性能。
-
静态文件处理:
- Nginx 对静态文件的处理效率极高,能够直接读取文件,响应速度快。
-
请求处理流程:
- 客户端请求到达 Nginx,经过解析、路由、处理后返回响应,过程高效且可扩展。
三、安装 Nginx
以下是在 Linux 系统上安装 Nginx 的基本步骤(以 Ubuntu 为例):
-
更新包索引:
sudo apt update
-
安装 Nginx:
sudo apt install nginx
-
启动 Nginx:
sudo systemctl start nginx
-
设置开机自启:
sudo systemctl enable nginx
-
检查安装: 打开浏览器,访问
http://localhost
,如果看到 Nginx 的欢迎页面,说明安装成功。
四、使用 Nginx
-
基本配置: Nginx 的配置文件通常位于
/etc/nginx/nginx.conf
。你可以通过以下命令打开它:sudo nano /etc/nginx/nginx.conf
-
配置示例:
server { listen 80; server_name example.com; location / { root /var/www/html; index index.html index.htm; } location /api { proxy_pass http://backend-server; } }
-
测试配置: 在修改配置后,使用以下命令测试配置是否正确:
sudo nginx -t
-
重载配置: 如果测试通过,使用以下命令重载 Nginx 配置:
sudo systemctl reload nginx
-
访问日志和错误日志: 日志文件默认存储在
/var/log/nginx/access.log
和/var/log/nginx/error.log
。
五、常见操作
-
启停 Nginx:
bash复制代码sudo systemctl start nginx # 启动 sudo systemctl stop nginx # 停止 sudo systemctl restart nginx # 重启
-
设置 HTTPS: 使用 Let’s Encrypt 或其他 CA 生成 SSL 证书,配置文件中添加 SSL 相关的设置。
-
负载均衡: 配置多个后端服务,使用
upstream
指令进行负载均衡。