翼度科技»论坛 云主机 服务器技术 查看内容

使用Nginx搭建代理服务器(正向代理HTTPS网站)的操作指南

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
一、正向代理与反向代理的区别


1.1 正向代理

正向代理位于客户端和服务器之间,代表客户端向服务器发起请求。其主要功能是隐藏客户端信息,代理客户端进行网络访问,尤其是访问某些受限资源时。

1.2 反向代理

反向代理位于服务器端,接收来自客户端的请求,然后转发给内部的服务器处理。其主要功能是隐藏服务器信息,在负载均衡、缓存等方面应用广泛。

二、环境准备


  • Nginx:我们将使用 Nginx 作为代理服务器。Nginx 是一个高效的反向代理服务器,也可以充当正向代理服务器。
  • 操作系统:本文以 Ubuntu 为例进行演示。
  • SSL 证书:Nginx 支持 HTTPS 代理,因此需要处理 SSL/TLS。

2.1 安装 Nginx

在 Ubuntu 系统中,Nginx 可以通过 APT 包管理器安装:
  1. sudo apt update
  2. sudo apt install nginx
复制代码
安装完成后,可以通过以下命令启动 Nginx:
  1. sudo systemctl start nginx
复制代码
2.2 验证 Nginx 安装

通过访问
  1. http://<你的服务器 IP>
复制代码
,若能看到 Nginx 欢迎页面,说明安装成功。

三、Nginx 配置正向代理服务器

Nginx 默认情况下是作为反向代理服务器使用的。为了让其充当正向代理,我们需要通过配置文件进行修改。

3.1 配置文件路径

Nginx 的默认配置文件位于
  1. /etc/nginx/nginx.conf
复制代码
,我们可以在该文件中添加代理配置。
  1. sudo nano /etc/nginx/nginx.conf
复制代码
3.2 启用 HTTP 正向代理

在 Nginx 配置中,新增代理服务器相关的配置。以下是一个配置正向代理的代码示例:
  1. http {
  2.     server {
  3.         listen 8888;  # 代理服务器监听端口
  4.         resolver 8.8.8.8;  # DNS 解析器
  5.         location / {
  6.             proxy_pass $scheme://$host$request_uri;  # 转发请求
  7.             proxy_set_header Host $host;
  8.             proxy_set_header X-Real-IP $remote_addr;
  9.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  10.             proxy_set_header X-Forwarded-Proto $scheme;

  11.             # 代理连接超时设置
  12.             proxy_connect_timeout 60;
  13.             proxy_send_timeout 60;
  14.             proxy_read_timeout 60;
  15.         }
  16.     }
  17. }
复制代码
说明:

    1. listen 8888;
    复制代码
    :代理服务器监听的端口号,客户端需要通过该端口访问代理服务器。
    1. resolver 8.8.8.8;
    复制代码
    :使用 Google 的公共 DNS 服务器进行域名解析。
    1. proxy_pass $scheme://$host$request_uri;
    复制代码
    :通过代理服务器将请求转发给目标服务器。
    1. proxy_set_header
    复制代码
    :设置请求头,传递客户端的原始信息。
保存并退出配置文件后,重启 Nginx 使配置生效:
  1. sudo systemctl restart nginx
复制代码
3.3 测试 HTTP 正向代理

在配置好正向代理服务器后,可以通过以下方式在本地测试 HTTP 请求:
使用 cURL 测试
  1. curl -x http://<你的服务器IP>:8888 https://www.example.com
复制代码
  1. -x
复制代码
参数表示使用代理服务器访问目标网站。若能成功返回目标网站的内容,则正向代理配置成功。

四、配置 HTTPS 正向代理


4.1 添加 HTTPS 支持

由于 HTTPS 传输数据是加密的,Nginx 需要通过
  1. CONNECT
复制代码
方法来代理 HTTPS 请求。我们可以在 Nginx 的配置文件中加入以下代码以支持 HTTPS。
修改
  1. /etc/nginx/nginx.conf
复制代码
文件,新增以下内容:
  1. server {
  2.     listen 8888;  # 监听端口
  3.    
  4.     resolver 8.8.8.8 valid=300s;
  5.     resolver_timeout 10s;

  6.     # 配置代理 CONNECT 请求
  7.     location / {
  8.         proxy_pass $scheme://$host$request_uri;
  9.         proxy_set_header Host $host;
  10.         proxy_set_header X-Real-IP $remote_addr;
  11.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  12.         proxy_set_header X-Forwarded-Proto $scheme;

  13.         # 代理 HTTPS 请求的 CONNECT 方法
  14.         proxy_connect_timeout 600;
  15.         proxy_send_timeout 600;
  16.         proxy_read_timeout 600;

  17.         proxy_http_version 1.1;
  18.         proxy_set_header Connection "";

  19.         # 允许 CONNECT 请求
  20.         if ($request_method = CONNECT) {
  21.             proxy_pass http://$host:443;
  22.         }
  23.     }
  24. }
复制代码
解释:

    1. proxy_http_version 1.1;
    复制代码
    :使用 HTTP 1.1,支持长连接。
    1. proxy_pass http://$host:443;
    复制代码
    :针对 HTTPS 的
    1. CONNECT
    复制代码
    请求,转发到目标主机的 443 端口(HTTPS)。

4.2 重新启动 Nginx

保存配置文件后,使用以下命令重新启动 Nginx:
  1. sudo systemctl restart nginx
复制代码
4.3 测试 HTTPS 正向代理

使用
  1. cURL
复制代码
测试代理 HTTPS 网站请求:
  1. curl -x http://<你的服务器IP>:8888 https://www.example.com
复制代码
如果能正确返回 www.example.com 的内容,则说明 HTTPS 正向代理配置成功。

五、代理日志与错误排查

在代理配置过程中,查看 Nginx 日志是排查问题的重要手段。默认情况下,日志文件存放在 /var/log/nginx/access.log 和 /var/log/nginx/error.log。
  1. # 查看访问日志
  2. tail -f /var/log/nginx/access.log

  3. # 查看错误日志
  4. tail -f /var/log/nginx/error.log
复制代码
六、代理服务器的优化

正向代理服务器可能需要处理大量的客户端请求,因此在生产环境下可以对 Nginx 进行一些优化配置。

6.1 设置代理缓存

可以启用 Nginx 的缓存功能来减轻目标服务器的压力:
  1. proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;

  2. server {
  3.     location / {
  4.         proxy_cache my_cache;
  5.         proxy_cache_valid 200 302 10m;
  6.         proxy_cache_valid 404 1m;
  7.         proxy_pass $scheme://$host$request_uri;
  8.     }
  9. }
复制代码
6.2 增加并发请求数量

Nginx 的默认并发连接数限制较低,可以通过以下方式调整:
  1. worker_processes auto;
  2. events {
  3.     worker_connections 10240;
  4. }
复制代码
七、总结

本文介绍了如何使用 Nginx 搭建正向代理服务器,支持 HTTP 和 HTTPS 网站代理,并提供了详细的代码和配置示例。通过本文的学习,您可以掌握搭建正向代理的基础知识,并能在实际项目中应用。
代理服务器是一种非常强大的工具,能够帮助我们隐藏客户端信息、绕过 IP 限制等。合理的配置和优化可以提升代理服务器的性能,从而满足实际应用中的需求。
以上就是使用Nginx搭建代理服务器(正向代理HTTPS网站)的操作指南的详细内容,更多关于Nginx搭建代理服务器的资料请关注脚本之家其它相关文章!

来源:https://www.jb51.net/server/330983ri8.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具