在开发过程中,想把A域名(generativelanguage.googleapis.com)定向到B域名(api.miaoshu.ai),请求参数不变。以下是Mac电脑上的一个demo(最佳实践):推荐用 nginx ,它原生支持 HTTP/2 、WebSocket、可观测性更好;也可以把现有 Go 代理改成 ListenAndServeTLS ,但你需要本地证书文件(没有时间弄了)。

本地代理监听 443 端口,证书域名为 generativelanguage.googleapis.com ,把请求转发到 https://api.miaoshu.ai ,并设置上游 Host 为 api.miaoshu.ai 。

  1. 安装: brew install nginx ,证书: brew install mkcert && mkcert -install && mkcert generativelanguage.googleapis.com
  2. 在本机生成并信任 generativelanguage.googleapis.com 的证书,让本地代理能终止 TLS。
  3. 在 /etc/hosts 加: 127.0.0.1 generativelanguage.googleapis.com 。

nginx配置如下:

  1. server {
  2. listen 127.0.0.1:443 ssl http2;
  3. server_name generativelanguage.googleapis.com;
  4. ssl_certificate /etc/nginx/certs/generativelanguage.googleapis.com.pem;
  5. ssl_certificate_key /etc/nginx/certs/generativelanguage.googleapis.com-key.pem;
  6. location / {
  7. proxy_pass https://api.qingyuntop.top$request_uri;
  8. proxy_set_header Host api.miaoshu.ai;
  9. proxy_set_header X-Forwarded-Proto https;
  10. proxy_set_header X-Forwarded-Host $host;
  11. proxy_set_header X-Real-IP $remote_addr;
  12. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  13. proxy_http_version 1.1;
  14. proxy_set_header Upgrade $http_upgrade;
  15. proxy_set_header Connection "upgrade";
  16. proxy_ssl_server_name on;
  17. }
  18. }

分类: web

标签: