(想看详细步骤跳转这里

最近发现ChatGPT-Next-Web这个东西真的挺好用,然后OpenAI还发布了GPT4 Turbo比网页版GPT4还强,而且我用得也没那么多指不定还更便宜,所以就产生了搭一个自己的ChatGPT Web UI出来方便使用。

而且想用GPT4 Turbo我还得消费到5美刀,我自己一个人用gpt3.5还是很难刷到5美刀的,除非用脚本(倒也不是不可以,提取两个gal的文本然后用脚本自动翻译,一直想做这个操作)。所以还可以分享给大家临时使用。

最开始我想弄成(www.)sorachan.top/chat/的样子,但是实际上这是很不推荐的,因为每个根域名下的内容最好是互相有联系,否则对于复杂的Web APP来说就会出现各种缓存,文件存储交叉混杂的问题。

我折腾了一整个下午都没弄好,因为ChatGPT-Next-Web这个程序并不支持运行在子目录下,这种情况下它应该是不能存储和访问文件。

然后晚上煮饺子时就想到了更好的方法,弄成chat.sorachan.top/的样子,这才是一个主网站的子程序或者内容应该用的模式。接下来是正确做法。

详细步骤: {#method_begin}

  1. 按照官方这里提供的方法部署ChatGPT-Next-Web到自己的服务器上,注意不要带任何额外参数,不要把程序访问外网需要用的proxy的端口(如果你的服务器不再墙内则根本不需要)和自己将来访问这个程序用的端口弄混。假设这里端口设定的是3000。
  2. 在你的DNS注册网站添加一个entry,登记chat.sorachan.top。这里使用CNAME或者A都可以,因为都在一个服务器上ip都是一样的。
  3. 在nginx里配置新的HTTP的server,(Apach方式应该差不多但是我也不知道细节),代码如下(注意替换你自己的域名和端口):

    server {
        listen 80;
        server_name chat.sorachan.top;
    
        location / {
            proxy_pass http://127.0.0.1:3000/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # 不缓存,支持流式输出
            proxy_cache off;  # 关闭缓存
            proxy_buffering off;  # 关闭代理缓冲
            chunked_transfer_encoding on;  # 开启分块传输编码
            tcp_nopush on;  # 开启TCP NOPUSH选项,禁止Nagle算法
            tcp_nodelay on;  # 开启TCP NODELAY选项,禁止延迟ACK算法
            keepalive_timeout 300;  # 设定keep-alive超时时间为65秒
        }
    }
  4. 然后就是用certbot更新ssl证书来维持https访问,方法也和搭建网站时的方法一模一样。然后就成功啦!

    效果演示

最后修改:2023 年 12 月 13 日
如果觉得我的文章对你有用,请随意赞赏