Nginx代理
Nginx
安装(Linux)
1 |
|
Nginx反向代理
概念
- 在客户端与真实服务器之间设置一台反向代理服务器,用这台服务器接收请求并将请求转发至内部网络上的真实服务器。
- 后端服务器处理请求后,响应–>反向代理服务器–>客户端
作用
- 很显然,当配置合理的转发规则时,将能实现负载均衡
- 隐藏后端服务器的真实IP,提高安全性
- 流量控制
- 可以在Nginx服务器上缓存某些高频访问资源,提高响应速度,实现缓存加速
- 动静分离:把动态资源和静态资源放在不同服务器上,通过Nginx服务器分别反向代理这些资源,实现静态文件和动态内容的分离,提高访问效率
具体操作示例
- 在/etc/nginx/conf.d下创建一个配置文件
简单配置文件内容参考:
1 |
|
测试配置
1
sudo nginx -t
重新加载配置
1
nginx -s reload
Nginx静态代理
概念
类似反向代理,不过专用于代理静态资源,与反向代理的配置有点差异
配置示例
可以直接对Nginx的主配置文件nginx.conf进行编辑,但是复杂配置也可以分成多个配置文件,下面会有讲解
以下为nginx.conf的简单配置示例
代理本地资源
- 在nginx.conf下添加server块
1 |
|
检查语法是否正确
1
nginx -t
重新加载配置
1
nginx -s reload
如何将配置分散到多个文件
可以在nginx.conf的http块下使用include指令来包含其他配置文件
1 |
|
代理多台静态文件服务器的资源
在nginx.conf下添加upstream块以定义upstream服务器组
1
2
3
4
5upstream static_servers {
server [实际静态文件服务器的IP地址+端口];
server []; # 可以添加多个服务器以实现负载均衡
...
}添加server块
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26http {
# ...
server {
listen 80; # 监听端口,可以根据需要修改
server_name static.example.com; # 域名或IP地址,用于访问静态文件
location / {
proxy_pass http://static_servers; # 代理请求到定义的upstream服务器组
proxy_set_header Host $host; # 传递请求头中的Host字段
proxy_set_header X-Real-IP $remote_addr; # 传递请求头中的真实IP地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 传递请求头中的代理链信息
# 可选:配置缓存以提高性能
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=static_cache:10m max_size=1g inactive=60m use_temp_path=off;
proxy_cache static_cache;
proxy_cache_valid 200 302 10m; # 对200和302响应码缓存10分钟
# 可选:配置访问控制、日志等
# ...
}
# 其他location块,用于处理特定路径的请求(可选)
# ...
}
}加载配置
1
2nginx -t
nginx -s reload
Nginx代理
https://fiy-pc.github.io/2024/11/11/Nginx/