基本环境

  • node.js v18 及以上版本
  • pnpm ( 以下基于 pnpm )
  • Debian 下最新版本 node.js 的安装参考 Linux 新服务器配置

shell
cd ~

pnpm add -D vitepress

静态文件生成

shell
git clone https://github.com/Daleveral/docs.git  

cd docs

pnpm install

pnpm build

等待 ~/docs/.vitepress/ 下生成存储静态网页的目录 /dist

shell
mkdir /usr/share/nginx/html/dist

cp -r .vitepress/dist/* /usr/share/nginx/html/dist

ls /usr/share/nginx/html/dist

Nginx 配置

点击展开 : HTTPS 443 端口 + 自定义域名
shell


    server # notes  -->  https
    {
        listen 80;
        server_name notes.dalechu.cn; # 使用自定义域名 !
        return 301 https://$server_name$request_uri;
    }

    server # notes  -->  /usr/share/nginx/html/dist
    {
        gzip on;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        server_name notes.dalechu.cn; # 使用自定义域名 !
        listen 443 ssl http2;

        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_certificate notes.dalechu.cn.pem;
        ssl_certificate_key notes.dalechu.cn.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
            
        location /  # 映射 dist 文件
        {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $http_host;
            root   /usr/share/nginx/html/dist;
            # index  index.html index.htm;
            try_files $uri $uri.html $uri/ =404;
            error_page 404 /404.html;
            error_page 403 /404.html;
            location ~* ^/assets/ 
            {
                expires 1y;
                add_header Cache-Control "public, immutable";
            }
        }
    }

点击展开 : HTTP IP 地址 + 自定义端口
shell


    server {
        gzip on;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        listen 2017;
        server_name _;
        # index index.html;

        location / {
            # content location
            root /usr/share/nginx/html/dist;

            # exact matches -> reverse clean urls -> folders -> not found
            try_files $uri $uri.html $uri/ =404;

            # non existent pages
            error_page 404 /404.html;

            # a folder without index.html raises 403 in this setup
            error_page 403 /404.html;

            # adjust caching headers
            # files in the assets folder have hashes filenames
            location ~* ^/assets/ {
                expires 1y;
                add_header Cache-Control "public, immutable";
            }
        }
    }

重启 Nginx

shell
nginx -t

nginx -s reload

赞赏博主
评论 隐私政策