如何使用 Docker 构建一个代理服务器
演示如何使用 Docker 构建一个代理服务器,将请求代理到 https://api.openai.com/
并使用 HTTPS 进行通信。
在与
Dockerfile
相同的目录中创建一个名为nginx.conf
的文件,并将以下内容复制到文件中:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27events {
worker_connections 1024;
}
http {
server {
listen 443 ssl;
ssl_certificate /etc/nginx/cert.pem;
ssl_certificate_key /etc/nginx/cert.key;
ssl_session_cache shared:le_nginx_SSL:1m;
ssl_session_timeout 1440m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
location / {
proxy_pass https://api.openai.com/;
proxy_ssl_server_name on;
proxy_set_header Host api.openai.com;
proxy_set_header Connection '';
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
}
}
}请确保将
cert.pem
和cert.key
替换为您自己的 SSL 证书文件路径。在与
Dockerfile
相同的目录中,将您的 SSL 证书文件(包括cert.pem
和cert.key
)放置在该目录下。创建一个名为
Dockerfile
的文件,并将以下内容复制到文件中:1
2
3
4
5
6
7FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
COPY cert.pem /etc/nginx/cert.pem
COPY cert.key /etc/nginx/cert.key
EXPOSE 443打开终端,切换到包含
Dockerfile
和nginx.conf
文件的目录。运行以下命令来构建 Docker 镜像:
1
docker build -t openai-proxy .
构建完成后,运行以下命令来启动代理服务器容器:
1
docker run -d -p 8443:443 openai-proxy
这将在后台启动一个名为
openai-proxy
的容器,并将容器内的 443 端口映射到主机的 8443 端口。
现在,您可以通过访问 https://localhost:8443
来访问代理服务器,并通过代理服务器访问 https://api.openai.com/
。请注意,这只是一个简单的示例,您可能需要根据需要进行更改和调整,以满足您的具体需求和环境配置。同时,使用自签名证书时,您的浏览器可能会显示安全警告,因为证书不是由受信任的颁发机构签发。