- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。
这篇文章给大家详细介绍了如何在 Nginx 中配置正向代理,既支持 HTTP 又支持 HTTPS,特别适合需要通过代理服务器来绕过一些访问限制的同学们。正向代理简单来说就是代理服务器替你访问目标网站。对于浏览器或客户端来说,它们通过代理服务器来发起请求,目标服务器根本不知道它们的存在。
Nginx 正向代理配置步骤:
1.安装 Nginx 如果你还没安装 Nginx,先用下面的命令来安装:
对于 CentOS/RHEL 系统:sudo yum install nginx
对于 Ubuntu/Debian 系统:sudo apt install nginx
2.配置 HTTP 正向代理
打开 Nginx 配置文件:sudo vim /etc/nginx/nginx.conf
在 http 块里面添加下面的配置:
server {
listen 8888; # 代理服务器监听的端口
location / {
proxy_pass http://$http_host$request_uri;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
这段配置的意思是:当客户端请求 HTTP 网站时,Nginx 会通过 proxy_pass 把请求转发给目标服务器。
3.重启 Nginx 保存配置后,用 sudo systemctl restart nginx 重启 Nginx,使配置生效。
4.配置 HTTPS 正向代理 Nginx 默认是不支持转发 HTTPS 请求的,所以需要用到 ngx_http_proxy_connect_module 模块。你可以从 GitHub 下载并安装这个模块: ngx_http_proxy_connect_module。
下载后解压并安装:
tar xf nginx-1.17.6.tar.gz
unzip ngx_http_proxy_connect_module-master.zipmv ngx_http_proxy_connect_module-master ngx_http_proxy_connect_module
安装依赖:
yum -y install make gcc openssl openssl-devel pcre-devel zlib zlib-devel
然后,进入解压的目录,执行:
cd nginx-1.17.6
./configure --add-module=/root/ngx_http_proxy_connect_module
make && make install
5.配置正向代理支持 HTTPS 打开 /usr/local/nginx/conf/nginx.conf 配置文件,加入下面的 HTTPS 配置:
server {
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
proxy_pass https://$http_host$request_uri;
proxy_ssl_certificate /etc/nginx/ssl/nginx.crt;
proxy_ssl_certificate_key /etc/nginx/ssl/nginx.key;
proxy_set_header Host $host;
}
}
6.重启 Nginx 再次重启 Nginx,sudo systemctl restart nginx,配置就完成了。
7.测试代理
测试 HTTP 代理,可以用 curl 来试:
curl -x http://www.landui.com:8888 http://www.landui.com
测试 HTTPS 代理:
curl -x https://www.landui.com:8888 https://www.landui.com
8.防火墙配置 确保防火墙允许通过端口 8888(或者你设置的其他端口):
对于 firewalld:
sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent
sudo firewall-cmd --reload
9.客户端配置 需要在客户端上设置代理:
对于 Linux,设置环境变量:
export http_proxy=http://www.landui.com:8888export https_proxy=https://www.landui.com:8888
蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。
售前咨询
售后咨询
备案咨询
二维码
TOP