Git Product home page Git Product logo

blog's People

Contributors

xuandao avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

blog's Issues

使用反向代理访问被墙的网站

在国内,访问被封锁的海外网站成为一件十分麻烦的事情。这时,我们可以使用反向代理服务来绕过封锁,顺利访问墙外资源。在本文中,我们将介绍如何使用 oracle 韩国区的免费实例构建一个反向代理服务,并使用 api.openai.com 为例,让大家更好的理解反向代理的原理和具体操作步骤。

一、搭建反向代理服务器

创建 oracle 实例

参考信息: https://www.oracle.com/cn/cloud/free/

  1. 前提条件

首先需要一个 oracle 帐号,可以前往官网注册获取。登录后进入 oracle 控制台。

  1. 创建实例

点击左侧的“实例”菜单,进入实例管理界面,点击右上角的“创建实例”按钮。在实例创建界面中,选择“Oracle Cloud Free Tier”,创建一个免费实例;

  1. 配置实例

选定服务类型后,需要配置实例信息,如配置名称、管理密码、SSH公钥等信息,选择公网 IP 和块存储类型和大小,确认信息后,点击“创建”按钮。

创建完成后,在实例列表中,可以看到刚刚创建的实例,并且可以看到分配的 IP 地址。

搭建反向代理

NGINX 安装&配置

参考文档: https://docs.oracle.com/zh-tw/learn/oracle-linux-nginx/#before-you-begin

使用 SSH 工具连接到实例,如 Xshell、putty、secureCRT 等。

  1. 安装 NGINX
sudo dnf install -y nginx
  1. 配置 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;
 }
}
  1. 启动 Nginx
sudo systemctl enable --now nginx.service

防火墙配置

  1. 开启 oracle 实例的 80 端口
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
  1. 配置 linux 安全策略
setsebool -P httpd_can_network_connect 1

至此,整个反向代理服务配置完成。你可以通过 oracle 实例的公网 ip 直接进行访问。

二、通过反向代理访问

现在,我们已经成功安装好了反向代理服务,接下来,我们将以 api.openai.com 为例,说明如何通过反向代理访问国外网站。

通过 host 绑定访问

  1. 首先,修改 hosts 文件,将 api.openai.com 服务器的IP地址绑定到反向代理服务器的IP上

sudo nano /etc/hosts 在文件末尾添加以下代码 ( api.openai.com 的 IP 地址 ) api.openai.com

  1. 其次,在浏览器输入 api.openai.com 即可访问该网站。

域名绑定

  1. 若你有自己的域名,也可以将域名解析至反向代理服务器(注意 NGINX 配置中需加上你的域名,如 api.yourname.com),后可直接使用域名进行访问。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.