個人主頁搭建步驟

這兩天倒騰了個人主頁(網址www.kankantechs.com),下面是網站搭建(不包括網頁的編寫)部分的主要步驟:

1.到godaddy購買.com域名

88或者120港幣一年(我忘了自己當時購買花了多少錢了,88?),價格也還好,支付方式我用的自己在香港的Visa卡。

2.在digitalocean申請VPS伺服器

2.1註冊digitalocean賬號

這個不用多說吧。大家可以通過我的referal鏈接來申請,DigitalOcean: Cloud computing designed for developers。

這樣,雙方都有credit獎勵哦。

值得一提的是,digitalocean要求你使用paypal支付或者Visa/MasterCard等信用卡完成一個一次性5美金支付,你的賬號才算激活,只有激活的賬號才能申請VPS伺服器。

2.2申請VPS伺服器

點擊右上角Create Droplet來申請VPS伺服器

系統選擇Ubuntu,畢竟咱最熟悉啊。

大小選擇最小的,512MB內存,20GB的存儲空間,還有1000GB的流量,對於個人主頁(或者自己搭建的那啥上網工具)來說,足夠了,5美金一個月,約35RMB or 39港幣,也不是很貴。

增加存儲塊,個人主頁不需要太大容量,如果想跑大數據或者計算機視覺實驗,可以考慮考慮,當然,那樣你的伺服器大小也要做相應的調整。

伺服器位置我推薦三番市,1號線,2號線都行。強烈不推薦新加坡線。因為各個國家和地區的網路帶寬不盡相同,甚至相距甚遠。在控制台使用以下命令:

wget cachefly.cachefly.net/1

測得的數據是,SFO1/2伺服器的帶寬大概是1000Mbit/s,而Singapore大概是100Mbit/s。

對於VPS的選擇,我覺得可以多方面考慮,地理位置,帶寬,流量。SFO的伺服器可能離大陸比較遠,數據傳輸的延遲很大,但是它本身本地下載的速度是很快的,適合跑大數據實驗。Singapore的伺服器離大陸比較近,延遲低,雖然帶寬沒那麼高,但是用來搭上網工具,打打亞服的遊戲,是個不錯的選擇。所以我認為,這就叫所謂的各有利弊,各取所需吧。

可以勾上這幾個不需要額外付費的服務,尤其是IPv6,這個手動配置起來有點麻煩(不要問我怎麼知道的),IPv6對於某些服務(你懂),有加速效果,其他的方法還有CDN(VPS伺服器配置也是門學問啊)。

ssh keys 我也不大懂,反正可以之後添加。

給你的droplet(即VPS)取個名字就可以添加vps了。

3.伺服器配置與nginx初探

3.1 ssh遠程鏈接vps伺服器

創建好了vps後,digitalocean一般會給你的賬戶郵箱發一封郵件,告訴你伺服器IPv4地址和root賬戶的密碼:

知道了IP地址我們可以在linux控制台(Windows可以使用cgwin工具)下遠程鏈接伺服器。

輸入:

ssh -l root Your_Server_IP

輸出一段話告訴你是否信任此鏈接,輸入yes並回車,然後輸入郵件告訴你的root賬戶的密碼。

3.2 linux賬戶管理

3.2.1 更改root密碼

第一次登陸時,系統會要求你更改root賬戶密碼,按要求更改即可。之後也能繼續更改密碼,命令如下:

passwd <account name>

如: passwd root

3.2.2 新建一個linux賬戶

如果你不希望始終以root身份登錄(因為涉及文件的許可權等問題),或者想與他人分享這個VPS伺服器,可以新建一個賬戶

adduser <your_user_name>

如:adduser kelly

命令會自動為你創建該用戶的home文件夾,如/home/kelly

3.2.3 設置某用戶為管理員

如果你希望設置某個用戶名為管理員,而不使用root賬戶的話,可以使用如下命令:

sudo usermod -aG sudo <your_user_name>

