简书个人主页的网址后缀是一串随机字串,不支持像Github那样个性化的后缀,难以记忆。正好手里有一个域名和一台阿里云小水管服务器,想着可以利用Nginx的重定向功能,实现访问一个二级域名重定向到简书个人主页的功能。
域名解析
我是在阿里云的万网下买的域名,其他的域名管理商的控制台都大同小异。首先添加二级域名,记录值填写云服务器的ip地址,点击确认。域名完成解析可能需要几分钟的时间。这里另外说一句,记录类型是支持显示URL转发和隐式转发的,但是要求转发的域名的提供商也是万网,GG。
添加域名解析记录
安装Nginx
Nginx官网上有详细的安装步骤,推荐是用官网源的安装方式,既文中的Installing a Prebuilt CentOS/RHEL Package from the Official NGINX Repository。
- 配置nginx仓库信息
登陆root账户(图方便-.-)
[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
- 添加重定向配置
默认安装下配置文件夹应该是在/etc/nginx/conf.d下面,如果找不到的话可以whereis nginx找一下相关路径下有conf.d的目录。
找到配置文件夹后,直接修改默认配置文件
vim /etc/nginx/conf.d/default.conf
- 添加重定向服务
注意,如果你也是用阿里云的话,记得安全配置组里开启80端口。
server_name 是你的二技域名,多个域名用空格分隔。例如我这里一个绑定了简书的主页,一个绑定github的主页。
return 后面是重定向的目标网址,也就是简书原本的个人主页。
server {
listen 80;
server_name jianshu.94hry.tech git.94hry.tech;
if ($host = 'jianshu.94hry.tech'){
return https://www.jianshu.com/u/de5f5d2331ee;
}
if ($host = 'git.94hry.tech'){
return https://github.com/huangry999;
}
}
- 启动nginx
nginx
更多nginx参数可以man nginx查看
测试
访问http://jianshu.94hry.tech,如果我的服务器没有被黑或者欠费的话,页面会重定向到我的主页。当然,浏览器的url也会变成https://www.jianshu.com/u/de5f5d2331ee。
Nginx代理实现URL不变?
关于怎么保持浏览器url不改变的问题,其实可以使用proxy_pass来进行代理,例如:
server {
listen 80;
server_name jianshu.94hry.tech;
# 主页代理
location = / {
proxy_pass https://www.jianshu.com/u/de5f5d2331ee
}
# 其他请求代理
location / {
proxy_pass https://www.jianshu.com$request_uri
}
}
结果是,url是不变了,但是页面功能会有各种问题,应该是前台js有使用window.location.host获取主机地址之类反伪站的代码。况且,什么请求都要经过我那1M小水管的代理,肯定会变得很慢,随放弃。
网友评论