基于http协议的nginx代理服务
- [1. 打开 Nginx 虚拟机80端口配置文件](#1. 打开 Nginx 虚拟机80端口配置文件)
- [2. 添加代理配置](#2. 添加代理配置)
- [3. 重启nginx服务](#3. 重启nginx服务)
1. 打开 Nginx 虚拟机80端口配置文件
Nginx 的默认80端口虚拟机配置文件通常位于/etc/nginx/conf.d/default.conf
。
bash
vim /etc/nginx/conf.d/default.conf
2. 添加代理配置
在配置文件中的 server
块设置代理服务。以下是配置示例:
bash
server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://backend.example.com;
proxy_redirect default;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;
}
}
以下是配置项的解释:
bash
# 将客户端请求转发到指定的后端服务器
# 这里的 http://backend.example.com 是目标后端服务器的地址
proxy_pass http://backend.example.com;
# 设置代理服务器的重定向规则
# 'default' 表示使用 Nginx 默认的重定向处理方式
# 通常不需要修改,除非有特殊需求
proxy_redirect default;
# 设置请求头中的 Host 字段
# $http_host 是客户端请求中包含的主机名,例如 www.example.com
# 这样后端服务器可以知道客户端请求的原始主机名
proxy_set_header Host $http_host;
# 设置请求头中的 X-Real-IP 字段
# $remote_addr 是客户端的真实 IP 地址
# 这个设置确保后端服务器能够看到客户端的真实 IP,而不是代理服务器的 IP
proxy_set_header X-Real-IP $remote_addr;
# 设置请求头中的 X-Forwarded-For 字段
# $proxy_add_x_forwarded_for 将客户端的 IP 地址添加到 X-Forwarded-For 头部中
# X-Forwarded-For 头部记录了客户端的原始 IP 地址以及经过的代理服务器的 IP 地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 设置连接超时时间
# 这是 Nginx 与后端服务器建立连接的最大时间
# 如果在指定时间内无法建立连接,Nginx 会终止连接
proxy_connect_timeout 30;
# 设置发送超时时间
# 这是 Nginx 向后端服务器发送请求时的最大时间
# 如果在指定时间内没有完成发送,Nginx 会终止请求
proxy_send_timeout 60;
# 设置读取超时时间
# 这是 Nginx 从后端服务器读取响应数据的最大时间
# 如果在指定时间内没有接收到响应数据,Nginx 会终止读取
proxy_read_timeout 60;
# 启用代理缓存
# 启用后,Nginx 会将后端服务器的响应缓存在内存中
# 这有助于提高性能,特别是在处理大量请求时
proxy_buffering on;
# 设置单个代理缓冲区的大小
# 'proxy_buffer_size' 决定了用于缓存响应头的内存大小
# 增加此值可以处理较大的响应头
proxy_buffer_size 32k;
# 设置代理缓冲区的数量和大小
# 'proxy_buffers' 指定了缓冲区的数量和每个缓冲区的大小
# 这里使用 4 个缓冲区,每个 128k,用于缓存从后端服务器获取的数据
proxy_buffers 4 128k;
# 设置忙碌缓冲区的大小
# 'proxy_busy_buffers_size' 是用于处理繁忙状态下的缓冲区的总大小
# 增大这个值可以帮助处理高负载时的数据缓存
proxy_busy_buffers_size 256k;
# 设置临时文件的最大大小
# 'proxy_max_temp_file_size' 定义了代理缓存临时文件的最大允许大小
# 如果响应数据超过这个大小,Nginx 会将其存储在临时文件中
# 设置一个合理的值以避免磁盘空间占用过多
proxy_max_temp_file_size 256k;
3. 重启nginx服务
检测nginx配置文件
bash
nginx -t
重启服务
bash
systemctl restart nginx
访问代理服务器IP地址,看是否成功