如:sudo usermod -aG sudo kelly

當然,如果當前登入的用戶不是sudo賬戶,要使用su命令切換到sudo組的用戶,如root

輸入此命令後,回車並輸入當前sudo賬戶如root的密碼即可。

那麼<your_user_name>的用戶也會被分配到sudo組,具有sudo許可權。

3.3 nginx配置

首先在VPS上安裝nginx:

sudo apt-get install nginx

在nginx的官網上可以找到nginx.conf文件的模板

Getting Started | NGINX

如wordpress的配置

WordPress | NGINX

我的部分配置如下:

http {

include mime.types;

include /home/kelly/Documents/kelly-homepage/conf/down.kankantechs.nginx.conf;

default_type application/octet-stream;

server {

listen 8080;

listen 80;

server_name kankantechs.com;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

root /home/kelly/Documents/kelly-homepage;

index index.html index.htm;

}

}

include servers/*;

}

解釋:

listen表示伺服器監聽的埠,80埠是訪問該ip的默認埠;location / 表示設定根目錄的位置,root是根目錄位置,index是首頁文件的位置。

include /home/kelly/Documents/kelly-homepage/conf/down.kankantechs.nginx.conf;表示包含該文件,文件down.kankantechs.nginx.conf的內容如下:

server {

listen 8082;

server_name down.kankantechs.com;

root /home/kelly/Documents/kelly-homepage/files;

autoindex on;

autoindex_exact_size off;

autoindex_localtime on;

}

#解釋:

#autoindex on; #開啟索引。

#autoindex_exact_size off; #關閉計算文件大小(單位bytes),顯示大概大小(單位kb,mb,gb)。

#autoindex_localtime on; #on本機本地時間,off顯示GMT時間。

root指出了下載伺服器被配置的根目錄位置

3.4文件傳輸

可以使用Github作為傳輸文件的工具,此處不表。我們用WinSCP(Mac可以使用CrossOver),如果是linux可以直接添加遠程鏈接。把寫好的網頁文件傳輸到伺服器的/home/kelly/Documents文件夾

3.5在VPS上運行nginx前端伺服器

首先看配置文件的路徑(mac和linux上並不相同)

kelly@MyFirstVPS:~$ sudo nginx -t

[sudo] password for kelly:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

然後複製我們的配置文件到/etc/nginx/nginx.conf

sudo cp ~/Documents/kelly-homepage/conf/nginx4vps.conf /etc/nginx/nginx.conf

如果有nginx伺服器在運行,輸入

sudo nginx -s stop來停止運行

然後再開啟nginx伺服器來應用新的配置文件

sudo nginx

這是輸入IP地址就能訪問我們的主頁了^_^

4 go daddy綁定域名與IP

在自己的賬戶中點Manage Connection

Forward選項中有Forward to,就是伺服器的ip地址;有Forward Type,永久和臨時的;有Settings。

Settings可以設置僅僅Forward和Forward並隱藏ip。Forward and masking

之後覆蓋了網頁標題和圖標等設置,同時伺服器ip不可見了

要顯示標題和圖標,就不能masking,但這樣伺服器ip又暴露了。

解決方案:

[為Nginx設置反向代理,隱藏伺服器IP](為Nginx設置反向代理,隱藏伺服器IP | imDenny)

待解決的問題:

如何不使用godaddy的Forward and masking功能,隱藏伺服器IP,同時要展現標題和圖標。

總結:

搭建個人網站還挺簡單的,主要是需要網上的支付手段,相關賬號的申請。原理無非就是一台伺服器放網頁,然後使用DNS商家的服務進行域名的購買與解析,畢竟很難想像你搭好了伺服器和網站然後告訴別人用ip來訪問,對吧_(:зゝ∠)_。
推薦閱讀:

前端日刊-2018.01.06
我的CSS學習之旅
前端新視野-2017.12.16
[周末讀文] 編程的智慧讀後感

TAG:前端開發 | VPS | 互聯網 |