nginx
nginx 是一个 Web 服务器,它支持 HTTP、HTTPS、SPDY、SPDY/3、QUIC、WebSockets、SSE、SSE/2、SSE/3、SSE/4、SSE/5、SSE/6、SSE/7、SSE/8、SSE/9、SSE/10、SSE/11、SSE/12、SSE/13、SSE/
- 正向代理: 客户端配置正向代理, 通过代理服务器将请求转发到服务器(可隐藏客户端信息)
- 反向代理: 在服务端配置反向代理, 通过代理服务器接收客户端请求(可隐藏服务端信息)
- 负载均衡: 反向代理时, 单个代理服务对应多个后端服务, 根据算法转发请求
- 动静分离: 将静态资源(nginx)和动态资源(后端)分离, 以提高性能
Table of Contents
Section titled “Table of Contents”nginx 安装
Section titled “nginx 安装”nginx 官网
安装包安装
nginx 是由 C 编写, 需要使用相关依赖编译器编译
$ apt install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel -y $ tar -xvf nginx-1.25.3.tar.gz $ cd nginx-1.25.3 $ ./configure $ make && make install >
包管理工具安装
$ apt install nginx $ systemctl start nginx >
docker 镜像安装
$ docker pull nginx $ docker run -d -p 80:80 -p 443:443 --name nginx nginx >
nginx 配置
Section titled “nginx 配置”nginx 配置文件: /etc/nginx/nginx.conf
将服务器指定路径映射到 nginx 端口
http { server { listen 80; server_name localhost; client_max_body_size 1024M; # 默认location location / { root /usr/local/; index index.html index.htm; } } }
http: 服务配置, 可以定义多个 server 块 listen: 服务器监听的端口 server_name: 服务器名称, 可以是域名或 IP 地址 location: 服务器路径, / 表示任意路径 root: 服务器路径, 用于指定静态文件的路径 index: 服务器路径, 用于指定静态文件的索引文件
http { server { listen 80; server_name localhost; client_max_body_size 1024M; location / { proxy_pass http://127.0.0.1:8080; } } }
upstream backend { server 127.0.0.1:8080; server 127.0.0.1:8081; server 127.0.0.1:8082; } http { server { listen 80; server_name localhost; client_max_body_size 1024M; location / { proxy_pass http://backend; } } } }
负载均衡策略
- round_robin: 默认, 依次分配请求
- ip_hash: 根据客户端 IP 地址分配请求
- weighted: 根据权重分配请求