docker下部署clash和chatgpt-next-web
docker下部署clash和chatgpt-next-web
一、所需材料
- docker 和 docker-compose
- chatgpt 的 key
- clash 的订阅地址(本人不提供任何关于此类的服务,请自行解决)
- 如图三个文件(见下文):
Nginx中禁止某些的非法文件的访问和下载
下面列举了89中常见的非web文件
#禁止访问根目录下指定格式文件
location ~* ^(/backups/|/backup/|/back/|/bak/|/)([^/]*)(\.)(conf|config|cfg|ini|yaml|yml|json|xml|properties|toml|env|htaccess|nginx|htpasswd|htdigest|htgroup|key|pfx|pem|crt|der|cer|p12|p7b|p7c|crl|7z|zip|rar|tar|gz|bz2|xz|z|tgz|tbz2|txz|docx|doc|xls|xlsx|csv|pdf|ppt|bak|sql|dump|dmp|db|mdb|dbf|ldf|mdf|ibd|frm|sqlite|lua|exe|bat|sh|com|cmd|msi|app|jar|py|pl|c|cpp|java|class|dll|so|deb|rpm|rb|js|ps1|vbs|ps|psh|powershell|awk|sed|dmg|pkg|iso|img|bin)$
{
# 正则规则说明:
# ^ # start
# (/backups/|/backup/|/back/|/bak/|/) # 目录名
# ([^/]*) # 文件名 0次或多次
# (\.) # .
# (json|htaccess) # 后缀名
# $ # end
deny all;
}
手动进行备份,并记录其中的数据库备份文件的文件名,后续会用到
根据自身旧版16.4禅道的docker运行命令分析,确保旧版禅道数据都映射在了宿主机中,那么就可以直接删除旧版容器
(此步骤为避免新容器覆盖宿主机目录的保险操作,路径结合自身情况调整)
mv /home/ubuntu/zentaopms /home/ubuntu/zentaopms_old
mv /home/ubuntu/zentaomysql /home/ubuntu/zentaomysql_old
左边路径为旧版禅道映射在宿主机中的目录,右边路径为重命名目录,根据自身情况进行修改
在配置文件中,你需要调试的web之前任意块中,添加以下内容
add_header x0-NGINX-DEBUG '=========================================';
add_header x1-NGINX-http_user_agent $http_user_agent;
add_header xA-NGINX-http_cookie $http_cookie;
add_header xB-NGINX-request $request;
add_header xC-NGINX-request_body $request_body;
add_header xD-NGINX-request_method $request_method;
add_header xE-NGINX-request_time $request_time;
add_header xF-NGINX-request_uri $request_uri;
add_header xG-NGINX-scheme $scheme;
add_header xH-NGINX-request_server_name $server_name;
add_header xI-NGINX-request_server_port $server_port;
add_header xJ-NGINX-uri $uri;
add_header xK-NGINX-args $args;
add_header xL-NGINX-is_args $is_args;
add_header xM-NGINX-request_filename $request_filename;
add_header xN-NGINX-pid $pid;
add_header xO-NGINX-document_root $document_root;
add_header xP-NGINX-document_uri $document_uri;
add_header xQ-NGINX-host $host;
add_header xR-NGINX-hostname $hostname;
add_header xS-NGINX-proxy_protocol_addr $proxy_protocol_addr;
add_header xT-NGINX-proxy_protocol_port $proxy_protocol_port;
add_header xU-NGINX-query_string $query_string;
add_header xV-NGINX-realpath_root $realpath_root;
add_header xW-NGINX-remote_addr $remote_addr;
add_header xX-NGINX-remote_port $remote_port;
add_header xY-NGINX-remote_user $remote_user;
add_header xZ-NGINX-DEBUG '=========================================';
在宿主机中运行下列命令进行检查:
ping [容器ip]
可以ping通telnet 127.0.0.1 [映射的web端口]
连接正常telnet 127.0.0.1 [映射的mysql端口]
连上后立刻被切断,提示:"Connetion closed by foreign host"可以断定是mysql服务的问题
容器日志报错信息:"ln: failed to create symbolic link '/opt/zbox/tmp/mysql/mysql.sock': File exists"
通过容器日志可以看出是使用ln
命令创建软链接的时候出错,并导致后续代码无法执行