前言
用Vue写了个博客,第一次打包后正式部署到服务器上,将其中遇到的问题,及参考的资料分享一下。
服务器准备
本次部署使用的阿里云的ecs云服务器,系统为ubuntu16.04,由于购买的香港地区的服务器,因此无需备案。使用香港服务器有以下优缺点:
- 优点
- 不需要备案,简化流程
- 缺点
- 配置域名时无法针对该服务器进行显性或隐性url转发,如转发到端口等操作(可以用nginx配置解决,后文详述)
- 有和谐风险(讲道理阿里这么明目张胆的卖应该没啥问题,如果用来搭梯子就另当别论)
域名准备
同样是阿里云购买的域名,如果要使用阿里云的服务器,强烈建议在阿里云购买域名,省去许多不必要的步骤。域名购买后应该进行域名解析,解析过程中由于无法解析到端口,因此没有特殊需求选择第一类A类即可,后续根据不同的二级域名在nginx中配置。
nginx安装与配置
安装(我在安装前删除了服务器自带的apache,参考彻底删除apache)
官方安装指导:http://nginx.org/en/linux_packages.html
总结ubuntu16.04安装程序如下(其他系统和其他版本ubuntu请自行参考文档):
sudo apt-key add nginx_signing.key deb http://nginx.org/packages/ubuntu/ xenial nginx deb-src http://nginx.org/packages/ubuntu/ xenial nginx apt-get update apt-get install nginx
拷贝你的静态文件到相应目录
如果之前有安装过apache等,会留有/var/www
目录,我之前卸载apache时已经删掉了,所以新建,再在里面新建static-blog
文件夹,将经过webpack打包生成后的静态文件放入配置nginx
安装后进入/etc/nginx/conf.d/
文件夹,第一次进入为空,新建blog-collinjs-site.conf文件(文件名自定,我的域名解析为blog.collinjs.site),内容如下:server { server_name blog.collinjs.site; // 你的域名或者 ip root /var/www/static-web/static-blog; // 静态文件路径 index index.html; // 显示首页 location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt){ root /var/www/static-web/static-blog; } // 静态文件访问 }
如无意外经过以上步骤后可以通过域名访问到你的静态博客啦~
但发现以下问题:- 打包后的静态文件较大,首页加载慢
- chrome提示不安全,原因是因为没有配置https服务
首先解决不安全问题,采用https服务
nginx配置https服务
- 到阿里云证书服务上申请证书,参考文章
- 下载证书放到云服务器上解压,分两步修改配置
修改blog-collinjs-site.conf
增加blog-collinjs-site-base.conf,将http请求转为https请求
// blog-collinjs-site.conf server { listen 443; ssl on; ssl_certificate /etc/nginx/cert.conf/*****.crt;//解压后的crt文件地址 ssl_certificate_key /etc/nginx/cert.conf/*****.key;//解压后的key文件地址 ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; server_name blog.collinjs.site; root /var/www/static-blog; try_files $uri $uri/ /index.html last; index index.html; location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt){ root /var/www/static-blog; } }
//blog-collinjs-site-base.conf server { listen 80; server_name blog.collinjs.site; rewrite ^(.*) https://$server_name$1 permanent; }
加快首次页面加载速度
版权声明:本文为tjzc1352640原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。