Chanzhaoyu / chatgpt-web

用 Express 和 Vue3 搭建的 ChatGPT 演示网页
MIT License
30.96k stars 11.21k forks source link

自建代理的端口映射具体怎么配置 #1522

Closed GitHubChrisChen8035 closed 1 year ago

GitHubChrisChen8035 commented 1 year ago

chatgpt-web的yml配置里, -ports: 3002:3002

自建代理的yml配置里, -ports: 8080:8080

第一段我理解,搭建的web服务用vps.ip:3002端口访问,映射到容器的3002端口 第二段根据注释,冒号前面那个8080是宿主机端口,然后映射到容器8080端口

是不是得改成3002:8080?如果这样改,容器启动的时候会提示端口被占用。

改成以下这样,容器能正常run,但web访问不了 chatgpt-web的yml配置里, -ports: 3002:3012

自建代理的yml配置里, -ports: 3012:8080

看来对端口映射还是知之甚少。。

huangwb8 commented 1 year ago

关于docker的端口映射,请看该文章: Docker系列 了解Docker Compose的配置文件

关于如何使用自建代理,请看该文章: Docker系列 基于OpenAI API和Access Token自建ChatGPT

有问题可以博客评论留言或在此issue继续提问。

Usongkam commented 1 year ago

自建代理不用映射到外面去,写在同一个yml里面直接用name访问8080端口就行。

1205129045x commented 1 year ago

chatgpt-web的yml配置里, -ports: 3002:3002

自建代理的yml配置里, -ports: 8080:8080

第一段我理解,搭建的web服务用vps.ip:3002端口访问,映射到容器的3002端口 第二段根据注释,冒号前面那个8080是宿主机端口,然后映射到容器8080端口

是不是得改成3002:8080?如果这样改,容器启动的时候会提示端口被占用。

改成以下这样,容器能正常run,但web访问不了 chatgpt-web的yml配置里, -ports: 3002:3012

自建代理的yml配置里, -ports: 3012:8080

看来对端口映射还是知之甚少。。

你弄好了吗,最后是怎么访问chat-web这个项目的?

Timoshao commented 1 year ago

我是用的docket部署的 自建代理的映射8080:8080 web-gpt端口映射:3002:3002
代理配置:API_REVERSE_PROXY=http://代理ip:8080/conversation 命令如下成功了 docker run -d --name chatgpt-web -p 3002:3002 -e OPENAI_API_MODEL=gpt-4 -e API_REVERSE_PROXY=http://代理ip:8080/conversation -e OPENAI_ACCESS_TOKEN=你的token chenzhaoyu94/chatgpt-web

1205129045x commented 1 year ago

我是用的docket部署的 自建代理的映射8080:8080 web-gpt端口映射:3002:3002 代理配置:API_REVERSE_PROXY=http://代理ip:8080/conversation 命令如下成功了 docker run -d --name chatgpt-web -p 3002:3002 -e OPENAI_API_MODEL=gpt-4 -e API_REVERSE_PROXY=http://代理ip:8080/conversation -e OPENAI_ACCESS_TOKEN=你的token chenzhaoyu94/chatgpt-web

那我部署在我买的国外vps里面,我本地电脑改怎么访问这个chatgpt-web项目?

huangwb8 commented 1 year ago

@1205129045x

一般都是有一个域名,然后通过域名解析ip,再通过nginx反向代理(通常是https)访问服务。

具体可见: Docker系列 两大神器NPM和ddns-go的安装

1205129045x commented 1 year ago

@huangwb8 大佬 我ssh连上了服务器,输入docker ps,显示我chatgpt-web项目和自建代理项目都运行了 屏幕截图_20230420_183213 在ssh里面可以看chatgpt-web这个项目是否正常运行了吗,(我的自建代理是可以用的,已经在本地电脑试过了)

huangwb8 commented 1 year ago

@1205129045x

这样看暂时看不出来。 你自己用http://vps-ip:端口号的方式访问试试看呗,成功就是正常运行了

1205129045x commented 1 year ago

@huangwb8 我运行了两个yml文件

version: '3'

services:
  app:
    image: chenzhaoyu94/chatgpt-web 
    ports:
      - 0.0.0.0:3002:3002 #这里我改成0.0.0.0了,是不是就可以直接用我的vps ip:3002访问这个项目
    environment:
      OPENAI_ACCESS_TOKEN: 我的acesstoken
      API_REVERSE_PROXY: http://我国外公网vps的ip:8080/conversation

