博客开发简记(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服务器的问题。

posted on 2019-10-11 10:23 广州小程 阅读(...) 评论(...) 编辑 收藏

导航

统计