(想看详细步骤跳转这里)
最近发现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}
- 按照官方这里提供的方法部署ChatGPT-Next-Web到自己的服务器上,注意不要带任何额外参数,不要把程序访问外网需要用的proxy的端口(如果你的服务器不再墙内则根本不需要)和自己将来访问这个程序用的端口弄混。假设这里端口设定的是3000。
- 在你的DNS注册网站添加一个entry,登记chat.sorachan.top。这里使用CNAME或者A都可以,因为都在一个服务器上ip都是一样的。
在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秒 } }
然后就是用certbot更新ssl证书来维持https访问,方法也和搭建网站时的方法一模一样。然后就成功啦!