blog's People
blog's Issues
使用反向代理访问被墙的网站
在国内,访问被封锁的海外网站成为一件十分麻烦的事情。这时,我们可以使用反向代理服务来绕过封锁,顺利访问墙外资源。在本文中,我们将介绍如何使用 oracle 韩国区的免费实例构建一个反向代理服务,并使用 api.openai.com 为例,让大家更好的理解反向代理的原理和具体操作步骤。
一、搭建反向代理服务器
创建 oracle 实例
参考信息: https://www.oracle.com/cn/cloud/free/
- 前提条件
首先需要一个 oracle 帐号,可以前往官网注册获取。登录后进入 oracle 控制台。
- 创建实例
点击左侧的“实例”菜单,进入实例管理界面,点击右上角的“创建实例”按钮。在实例创建界面中,选择“Oracle Cloud Free Tier”,创建一个免费实例;
- 配置实例
选定服务类型后,需要配置实例信息,如配置名称、管理密码、SSH公钥等信息,选择公网 IP 和块存储类型和大小,确认信息后,点击“创建”按钮。
创建完成后,在实例列表中,可以看到刚刚创建的实例,并且可以看到分配的 IP 地址。
搭建反向代理
NGINX 安装&配置
参考文档: https://docs.oracle.com/zh-tw/learn/oracle-linux-nginx/#before-you-begin
使用 SSH 工具连接到实例,如 Xshell、putty、secureCRT 等。
- 安装 NGINX
sudo dnf install -y nginx
- 配置 NGINX 配置 (/etc/nginx/conf.d/default.conf)
server {
listen 80;
server_name api.openai.com api.yourname.com;
location / {
proxy_pass http://api.openai.com;
}
}
- 启动 Nginx
sudo systemctl enable --now nginx.service
防火墙配置
- 开启 oracle 实例的 80 端口
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
- 配置 linux 安全策略
setsebool -P httpd_can_network_connect 1
至此,整个反向代理服务配置完成。你可以通过 oracle 实例的公网 ip 直接进行访问。
二、通过反向代理访问
现在,我们已经成功安装好了反向代理服务,接下来,我们将以 api.openai.com
为例,说明如何通过反向代理访问国外网站。
通过 host 绑定访问
- 首先,修改 hosts 文件,将
api.openai.com
服务器的IP地址绑定到反向代理服务器的IP上
sudo nano /etc/hosts 在文件末尾添加以下代码 ( api.openai.com 的 IP 地址 ) api.openai.com
- 其次,在浏览器输入
api.openai.com
即可访问该网站。
域名绑定
- 若你有自己的域名,也可以将域名解析至反向代理服务器(注意 NGINX 配置中需加上你的域名,如
api.yourname.com
),后可直接使用域名进行访问。
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.