这是我参与「第五届青训营 」伴学笔记创作活动的第 一 天
1、node项目上传服务器
- 刚开始在csdn、b站、掘金找了很多相关资料视频,开始了第一次踩坑,项目未删除node_modules未压缩直接上传服务器,幸好宝塔提醒超过1000+文件,文件量过大!
- 删除node_modules并对项目进行压缩后上传服务器目录*'www/wwwroot/sos'*,然后进行解压,出于对宝塔的信任以及项目可以在本地完美运行的前提,我直接对其进行域名+ssl证书一条龙上线服务,然后在加载模块时成功报错
3.我本以为是node版本和npm版本的问题,所以我将服务器端的node和npm版本分别换成了我本地版本以及strapi开发小伙伴的本地版本进行尝试,仍然报错!!
2、错误原因分析
1.我抓住output在网上搜寻答案,发现服务器的libstdc++.so.6版本过低,以至于缺少'CLIBCXX_3.4.20'
2.我马上下载了libstdc++.so.6.0.29,并成功get了'CLIBCXX_3.4.20'
cd /usr/lib64
rm -rf libstdc++.so.6
cp /usr/local/lib64/libstdc++.so.6 ./
3.但是此时又出现了新的错误
# “/lib64/libc.so.6: version `GLIBC_2.18‘ not found (required by /lib64/libstdc++.so.6)
但是在上图是可以清晰地看到'GLIBC_2.18'是存在于当前云服务器的,没办法我又重新将'GLIBC_2.18'下载了一遍
curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar zxf glibc-2.18.tar.gz
cd glibc-2.18/
mkdir build
cd build/
../configure --prefix=/usr
make -j2
make install
3、成功解决问题并为项目配备域名和ssl证书
server
{
listen 80;
listen 443 ssl http2;
server_name sos.staraway.love;
index index.html index.htm default.htm default.html;
#root /www/wwwroot/sos;
#SSL-START SSL相关配置
#error_page 404/404.html;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
ssl_certificate /www/server/panel/vhost/cert/sos/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/sos/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;
#SSL-END
#ERROR-PAGE-START 错误页相关配置
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#REWRITE-START 伪静态相关配置
include /www/server/panel/vhost/rewrite/node_sos.conf;
#REWRITE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md|package.json|package-lock.json|\.env) {
return 404;
}
#一键申请SSL证书验证目录相关设置
location /.well-known/ {
root /www/wwwroot/sos;
}
#禁止在证书验证目录放入敏感文件
if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
return 403;
}
# HTTP反向代理相关配置开始 >>>
location ~ /purge(/.*) {
proxy_cache_purge cache_one $host$request_uri$is_args$args;
}
location / {
proxy_pass http://127.0.0.1:1337;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
proxy_set_header X-Host $host:$server_port;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 30s;
proxy_read_timeout 86400s;
proxy_send_timeout 30s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# HTTP反向代理相关配置结束 <<<
access_log /www/wwwlogs/sos.log;
error_log /www/wwwlogs/sos.error.log;
}
成功通过二级域名访问strapi首页
总结与思考
我觉得宝塔这种可视化的云服务器操作平台都能设计出来,对于'GLIBC_xxx'的配置为什么不能也做出可视化页面呢?
反正问题解决啦,希望对你有所帮助!!!