version: "3"
services:
  go-chatgpt-api:
    container_name: go-chatgpt-api
    image: linweiyuan/go-chatgpt-api
    ports:
      - 8080:8080  # 容器端口映射到宿主机8080端口;宿主机监听端口可按需改为其它端口
    environment:
      - GIN_MODE=release
      - CHATGPT_PROXY_SERVER=http://chatgpt-proxy-server:9515
      - NETWORK_PROXY_SERVER=socks5://chatgpt-proxy-server-warp:65535
    depends_on:
      - chatgpt-proxy-server
      - chatgpt-proxy-server-warp
    restart: unless-stopped

  chatgpt-proxy-server:
    container_name: chatgpt-proxy-server
    image: linweiyuan/chatgpt-proxy-server
    restart: unless-stopped

  chatgpt-proxy-server-warp:
    container_name: chatgpt-proxy-server-warp
    image: linweiyuan/chatgpt-proxy-server-warp
    restart: unless-stopped

是不是我在本地电脑输入 http://vpsip:3002 就可以访问chatgpt的项目了,但是我输进去显示当前无法使用此页面

huangwb8 commented 1 year ago

@1205129045x

chatgpt-web改成类似这样:

version: '3'

services:
  app:
    image: chenzhaoyu94/chatgpt-web:latest
    ports:
      - 3002:3002 
    environment:
      OPENAI_ACCESS_TOKEN: 我的acesstoken
      API_REVERSE_PROXY: http://172.17.0.1:8080/conversation

当然,chatgpt-web的其它设置你也要做好。 这个我不太了解,因为我并不直接使用该项目。 我使用的是衍生项目 Kerwin1202/chatgpt-web

chatgpt-web和反向代理要在同一台VPS里,这样它们都处于一个名为docker0的内网中。

VPS的防火墙要开放8080和3002端口。

这样,在本地电脑输入 http://vpsip:3002 就可以访问chatgpt的项目了。 不过, 使用http是危险的。 你应该使用https。

你可以看我的教程了解更多细节: Docker系列 基于OpenAI API和Access Token自建ChatGPT

1205129045x commented 1 year ago

@huangwb8 欧克了,谢谢大佬,去博客支持了一下,赞助支持,为什么背景都是美女? 直接用端口访问是不是不太安全

huangwb8 commented 1 year ago

@huangwb8 欧克了,谢谢大佬,去博客支持了一下,赞助支持,为什么背景都是美女? 直接用端口访问是不是不太安全

感谢支持 ~( ̄▽ ̄~)(~ ̄▽ ̄)~

另外,关于壁纸的问题,已经在 关于Bensz对话Bensz 中描述过。 感兴趣可以看看 (ฅ´ω`ฅ)

huangwb8 commented 1 year ago

@huangwb8 欧克了,谢谢大佬,去博客支持了一下,赞助支持,为什么背景都是美女? 直接用端口访问是不是不太安全

“直接用端口访问是不是不太安全” 这种表述不严谨。 实际上,是http不安全。 一般,比如你访问 https://baidu.com ,其实是访问 https://baidu.com:443 。 只是因为443是默认的https端口,所以才会自动隐藏。 但是,你其实是使用了443这个端口访问百度,且这个过程是安全的。

1205129045x commented 1 year ago

@huangwb8 我有时候问他问题,半天不跳出来,是不是还和我本地翻墙的速度有关

huangwb8 commented 1 year ago

@huangwb8 我有时候问他问题,半天不跳出来,是不是还和我本地翻墙的速度有关

有几种可能性。

第一,你本地连接VPS有较高的延迟。

第二,你的chatgpt-web和反向代理连接延迟高。

第三, 你的反向代理和openai连接延迟高。

第四,可能有时候是高峰, 网络比较拥堵。

我在使用的时候,域名托管于Cloudflare,使用的是泛播cloudflare IP,应该和WARP比较兼容。 但我偶尔也会有那种卡顿的感觉。 但半天不跳出来的话,你可以删除旧对话再新建对话。

总体上,api的速度比access token表现好。 毕竟是花钱的。 比plus套餐那种靠谱得多 (ฅ´ω`ฅ)

GitHubChrisChen8035 commented 1 year ago

我是用的docket部署的 自建代理的映射8080:8080 web-gpt端口映射:3002:3002 代理配置:API_REVERSE_PROXY=http://代理ip:8080/conversation 命令如下成功了 docker run -d --name chatgpt-web -p 3002:3002 -e OPENAI_API_MODEL=gpt-4 -e API_REVERSE_PROXY=http://代理ip:8080/conversation -e OPENAI_ACCESS_TOKEN=你的token chenzhaoyu94/chatgpt-web

那我部署在我买的国外vps里面,我本地电脑改怎么访问这个chatgpt-web项目?

我是LA的VPS,可以在本地电脑的浏览器,输入vps的ip,后面追加:3002进行chatgpt-web项目访问,目前已经通过自建代理实现AccessToken访问。