在内网中反向代理清华镜像

在内网环境中,服务器经常需要访问外部资源,如开源软件的镜像站。然而,直接访问可能受限于多种因素,如网络策略或地理位置。此时,设置一个反向代理服务器可以极大地方便内网中的服务器访问和更新软件包。本文将介绍如何使用 Nginx 在内网中反向代理清华大学的开源镜像站,并确保通过 HTTPS 安全访问。

域名与 SSL 证书

在配置反向代理时,使用域名 mirror.abc.com 代替直接使用 IP 地址,可以提高可读性并允许通过熟悉的网络命名约定来访问服务。由于镜像站 mirrors.tuna.tsinghua.edu.cn 默认将 HTTP 请求重定向到 HTTPS,配置 SSL 证书变得至关重要。这确保了从 HTTP 到 HTTPS 的无缝过渡,同时保持了数据传输的安全性和用户的信任。

域名与镜像站的关系

mirror.abc.com 是我们为内网反向代理服务配置的自定义域名。它代表了运行反向代理的服务器,使得内网用户能够通过一个易于记忆的地址访问代理服务。而 mirrors.tuna.tsinghua.edu.cn 是清华大学提供的开源镜像站的域名,它提供了 Arch Linux 等开源项目的软件包。

在这种设置中,mirror.abc.com 作为反向代理,转发所有进入的请求到 mirrors.tuna.tsinghua.edu.cn。通过 Nginx 配置的 proxy_pass 指令,所有请求首先被发送到清华大学的镜像站。然后,镜像站的数据被返回并提供给最终用户,模拟了一个透明的代理服务。

Nginx 配置

首先,确保 Nginx 已安装在您的服务器上。接下来,编辑 Nginx 配置文件,通常位于 /etc/nginx/nginx.conf/etc/nginx/sites-available/ 目录下。

HTTP 配置

在 Nginx 配置中添加一个新的 server 块,用于处理 HTTP 请求:

