avatar

瓜生花子八宝粥

少壮不努力 老了看浏览器

  • 首页
  • 开源项目
  • Linux
  • Windows
  • Docker
  • 中间件
  • 数据库
主页 Nginx 正向代理配置
文章

Nginx 正向代理配置

发表于 2024-12-9 更新于 2024-12- 9
作者 jepwei
13~17 分钟 阅读

Nginx 搭建 HTTPS 代理服务器

1. 背景说明

在内网环境中,服务器往往无法直接访问外网,这给软件安装和系统更新带来不便。本文介绍如何使用 Nginx 搭建代理服务器,实现内网服务器通过代理访问外网资源。特别关注 HTTPS 代理的实现方案。

2. 环境准备

2.1 所需组件

  • Nginx 源码包
  • ngx_http_proxy_connect_module 模块
  • proxy_connect_rewrite 补丁
  • 编译环境(gcc、make 等)
  • 依赖库(pcre-devel、zlib-devel、openssl-devel)

2.2 安装依赖

# CentOS/RHEL
sudo yum install -y gcc make pcre-devel zlib-devel openssl-devel

# Ubuntu/Debian
sudo apt install -y build-essential libpcre3-dev zlib1g-dev libssl-dev

3. 部署步骤

3.1 下载和准备

# 下载 Nginx 源码
wget https://nginx.org/download/nginx-1.24.0.tar.gz

# 下载代理模块
git clone https://github.com/chobits/ngx_http_proxy_connect_module.git

# 解压 Nginx
tar -zxf nginx-1.24.0.tar.gz
cd nginx-1.24.0

# 创建 modules 目录
mkdir modules
cp -r ../ngx_http_proxy_connect_module modules/

3.2 打补丁

# 应用补丁
patch -p1 < modules/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_102101.patch

3.3 编译安装

# 配置
./configure --prefix=/opt/nginx \
  --with-http_ssl_module \
  --add-module=./modules/ngx_http_proxy_connect_module

# 编译和安装
make && sudo make install
#注意make install会覆盖原有的nginx,记得备份原有安装的nginx,或者直接替换objs

3.4 配置文件

创建或修改 /opt/nginx/conf/nginx.conf:

worker_processes  auto;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    # 优化配置
    sendfile        on;
    keepalive_timeout  65;
    client_max_body_size 10m;
    client_body_buffer_size 128k;

    # 代理服务器配置
    server {
        listen 8443;
        server_name localhost;

        # DNS 解析服务器配置
        resolver 8.8.8.8 8.8.4.4 valid=300s;
        resolver_timeout 10s;

        # 启用 CONNECT 方法
        proxy_connect;
        proxy_connect_allow 443 80;
        proxy_connect_connect_timeout 10s;
        proxy_connect_read_timeout 10s;
        proxy_connect_send_timeout 10s;

        location / {
            proxy_pass $scheme://$host$request_uri;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_buffering on;
            proxy_buffers 256 4k;
            proxy_max_temp_file_size 0;
            proxy_connect_timeout 30;
            proxy_send_timeout 60;
            proxy_read_timeout 60;
        }
    }
}

3.5 启动服务

# 检查配置
/opt/nginx/sbin/nginx -t

# 启动 Nginx
/opt/nginx/sbin/nginx

# 重新加载配置
/opt/nginx/sbin/nginx -s reload

4. 测试验证

4.1 HTTP 代理测试

curl "http://www.example.com/" -x 127.0.0.1:8443 -v

4.2 HTTPS 代理测试

curl "https://www.example.com/" -x 127.0.0.1:8443 -v

5. 客户端配置

5.1 临时配置

export http_proxy="http://proxy.example.com:8443"
export https_proxy="http://proxy.example.com:8443"

5.2 永久配置

编辑 /etc/profile 或 ~/.bashrc:

# 添加代理配置
export http_proxy="http://proxy.example.com:8443"
export https_proxy="http://proxy.example.com:8443"

6. 安全建议

  1. 访问控制

    # 限制访问来源
    allow 10.0.0.0/8;
    allow 172.16.0.0/12;
    allow 192.168.0.0/16;
    deny all;
    
  2. 启用访问日志

    access_log /opt/nginx/logs/proxy_access.log combined;
    error_log /opt/nginx/logs/proxy_error.log warn;
    
  3. 定期更新 Nginx 版本

7. 故障排查

  1. 代理连接失败

    • 检查 Nginx 服务状态
    • 验证防火墙配置
    • 查看错误日志
  2. SSL 握手失败

    • 确认证书配置
    • 检查 SSL 模块是否正确加载

8. 性能优化

  1. 工作进程优化

    worker_processes auto;
    worker_rlimit_nofile 65535;
    
  2. 连接池优化

    keepalive_timeout 65;
    keepalive_requests 100;
    
  3. 缓冲区优化

    proxy_buffering on;
    proxy_buffer_size 4k;
    proxy_buffers 8 16k;
    

改进说明:

  1. 优化了文档结构和层级
  2. 添加了详细的安装步骤
  3. 补充了安全建议
  4. 增加了性能优化部分
  5. 使用示例域名和 IP 替换了敏感信息
  6. 添加了故障排查指南
  7. 完善了配置文件说明
  8. 增加了日志配置
中间件
Nginx
许可协议: 
分享

相关文章

5月 23, 2025

nacos 部署

环境:centos7 版本:nacos-2.3.2 部署方式:编译安装 1.安装jdk (自行安装) 2.下载nacos安装包并解压 3.配置nacos的配置文件 ### 注释掉原有的端口参数再添加这个 server.port=7200 ### 开启鉴权 nacos.core.auth.enable

12月 31, 2024

容器部署fastdfs

本文详细介绍了在Docker中部署FastDFS的步骤,包括创建工作目录、配置Docker Compose、启动服务、检查端口监听以及修改Nginx配置。首先,需在主机创建FastDFS工作目录并设置权限,然后编辑docker-compose.yml文件定义服务配置。接下来,通过docker-compose命令启动服务,并使用netstat命令确认端口监听情况。最后,若需调整Nginx的8888端口配置,可进入storage容器并编辑nginx.conf文件,完成后重启容器以应用更改。

12月 24, 2024

容器部署nacos

本文详细介绍了如何在 Docker 中部署 Nacos,包括前提条件和具体步骤。首先确保已安装 Docker,然后拉取 Nacos 镜像并创建必要的目录。接着设置目录权限,复制初始配置文件到本地,重新运行 Nacos 容器。最后,用户可以通过浏览器访问 Nacos 管理界面,并可选地启用鉴权。按照这些步骤,用户将能够成功在 Docker 上部署 Nacos,并根据需求进行进一步配置。

下一篇

FRP 内网穿透配置

上一篇

Nginx 静态资源站点配置

最近更新

  • 1panel 部署
  • jumpserver 堡垒机部署
  • ubuntu 设置时间显示为24小时制
  • pritunl vpn 部署
  • dockovpn 部署

热门标签

nacos openvpnas 资源分享 docker oracle mysql ubuntu 开源项目 虚拟化 Linux

目录

©2025 瓜生花子八宝粥. 保留部分权利。

使用 Halo 主题 Chirpy