正反向代理 Nginx简单使用
代理
正向代理是客户端的代理,服务器不知道真正的客户端是谁;反向代理是服务器的代理,客户端不知道真正的服务器是谁
正向代理一般是客户端架设的;反向代理一般是服务器架设的
正向代理主要是用来解决访问限制问题;反向代理则是提供负载均衡、安全防护等作用。二者都能提高访问速度
正向代理
正向代理需要主动设置代理服务器ip或者域名进行访问,由设置的服务器ip或者域名去访问内容并返回
正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见。
上网者可以通过正向代理的方法隐藏自己的ip,免受攻击
反向代理
反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。
对于客户端来说,反向代理就相当于目标服务器,只需要将反向代理当作目标服务器一样发送请求就可以了,并且客户端不需要进行任何设置。
Nginx
高性能的开源 Web 服务器和反向代理服务器
轻量级、高并发、低内存消耗等特点
被广泛用于搭建静态资源服务器、负载均衡、反向代理等场景
Nginx安装
环境: WSL2 + Ubuntu
- 更新软件包列表
sudo apt update
- 安装Nginx
sudo apt install nginx
- 确认启动状态
systemctl status nginx
- 查看Nginx运行进程
ps -ef |grep nginx
如果有输出,确认主进程(master process)是否存在。
如果没有进程,重新启动 Nginx 服务
sudo systemctl restart nginx
5. 访问Nginx首页:localhost
nginx反向代理功能
- nginx.conf文件中,location 根路径的配置中增加proxy_pass配置
假设你有一个后端应用程序运行在 http://localhost:8080,并希望通过 Nginx 代理 /api/ 路径下的请求:
server {
listen 80;
server_name example.com;
location /api/ {
proxy_pass http://localhost:8080; # 代理到本地的 8080 端口
}
- 测试配置文件语法
sudo nginx -t
- 没有问题则重启nginx
sudo systemctl reload nginx
nginx负载均衡
- upstream 块定义backend名字的服务器组
- 后端代理服务器将请求转发到backend服务器组