1. 程式人生 > >關於對整站進行二級域名的改造

關於對整站進行二級域名的改造

緣由

為什麼需要這樣呢?

這部分完全可以在koa2裡面完成,我用到了koa-mount,這個庫可以用來實現將路徑指向不同的服務。

app.use(mount('/blog', blog));
app.use(mount('/demo', demo));
app.use(mount('/portal', portal));
app.use(mount('/web', web));

然後就達到了我的目的,不同的地址指向不同的專案。

就這樣持續了一個多月。

後來發現一個問題,由於只是相對路徑不一樣,域名完全一致,所以這些專案的storage是完全共享的,比如我在blog頁面登入了,把一些登入資訊存到了localstorage

,然後demo裡面也有登入,如果欄位和blog一致,就會造成資料被覆蓋的問題。

這應該算是自己規劃的不足吧,在瀏覽器看來https://www.codelabo.cn/bloghttps://www.codelabo.cn/demo完全是同一個網址,只是進到了不同的子頁面,所以資料是完全共享的。

那麼如何解決呢?

思考

其實各大網站都有這樣的現象,因為業務繁多,主域名都只要一個,比如百度就一個https://www.baidu.com,其他業務怎麼描述的呢?

用到了二級域名,甚至是三級域名!

比如

還有很多都是這種表述方式

這也是二級域名最正確的使用方式

解決

那麼我現在頁決定使用二級域名。

二級域名的申請是免費的,我是在騰訊雲購買的域名,可以在

我的域名中進行申請

我的域名

點選分配子域名至專案,然後又一個彈出框,填入你需要的二級域名名稱,然後確定

我的域名

成功後進入協作子域名,就可以看到剛才申請的域名了

我的域名

當然現在還是不能使用的,需要先進行解析,進去新增解析,這裡需要新增你的公網ip

我的域名

然後看到解析正常,等幾分鐘就可以使用這個二級域名了

我的域名

部署

以上完成了二級域名的申請和解析,那麼如何把專案和這個域名來關聯起來呢。

我這裡用到了nginx,後面會分享一下nginx的使用

你可以把二級域名當成一個全新的域名一樣,直接進行分配就行,比如

nginx.conf檔案中新增如下配置

server {
       listen       443;#https預設埠
       server_name  demo.codelabo.cn;#域名
       ssl on;
       ssl_certificate      ../ssl/1_demo.codelabo.cn_bundle.crt;#htpps證書
       ssl_certificate_key  ../ssl/2_demo.codelabo.cn.key;
       ssl_session_timeout  5m;
       ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
       ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
       ssl_prefer_server_ciphers  on;
       location / {
           root   /usr/local/src/web-app/www/demo;
           index  index.html index.htm;
           expires 1d;
       }
    }
這裡用的是https,所以預設埠是443,如果是http,預設埠就是80,預設埠在瀏覽器可以省略不寫

然後重啟nginx,使配置生效

nginx -s reload

這樣就完成了二級域名的部署。

小節

總的來說,這次改造還是很有成就感的,尤其是對我們這些前端來說,從剛開始對伺服器半點都不懂,逐步摸索,到最終上線,這些過程還是很有意義的

關於nginx的安裝和初步使用,打算最近專門整理分析一下,敬請期待~