天天看點

使用群晖搭建halo部落格

家裡買了一台Nas,并且開通了動态公網IP,但是80端口和443端口都是被封禁的。

是以通路Nas上的服務總是需要帶上端口号。

我們可以使用域名解析的隐性Url轉發隐藏端口号,也可以購買一台雲伺服器自己做類似的隐性Url轉發。這樣通路群晖服務就可以不帶端口号,并且帶寬不會受雲伺服器帶寬限制。

最終效果:通路 blog.vvhz.com 即可通路部署在本地Nas上的halo部落格服務。帶寬為本地的光纖上傳帶寬50M。

前提:

1.群晖+動态公網ip

2.一台雲伺服器最低配置即可

3.域名+DDNS

通路流程:

blog.vvhz.com 解析到雲伺服器nginx,nginx做一層轉發,轉發到群晖的 ddns.vvhz.com:8089上,這樣可以去掉群晖的端口号。

需要用frameset做頁面嵌套,否則會占用公網的帶寬。

server {
    listen 80; # 監聽80端口
    server_name blog.vvhz.com;  # 自己的域名
    #把http的域名請求轉成https
    return 301 https://$host$request_uri;
}
server {
        listen 443 ssl;
        server_name blog.vvhz.com;
        client_max_body_size 100m;
        ssl_certificate /home/soft/nginx/cert/vvhz.com/vvhz.com_bundle.crt;
        ssl_certificate_key /home/soft/nginx/cert/vvhz.com/vvhz.com.key;
        location / {
            root /home/soft/nginx/web/blog;
            index index.html;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location /admin {
            root /home/soft/nginx/web/blog;
            index admin.html;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
           
<html >
        <head>
                <meta charset="utf-8">
                <meta http-equiv="X-UA-Compatible" content="IE=edge">
                <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2">
                <title>日志</title>
                <link rel="icon" href="favicon.ico" target="_blank" rel="external nofollow"  type ="image/x-icon">
        </head>
        <frameset rows="100%">
                <frame src="https://ddns.vvhz.com:8089/journals"></frame>
        </frameset>
</html>
           

ddns.vvhz.com使用花生殼ddns解析到群晖的ip上。

群晖使用docker啟動centos鏡像。

centos鏡像中安裝nginx,啟動halo服務端。

安裝nginx監聽8089端口,并配置ssl證書,然後轉發到halo的8089端口上。

server {
       listen 8089 ssl;
        listen 5554;
        client_max_body_size 100m;
       server_name blog.vvhz.com;
        ssl_certificate /home/soft/nginx/cert/vvhz.com/vvhz.com_bundle.crt;
        ssl_certificate_key /home/soft/nginx/cert/vvhz.com/vvhz.com.key;
    location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.31.90:8090/;  # 這裡改為自己伺服器ip
    }
}
           

整個流程使用同一個一級域名,然後申請一個泛域名的ssl證書,*.vvhz.com。

網上有免費申請泛域名SSL證書的教程。

如何白piao一個免費的泛域名SSL證書_Throwable文摘的部落格-CSDN部落格

繼續閱讀