簡(jiǎn)書(shū)個(gè)人主頁(yè)的網(wǎng)址后綴是一串隨機(jī)字串若皱,不支持像Github那樣個(gè)性化的后綴贸人,難以記憶洽洁。正好手里有一個(gè)域名和一臺(tái)阿里云小水管服務(wù)器,想著可以利用Nginx的重定向功能盾鳞,實(shí)現(xiàn)訪問(wèn)一個(gè)二級(jí)域名重定向到簡(jiǎn)書(shū)個(gè)人主頁(yè)的功能犬性。
域名解析
我是在阿里云的萬(wàn)網(wǎng)下買(mǎi)的域名,其他的域名管理商的控制臺(tái)都大同小異腾仅。首先添加二級(jí)域名乒裆,記錄值填寫(xiě)云服務(wù)器的ip地址,點(diǎn)擊確認(rèn)推励。域名完成解析可能需要幾分鐘的時(shí)間鹤耍。這里另外說(shuō)一句,記錄類(lèi)型是支持顯示URL轉(zhuǎn)發(fā)和隱式轉(zhuǎn)發(fā)的验辞,但是要求轉(zhuǎn)發(fā)的域名的提供商也是萬(wàn)網(wǎng)稿黄,GG。
安裝Nginx
Nginx官網(wǎng)上有詳細(xì)的安裝步驟跌造,推薦是用官網(wǎng)源的安裝方式杆怕,既文中的Installing a Prebuilt CentOS/RHEL Package from the Official NGINX Repository。
- 配置nginx倉(cāng)庫(kù)信息
登陸root賬戶(hù)(圖方便-.-)
[root ~]# vim /etc/yum.repos.d/nginx.repo
- 添加如下配置
我的centos主版本是7壳贪,其他版本按需修改陵珍,wq!保存退出。
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
- 更新yum源
yum update -y
- 安裝Nginx
yum install nginx
配置Nginx
- 添加重定向配置
默認(rèn)安裝下配置文件夾應(yīng)該是在/etc/nginx/conf.d下面违施,如果找不到的話(huà)可以whereis nginx找一下相關(guān)路徑下有conf.d的目錄互纯。
找到配置文件夾后,直接修改默認(rèn)配置文件
vim /etc/nginx/conf.d/default.conf
- 添加重定向服務(wù)
注意磕蒲,如果你也是用阿里云的話(huà)留潦,記得安全配置組里開(kāi)啟80端口。
server_name 是你的二技域名辣往,多個(gè)域名用空格分隔兔院。例如我這里一個(gè)綁定了簡(jiǎn)書(shū)的主頁(yè),一個(gè)綁定github的主頁(yè)站削。
return 后面是重定向的目標(biāo)網(wǎng)址坊萝,也就是簡(jiǎn)書(shū)原本的個(gè)人主頁(yè)。
server {
listen 80;
server_name jianshu.94hry.tech git.94hry.tech;
if ($host = 'jianshu.94hry.tech'){
return http://www.reibang.com/u/de5f5d2331ee;
}
if ($host = 'git.94hry.tech'){
return https://github.com/huangry999;
}
}
- 啟動(dòng)nginx
nginx
更多nginx參數(shù)可以man nginx查看
測(cè)試
訪問(wèn)http://jianshu.94hry.tech钻哩,如果我的服務(wù)器沒(méi)有被黑或者欠費(fèi)的話(huà)屹堰,頁(yè)面會(huì)重定向到我的主頁(yè)肛冶。當(dāng)然街氢,瀏覽器的url也會(huì)變成http://www.reibang.com/u/de5f5d2331ee。
Nginx代理實(shí)現(xiàn)URL不變睦袖?
關(guān)于怎么保持瀏覽器url不改變的問(wèn)題珊肃,其實(shí)可以使用proxy_pass來(lái)進(jìn)行代理,例如:
server {
listen 80;
server_name jianshu.94hry.tech;
# 主頁(yè)代理
location = / {
proxy_pass http://www.reibang.com/u/de5f5d2331ee
}
# 其他請(qǐng)求代理
location / {
proxy_pass http://www.reibang.com$request_uri
}
}
結(jié)果是,url是不變了伦乔,但是頁(yè)面功能會(huì)有各種問(wèn)題厉亏,應(yīng)該是前臺(tái)js有使用window.location.host獲取主機(jī)地址之類(lèi)反偽站的代碼。況且烈和,什么請(qǐng)求都要經(jīng)過(guò)我那1M小水管的代理爱只,肯定會(huì)變得很慢,隨放棄招刹。