server {listen 80;server_name mirror.abc.com;charset utf-8;location / {proxy_pass http://mirrors.tuna.tsinghua.edu.cn;proxy_set_header Accept-Encoding deflate;sub_filter_once off;sub_filter mirrors.tuna.tsinghua.edu.cn mirror.abc.com;proxy_redirect off;proxy_set_header        X-Real-IP       $remote_addr;proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;proxy_max_temp_file_size 0;proxy_connect_timeout 90;proxy_send_timeout 90;proxy_read_timeout 90;proxy_buffer_size 4k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k;}}

HTTPS 配置

为了确保数据传输的安全性,配置 HTTPS 是推荐的做法:

server {listen 443 ssl;server_name  mirror.abc.com;ssl_certificate /usr/local/ssl/nginx.crt;       #证书公钥ssl_certificate_key  /usr/local/ssl/nginx.key;  #证书私钥ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!3DES:!aNULL:!eNULL;ssl_prefer_server_ciphers on;proxy_ssl_server_name on;# 下面这段location配置是关键location / {sub_filter mirrors.tuna.tsinghua.edu.cn mirror.abc.com;sub_filter_once off;proxy_ssl_session_reuse off;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Referer https://mirrors.tuna.tsinghua.edu.cn;proxy_set_header Host mirrors.tuna.tsinghua.edu.cn;proxy_pass https://mirrors.tuna.tsinghua.edu.cn;proxy_set_header Accept-Encoding "";}
}

生成 SSL 证书

使用 OpenSSL 生成自签名 SSL 证书,步骤如下:

  1. 生成私钥:

    openssl genrsa -out nginx.key 2048
    
  2. 创建证书签名请求(CSR):

    openssl req -new -key nginx.key -out nginx.csr -subj "/CN=mirror.abc.com"
    
  3. 生成自签名证书:

    openssl x509 -signkey nginx.key -in nginx.csr -req -days 365 -out nginx.crt
    

应用配置

保存 Nginx 配置文件后,重新加载 Nginx 以应用更改:

sudo systemctl reload nginx

结论

通过以上步骤,您可以在内网中设置 Nginx 作为反向代理,以便安全、高效地访问清华大学的开源镜像站。这不仅提高了访问速度,还增强了数据传输的安全性。使用自定义域名和 SSL 证书,我们确保了服务的可靠性和用户的信任。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/849679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

<Python><PyQt5>基于python使用PyQt5编写UI时,如何在单独的文件里构建菜单项然后调用?

前言 本文纯作为记录,但如果恰好有相同需要的朋友,也可以看看。本文实现的是,使用PyQt5时,如果需要添加menu项,但不想把所有元素都写在一个主程序文件中,部件太多的话,程序臃肿,因此…

[NOVATEK] NT96580行车记录仪功能学习笔记

一、u-Boot升级灯 运行u-Boot程序时LED灯闪烁,找到运行过程中一直在运行的函数在里面进行LED引脚电平的翻转 宏定义 Z:\SunFan\AHD580\pip\na51055_PIP\BSP\u-boot\include\configs\nvt-na51055-evb.h Z:\SunFan\AHD580\pip\na51055_PIP\BSP\u-boot\drivers\mtd\nvt_flash_…

MATLAB format

在MATLAB中,format 是一个函数,用于控制命令窗口中数值的显示格式。这个函数可以设置数值的精度、显示的位数等。以下是一些常用的 format 命令: format long:以默认的长格式显示数值,通常显示15位有效数字。format s…

什么是专业神秘顾客公司?(深圳神秘顾客公司)

专业神秘顾客公司是指那些拥有经过严格培训的专业“神秘顾客”,并为客户提供神秘顾客调查业务的公司。以下是关于专业神秘顾客公司的详细介绍: 一、定义与业务 专业神秘顾客公司,通常称为Mystery Shopper Company,其核心业务是为…

【Linux】深入解析动静态库:原理、制作、使用与动态链接机制

文章目录 前言:1. 什么是动静态库2. 动静态库的制作和使用3. 动态库的查找问题4. 理解动态库的加载4.1. 站在系统的角度理解4.2. 编址、可执行程序4.3. 动态库动态链接和加载问题 总结: 前言: 在软件开发中,动静态库是两种重要的…

11.盛水最多的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 示例 1&a…

Python基础总结之functools.partial

Python基础总结之functools.partial 在日常编程中,我们经常会遇到这样的情况:需要调用一个函数,但希望它的某些参数被预先设置好,而不是每次调用时都手动传递这些参数。Python 的 functools.partial 提供了一种优雅的方式来实现这…

编写程序提示用户输入一个数目(例如:100)、年利率(例如:5)以及月份数(例如:6),然后显示给定月份后账户上的钱数。

(财务应用程序:复利值)假设你每月向银行账户存 100美元,年利率为5%,那么每 月利率是 0.05/12-0.00417。 第一个月之后,账户上的值就变成:100*(10.00417)100.417 第二个月之后,账户上的值就变成(100100.417)*(10.00417)-201.252 第…

Switch刷机:安装Android系统和Linux系统

文章目录 Switch刷机解锁SwitchSwitchroot重要提示 安装Android系统安装Linux系统(Ubuntu)安装Lakka系统安装多系统(和大气层系统、官方原生系统并存) Switch刷机 解锁Switch 刷机的前提是要解锁bootloader,早期的NS…

C# Parallel 未完

在C#中,Parallel.For 是一个非常有用的功能,它允许将一个循环的迭代分布到多个线程上,以利用多核处理器的计算能力。Parallel.For 是 System.Threading.Tasks 命名空间下的 Parallel 类的一个方法。 以下是 Parallel.For 的基本用法&#xf…

call apply bind 修改this指向的区别

var obj1 {name: zhang,getName() {console.log(this.name)}}var obj2 {name: list,getName() {console.log(this.name)}}obj1.getName.call(obj2) //listobj1.getName.apply(obj2) //listobj1.getName.bind(obj2) // obj2.getName() //list call 改变this,自…

算法金 | 不愧是腾讯,问基础巨细节 。。。

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 最近,有读者参加了腾讯算法岗位的面试,面试着重考察了基础知识,并且提问非常详细。 特别是关于Ada…

[UE 虚幻引擎] DTLoadFbx 运行时加载FBX本地模型插件说明

本插件可以在打包后运行时动态加载FBX模型。 新建一个Actor 并添加一个 DT Runtime Fbx Component。 然后直接调用组件的函数 LoadFile 加载显示模型(注:不支持模型动画) FilePath : 加载模型的绝对路径。 Create Collision : 是否创建碰撞…

使用python绘制桑基图

使用python绘制桑基图 桑基图效果代码 桑基图 桑基图(Sankey Diagram)是一种用来表示流动(如能源、资金、材料等)在不同实体之间转移的图表。 每个流的宽度与流量成正比,通常用于显示能量或成本流动的分布情况。 桑基…

C++的重载

重载关系 同一作用域中&#xff0c;函数名相同&#xff0c;参数表不同的函数只有同一作用域中的同名函数才涉及重载问题&#xff0c;不 同作用域中同名函数遵循标识符隐藏原则 #include <QtCore/QCoreApplication> #include <QList> #include <QDebug> #in…

Cloudpods 强大的多云管理平台部署

简介 Cloudpods 是一款简单、可靠的企业IaaS资源管理软件。帮助未云化企业全面云化IDC物理资源&#xff0c;提升企业IT管理效率。 Cloudpods 帮助客户在一个地方管理所有云计算资源。统一管理异构IT基础设施资源&#xff0c;极大简化多云架构复杂度和难度&#xff0c;帮助企业…

AI绘画教程分享:Stable Diffusion使用指南,12000+AI关键词大合集

01 首先下载好SD的安装包&#xff08;百度、B站、小红书等都可以找到资源&#xff09;&#xff0c;用启动器开始运行 02 从这里下载别人的模型套用&#xff0c;可以多多探索一下&#xff01;以下是各个模型的具体介绍&#xff1a; 03 这就是我们打开的初始界面&#xff0c;常…

CondaSSLError: OpenSSL appears to be unavailable on this machine.

conda create -n x1 python3.7报错 PS C:\Users\Richardo.M.Song\Desktop\lele_seg\x1> conda create -n x1 python3.7 Collecting package metadata (current_repodata.json): failed CondaSSLError: OpenSSL appears to be unavailable on this machine. OpenSSL is requ…

Allure在jenkins中无法显示的问题

jenkins中使用allure生成报告需要注意工作环境和路径的配置 前提条件&#xff1a; jenkins容器中已安装jdk和allure jenkins中配置全局工具环境&#xff1a; 项目中配置allure路径&#xff1a; 路径来源&#xff1a; Path需要选择相对路径的allure-report、allure-results

第八篇——矢量化:象形文字和拼音文字是如何演化的?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 通过这篇看似在讲文字的演化过程&#xff0c;实际是在说人生应该如何走&a…