帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  nginx正向代理http和https的实现步骤

nginx正向代理http和https的实现步骤

2025-02-19 15:38:29 136

欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。


这篇文章给大家详细介绍了如何在 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

 

蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,蓝队云期待与你一起探索。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: