Nginx的反向代理
一、什么是Nginx;
Nginx(发音为 "engine-x") 是一个高性能的开源 Web 服务器、反向代理服务器和负载均衡器,以其高并发处理能力、低内存消耗和稳定性著称,在现代互联网架构中扮演核心角色。
1)核心功能;
- Web 服务器
-
替代 Apache: 直接处理 HTTP(S) 请求,快速响应静态资源(HTML、CSS、JS、图片)。
-
优势:基于异步非阻塞 I/O 模型(如 epoll),能轻松应对数万并发连接,资源占用远低于传统多线程服务器。
-
-
反向代理
-
工作流程:用户 → Nginx (接收请求) → 转发请求 → 后端应用服务器(如 Node.js/Tomcat) → Nginx → 用户;
-
主要作用:隐藏真实服务器 IP,抵御直接攻击;客户端无需知晓后端架构;缓存响应结果加速访问。
-
-
负载均衡
-
分发策略:轮询;加权轮询;IP哈希;最小连接数;
-
健康检查:自动屏蔽故障节点,保障服务高可用;
-
二、Nginx的安装
1)准备三台虚拟服务器并连接好工具(工具自行选择);
2)使用二进制安装,官网下载Nginx;
Nginx下载官网:nginx: download
3)将压缩包上传到虚拟机并解压;
4)创建软连接方便后续使用;
ln -s nginx-1.28.0 nginx
5)进入Nginx文件目录安装Nginx并启动;
# 安装Nginx依赖的工具
yum -y install gcc gcc-c++ zlib zlib-devel pcre-devel openssl openssl-devel
# 进入Nginx目录
cd nginx
# 检测配置依赖
./configure --prefix=/usr/nginx
# 进行编译并安装
make
make install
# 启动Nginx
nginx -c /usr/nginx/conf/nginx.conf# 拓展:
nginx -s stop # 停止服务
nginx -s reload # 重载配置文件(重启服务)
nginx -t # 检测配置文件是否存在错误# 进入本地浏览器输入服务器IP就可以正常访问;
二、Nginx配置反向代理;
# 我们借用www.qq.com暂时作为我们后端代理的服务域名;# 进入Nginx配置文件目录;
cd /usr/nginx/conf
# 编辑配置文件;
vim nginx.conf
# 我暂时把文件中注释掉的行都删除,防止我们操作错误;
# 我这里使用XFTP进行文件编辑,这样方便查看,操作便捷;
1)配置前:
worker_processes 1;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;location / {root html;index index.html index.htm;} error_page 500 502 503 504 /50x.html;location = /50x.html {root html;} }
}
2)配置后:
worker_processes 1;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;location / {proxy_pass http://www.qq.com; # 只需要在这里配置一个域名代理,要全路径!}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
}
# 重新加载Nginx配置文件;
nginx -s reload
# 并在浏览器输入我们的ip直接回车,会直接代理到www.baidu.com这个域名上;