博客開發簡記(2):給博客找個域名

承接上一節,給ubuntu上的django更新一下:

./manage.py migrate

好了,我連公網ip都有了,我可不想每次都以ip來訪問我的網站,那怎麼弄一個域名呢?

(一)申請域名

不必研來研去了,直接在阿里雲提供的服務中購買域名吧,但在下單前,你先要完成域名的信息模板的審覈,意思是,你要填完你的真實信息(包括上傳你的證件),通過審覈後,才能繼續域名的購買。域名信息模板在這個地方創建與管理:https://dc.console.aliyun.com/next/index?#/info-template/InfoTemplate

填寫信息,然後郵箱驗證、實名認證,請等待。

之後,在這個地方:https://mi.aliyun.com/ ,找到你想要的域名,下單掏錢。簡單來說,以上兩個操作的入口都在這裏:
域名操作入口

域名到手而且通過實名驗證後,可以看到這樣的信息:
域名狀態

那麼,問題來了,怎麼把這個域名跟服務器的ip綁定起來呢? 按下面的截圖一步步操作即可:
綁定ip1
綁定ip2
綁定ip3
綁定ip4

然後,就可以通過域名來訪問django了,如截圖:
通過域名與端口訪問django

然後,你就會提問:還要端口?我輸入網址從來都不寫端口的!

(二)開放端口

是的,一般瀏覽器以域名訪問都不需要你輸入端口,因爲瀏覽器自己加了端口,而且一般是默認的端口,比如80,這些端口是web服務器所特有的,可以固化下來,不需要你輸入。但我這裏還要輸入,爲什麼?很明顯是因爲我的django用的端口不是默認的端口,而是3389,這麼一個無厘頭的端口,那怎麼解決?

很自然,讓django使用默認的端口唄,不要用3389了。可以,那前提就是,在阿里雲管理頁面,先添加默認的端口,如下面的截圖操作:
添加端口1
添加端口2
添加端口3
添加端口4
添加端口5

這樣,80端口已經可以使用了,重新啓動django:

py manage.py runserver 0.0.0.0:80

如果你發現80給佔用了,一般都是因爲nginx啓動而且佔用了80,那可以先停掉nginx:

nginx -s stop 或: /etc/init.d/nginx stop
./manage.py runserver 0.0.0.0:80

知識點,發現端口給佔用了,如果想知道是誰,可以使用命令lsof -i,比如看誰用了8000端口:

lsof -i:8000

然後,真的可以只用域名來訪問網站了,如截圖:
通過域名訪問django

可是,你多操作幾次,或者在微信上分享 www.freep2p.cn 給別人時,會發現,這個網站給監控到了,並且給出這樣的提示:
網站未備案的提示

那是因爲這個網站還沒有備案。

(三)網站備案

轉到備案問題的處理,在 https://beian.aliyun.com/ 入手,如截圖:
備案入口

然後就是根據提示認真寫好各項信息,其中,產品類型選擇ECS(我的情況),並使用阿里雲app進行人臉記錄並上傳證件拍照。最終,備案通過後(我的是6天后通過),可以看到這樣的信息:
網站備案後

這時你dig一下網站,也能看到ip(備案前是查不到的):

dig +short www.freep2p.cn

現在,瀏覽器請求我這個網站的完整地址是: http://www.freep2p.cn ,你可能已經想到,不帶https的鏈接會被提示不安全的。那麼,怎麼變成https呢?

(四)https證書的申請與使用

申請一個https的證書即ssl證書即可,如下圖操作:

https://www.aliyun.com/product/cas?spm=5176.2020520163.cas.2.571656a7EIdyRc

ssl_cer1
ssl_cer2
ssl_cer3
ssl_cer4
ssl_cer5
ssl_cer6
ssl_cer7
ssl_cer8

審覈通過後,把證書下載並保存好。解壓證書zip,可以兩個文件,一個是xx.pem,一個是xx.key。

然後就是使用證書的環節了,把這兩個文件拷貝到服務器的某個目錄(比如用ssh的話,scp到~/),然後找到ningx的安裝目錄(/etc/nginx/),在裏面創建cert目錄,再把pem與key移至cert目錄,比如我的兩個文件最後是這樣的:
pem與key文件保存到cert目錄

在修改nignx配置之前,先要解決一個問題,nginx對於ssl要使用443端口,你要保證服務器對外開放了這個端口,比如按上面的介紹,在“安全組”開放443端口。

接着就是修改nginx的配置,讓它使用證書了,爲了驗證證書是不是可行,先寫一個最簡單的配置吧:

server {
		server_name www.freep2p.cn;
		root /root/html;
        listen 443;
		ssl on;
		ssl_certificate   cert/2762984_freep2p.cn.pem;
		ssl_certificate_key  cert/2762984_freep2p.cn.key;
    }

下圖對配置的各項進行了解釋:
最簡單的使用ssl的nginx配置

網站根目錄是/root/html,創建這個目錄,然後再創建一個index.html首頁,index.html裏面寫一句即可:

<h2>welcome to freep2p.cn

然後service nginx restart一下,再用瀏覽器請求: https://www.free2p2.cn ,可以看到返回內容了:
https的簡單請求結果

那如果想要之前的http的請求也切換回至https,怎麼辦呢? 加一個轉換唄:

server {
    listen 80;
    server_name freep2p.cn;
    rewrite ^(.*)$ https://$host$1 permanent;
}

至此,你已經可以用通過url來訪問我的網站了。

總結一下,本文介紹了怎麼獲取域名與綁定ip,也講了怎麼備案網站、怎麼使用https證書,這些都是網站開發的基本東西。 接下來就是豐富網站,並且加入web服務器的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章