为了能让人访问到自己的网站,我在阿里云购买了服务器并配置了自己的项目,为了防止我以后忘记这个流程,故记录一下~
目录
(5)用公网ip可以加载出js css资源,但是域名访问失败
一、云服务器
1,购买服务器
我最开始选择的是阿里云的免费云服务器,可以免费三个月……当时想着真好啊然后也不动配置就直接买了……买了后就是说很后悔,因为已经购买的无法修改地域了!!
服务器别的配置就算买错了之后也还可以再改,比如系统、带宽之类的,但是!如果地区选错的话,创建实例之后就不能再改了!所以选择地区很重要!
重要就重要在,推荐个人博客这类的网站买香港的服务器!因为在大陆内的服务器的网站要被访问的话,就一定要去备案,但是备案的流程不仅麻烦还要求是包年包月购买三个月以上的服务器才可以申请!这些条件对我个人开发者来说有些复杂了,所以不备案的香港服务器真的香~
替大家试过了,阿里云给新人的免费三个月服务器不能备案,也不能购买香港地域的,所以应该是非花钱不可的。
系统我配置的是Ubuntu ,然后最小不要买小于1G的,不然连宝塔都安装不完就废了……
2,配置实例
创建完服务器就应该去配置,包括但不限于密码密钥的修改、安全组的配置(80/22/443/项目需要的端口号/宝塔需要的端口号/其他)
3,远程连接
下载Xshell进行远程连接,主机名即刚刚创建的实例的公网ip。
遇到的问题:连接失败
问题原因:我没有下载OpenSSH服务器端
解决方案:在设置>应用>可选功能>添加功能里搜索OpenSSH服务器端下载,然后就可以连接成功!
4,下载宝塔
在Xshell登录进去的页面下载宝塔,因为我是ubuntu系统,所以下载是
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
下载需要比较长的时间,下载成功会得到宝塔的登录网址、账号和密码,根据这三个东西去登录宝塔并绑定手机号。
二、域名
如果没有域名,访问网站就只能用公网IP访问,不安全。
1,购买域名
可以在上面第四步的时候回阿里云填一下购买域名的资料,这个也需要等待。
首先是新人可以9元一年购买域名,选好进购买页面后需要填“信息模板”,信息模板需要审核一定的时间,审核通过才可以购买。
而付款之后也不能马上用,付款后也要等待时间审核。
2,域名解析
等阿里云审核后就可以去解析域名,这里的“记录值”就是我们的公网ip。
可以用 * 去解析,这样的话下面的几级域名的就不用再回来挨个配置。
3,SSL证书
阿里云有免费的ssl证书可以申请!去申请部署下载到本地,得到.pem 和.key
三、宝塔配置
1,下载LNMP
填完手机号进入面板之后第一件事就是下载LNMP,这个是会自动弹出来的。
2,下载PM2管理器
因为我的项目是node项目,所以需要用这个管理器去部署站点。
走过的坑:关于node
在宝塔左栏第二个“网站”里点进去后右侧第三个“node项目”,最开始不懂事在这个地方做了配置,但是一直失败,然后查了很多文章才知道不应该在这个地方配置,务必绕开!
3,上传文件
将在本地写好的文件传到wwwroot文件夹里,然后用PM2管理器去添加项目并映射
4,配置站点
在映射后我们就能在站点处看到一个项目启动了,这是我试过的最快最好的方案!然后我们这时候再设置默认站点并将本地的SSL证书上传,就算是完整的配置完了。
但是过程中也遇到了一些问题:
(1)node项目启动失败
解决方案:不要上传node_modules,而是在模块管理里安装模块依赖。
然后我当时的端口号也被占用了,换一个端口后就成功。
(2)npm not found
在终端依次输入以下命令:
sudo apt-get remove npm
sudo apt-get remove nodejs-legacy
sudo apt-get remove nodejs
sudo rm /usr/bin/node
sudo apt-get install nodejs
sudo apt-get install nodejs-legacy
sudo apt-get install npm.
(3)权限不足
切换方法:sudo su - root -s /bin/bash
(4)可以用公网ip访问网站,但是域名访问失败
有的说是dns缓存没刷新,下面几种我都试了,没用。
清除浏览器dns缓存的方法:edge://net-internals/#dns
清除浏览器dns缓存的方法:chrome://net-internals/#dns
清除电脑dns缓存的方法:终端里ipconfig /flushdns
这个不太理解是哪里配置的不好,后来多刷新几次就能成功。
(5)用公网ip可以加载出js css资源,但是域名访问失败
我这个访问失败的只是js和css资源,有看到一些文章说是nginx配置了反向代理,所以通过域名路径访问不到Js和图片等文件。静态资源文件读取的地址不是实际服务器地址,而是nginx的地址。
但是我试图添加配置后也没成功,后来还是靠多刷新几次成功的。
通过我的上线服务器全流程,我感知到几个有必要的前端优化点:
1,为网站设置loading;
2,设置浏览器缓存;
3,压缩文件;
4,懒加载……
以前纯本地跑项目的时候很难意识到这些优化的重要性,上线了服务器才对一些平时用不到的前端知识有了更深的认知与感悟~接下来会再多做一些优化再分享!
总结:阿里云服务器购买之后的配置包括:实例的安全组配置、xshell的远程连接、宝塔的站点配置、域名配置解析与SSL等……