使用Nginx转发api.openai.com请求

背景

在中国大陆,由于网络限制的原因,访问一些国外网站需要使用梯子。但是如果想要构建自己的应用或网站,则需要搭建一个代理转发域名。在本文中,将介绍如何通过通过Nginx和Clash代理,构建openai.com 请求转发的过程。

部署安装

在Linux系统下安装配置Clash并 http 通过nginx 访问/openai 路径时,网络通过clash代理访问,请求实际是转发至https://api.openai.com。

安装Clash

首先需要在Linux系统下安装Clash,在终端中执行以下命令:

1. 打开终端(Terminal)。

2. 进入你要安装Clash的目录,例如:cd /usr/local/bin。

3. 下载Clash的最新版本,命令:wget https://github.com/Dreamacro/clash/releases/download/v1.15.1/clash-linux-amd64-v1.15.1.gz。

4. 解压Clash的压缩文件,命令:gunzip clash-linux-amd64-v1.15.1.gz。

5. 给Clash文件添加执行权限,命令:chmod +x clash-linux-amd64-v1.15.1。

6. 将Clash文件移动到/usr/local/bin目录下,命令:mv clash-linux-amd64-v1.15.1 /usr/local/bin/clash。

以上命令会下载Clash的安装包并解压,然后将其赋予可执行权限并启动。

配置Clash

在安装完成Clash后,需要进行配置才能正常使用。Clash的配置文件位于~/.config/clash/config.yaml,可以使用vim等编辑器编辑该文件,添加如下配置:

port: 7890
socks-port: 7891
allow-lan: true
mode: Rule
log-level: info
external-controller: 0.0.0.0:9090

以上配置中,port指定了Clash的http代理端口,建议设置为7890;socks-port指定了Clash的socks代理端口,建议设置为7891;allow-lan开启允许局域网访问;mode选择了Clash的工作模式为Rule,表示通过规则进行代理;log-level指定了Clash的日志级别;external-controller指定了Clash的控制器地址和端口。

另外,需要在~/.config/clash/目录下创建一个名为config的文件,写入Clash的自定义配置,例如以下内容:

port: 7890
socks-port: 7891
allow-lan: true
mode: Rule
log-level: info
external-controller: 0.0.0.0:9090
proxies:
  - name: Proxy-A
    type: socks5
    server: example.com
    port: 1080
    cipher: chacha20-ietf
  - name: Proxy-B
    type: http
    server: example.com
    port: 8080
    cipher: chacha20-ietf
rules:
  - DOMAIN,www.google.com,Proxy-A
  - DOMAIN-SUFFIX,google.com,Proxy-A
  - MATCH,Proxy-B

以上配置中,proxies指定了Clash的代理列表,包含两个代理Proxy-AProxy-Brules指定了代理规则,其中DOMAIN表示按照域名规则匹配,DOMAIN-SUFFIX表示按照域名后缀匹配,MATCH表示匹配所有流量,并由Proxy-B代理。

下载Country.mmdb放在~/.config/clash目录

wget https://github.com/Dreamacro/maxmind-geoip/releases/download/20230412/Country.mmdb

安装配置nginx

在Linux系统下安装nginx,并进行配置。可以使用apt-get等包管理器进行安装,然后在/etc/nginx/目录下创建一个名为clash.conf的文件,写入以下内容:

server {
    listen 8080;
    server_name _;

    location /openai {
        proxy_pass https://api.openai.com;
        proxy_set_header Host api.openai.com;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

以上配置中,指定了nginx监听8080端口,并将所有请求转发到Clash的代理端口。

启动Clash和nginx

在Linux系统中,启动Clash可以通过以下命令完成:

clash -d ~/.config/clash/
nohup clash -d ~/.config/clash/ > /dev/null 2>&1 &

在启动时,可以使用-d参数指定Clash的配置文件存放路径。以上命令中,Clash会在~/.config/clash/目录中搜索config.yaml文件。

在修改、保存以上配置后,可以使用以下命令启动nginx:

sudo systemctl start nginx

测试代理

在启动Clash和nginx后,可以通过浏览器或者其它应用程序测试代理是否正常工作。在浏览器中打开localhost:8080,进行测试访问。如果正常工作,Clash会将请求转发到代理服务器,从而实现vpn代理转发。

0%