后端strapi服务上线部署实记 | 青训营笔记

838 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 一 天

1、node项目上传服务器

  1. 刚开始在csdn、b站、掘金找了很多相关资料视频,开始了第一次踩坑,项目未删除node_modules未压缩直接上传服务器,幸好宝塔提醒超过1000+文件,文件量过大!
  2. 删除node_modules并对项目进行压缩后上传服务器目录*'www/wwwroot/sos'*,然后进行解压,出于对宝塔的信任以及项目可以在本地完美运行的前提,我直接对其进行域名+ssl证书一条龙上线服务,然后在加载模块时成功报错

image.png

3.我本以为是node版本和npm版本的问题,所以我将服务器端的node和npm版本分别换成了我本地版本以及strapi开发小伙伴的本地版本进行尝试,仍然报错!!

image.png

2、错误原因分析

1.我抓住output在网上搜寻答案,发现服务器的libstdc++.so.6版本过低,以至于缺少'CLIBCXX_3.4.20' image.png 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 ./

image.png

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证书

image.png

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首页

image.png

总结与思考

我觉得宝塔这种可视化的云服务器操作平台都能设计出来,对于'GLIBC_xxx'的配置为什么不能也做出可视化页面呢?

反正问题解决啦,希望对你有所帮助!!!