我的网站上线了!
最近有段时间没有写原创文章了,恰好这两天正在翻阅历史文章的时候,发现文章中的图片竟然裂了?顿时冒了一身冷汗,因为每逢遇到这种情况,动辄需要花费一周的时间迁移图片。。。。。。

当我直接访问图片 url 的时候,果不其然出现了令人震惊的一幕。

我一直用的 typora 写文章,我甚至是尊贵的 typora vip 拥有者,但就是这么一个人,竟然还在白嫖 ipic 默认的云存储图床,我自己都看迫不不下得去已 了。
tva1.sinaimg.cn 也就是新浪图床这波把我整的太惨了,这也让我更加坚定了想法:免费的总有各自的缺陷,还是付费得到技术支持的东西来的实在。

我发现 iPic 又换了新的图床,但是我已经没有继续使用 iPic 的耐心了,果断放弃。
由于迁移图床工程量浩大,我甚至一度有不想干了的冲动。不过我还是败给了现实,现实就是跪着也得坚持下去。
但是今天这文章就写 xxx 到这吧,憋屈 😃 。
— 第二天 —
怎么办?这事儿还得干啊,所以我就找寻各种办法,决定了把图床搞到七牛云上去(绝无任何打广告的想法),毕竟它们的图床还是很稳定的,访问也比较快。
于是我决定使用 PicGo + 七牛云图床作为图片存储工具,七牛云好像有免费的 10GB 存储空间,只是存储图片的话应该够用,而且它们还有图片压缩功能。
如果只使用图床功能的话,那么图片访问速度也是需要考虑的因素,这就需要使用到 CDN 加速功能,CDN 加速需要自定义域名,这就要求我弄个域名让图床挂在域名下面。
既然都想到域名这里了,那我尘封 30 年想要搞个网站的愿望是不是该提上日程了?
说到上线网站,我简直想骂死我自己,因为我曾经无数次的想要上线一个网站,却都因为各种因素耽搁了,这次下定决心一定要上线一个网站,做不到我就一周不吃宵夜!!!对我来说这真是一件很残忍的事情。
技术网站一般有两种类型,一种是静态网站,静态网站不需要自己建站,直接使用第三方托管工具和模板即可,比如 jekyll ,hexo ,hugo 等,源代码文件会提前编译好,需要的功能点比较少,请求资源少,访问的时候速度比较快,不需要和数据库交互,以静态页面为主;
动态网站一般就像是 CMS 这种内容管理系统了,这种系统需要你自己写前端后端代码,然后自己部署在服务器,需要和数据库打交道,页面请求资源多,页面比较复杂。不过 CMS 也有一些开源项目,比如 wordpress ,halo 等,我这里用的就是 halo 搭建的 CMS 网站。
上线一个网站,就需要准备域名、服务器、建站代码、备案申请、备案申请后等一系列操作。
由于这不是一个建站过程帖,也不是一个建站推荐贴,只是我把网站搞好后写的一个经验汇总贴,所以一些过程写的不是很完备。
关于域名
我之前一直断断续续的在各种网上上线准备,所以之前就已经申请过域名了,由于是小打小闹自己建个网站把文章之类的搞上去,加点简单功能,就没有必要花销太大,所以就申请了 cxuan.vip,比较便宜,一个月才 10 块钱。
关于服务器
出发点也是类似,现在后悔之前没有白嫖阿里云服务器了,目前用的只是阿里云很低端的机器,如果后续访问量和内容上来的话再说。
建站项目
我使用的是 halo 这个开源项目,版本是 1.6 ,为什么选择这个项目?因为我认为这是一个比较成熟的项目,社区人数众多,github 一直在有人维护,截止到目前 halo 2.2 也已经上线了,而且功能点比较多,基本上想要的都能满足。为什么选择这个版本?我看到 2.0 之后就加了很多新功能,而且推荐的是使用 docker 部署,官方不再提供 jar 包通过服务的方式访问,不过你可以把源码下载下来自己打 jar 包部署。
但是由于我在用 2.1 版本的过程中出现了很多问题,而且尚未解决,我在社区发帖也没有人回答我的问题,所以还是简单点使用老版本了。
备案申请
准备好域名服务器就能提出备案申请了,备案申请需要很多资料,也有很多忌讳,而且备案申请后的审核过程比较漫长。下面是我的备案过程。

比较人性的一点是,由于我买服务器的初衷就想要上线网站,所以在备案的过程中没有怎么使用服务器,于是阿里云给我把使用的开始时间延期到了备案审核成功的那一天,这点还是不错的。
备案审核后
备案审核后需要在你的网站底部添加 ICP 备案号并连接至 ICP/域名信息备案管理系统。
然后在互联网站安全管理服务平台填写新版网站申请,这个审核也需要等几天,审核的时候会有相关人员给你打电话,然后他们会大致查看一下你的网站内容是否合规合法,再给你通过。如果你的网站涉及到评论功能的话,是否是审核后才予以显示,还需要填写一个评估报告。
到这里是否就完事了呢?
还没有,如果你的网站搭建完成了,默认的是使用 http 协议进行访问的,http 协议对安全性没有保证,很容易被劫持(虽然我的网站是一个只有内容的小破站),但是安全性咱还是要保障一下的。网站想要通过 https 访问,就需要有官方 CA 认证机构进行认证,阿里云有免费的 https 证书可以申请使用,宝塔面板也可以授权证书,这个我没有试过。

申请后需要把证书下载下来,下载完成后有两个文件,一个是 .pem 文件,一个是 .key 文件,我们需要将这两个文件上传至服务器中对应的路径下,通过修改 nginx.conf 配置文件配置 https。
我在配置 https 的时候花了一些时间,刚开始我不管怎么配置发现通过 https 访问后访问的都是 nginx 主页,后来发现我没配置代理地址。。。。。。 仿佛自己是个傻子。完整的配置如下
server {listen 443 ssl;server_name cxuan.vip;root html;index index.html index.htm;ssl_certificate pem 地址;ssl_certificate_key key 地址;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;location / {proxy_pass http://localhost:80;}
}
到这里网站部署基本上差不多了,开始折腾图床,图床我是使用的七牛云图床,我打算再配置一下 CDN ,配置 CDN 的时候要用到需要加速的域名,使用场景是作为图片小文件使用,配置完成后的 CDN 加速配置如下。

现在我的图片也可以通过 http 进行访问了,但是我使用 chrome 浏览器却发现网站访问不到图片,我换了个 safari 浏览器却可以访问,这是为啥呢?
原因是由于我现在的网站是 https 的,但是图片却是 http 协议的,当我们想要访问 https 网站的时候,chrome 会自动把里面的图片等内容转为 https 的,safari 却不会,但是我还没有配置 https 的图床,所以访问不到。所以现在需要配置一下图床的 https 访问。
图床配置 https 就比较简单了,在七牛云域名管理,https 配置处,修改配置,把服务器上 CA 认证的 .pem 和 .key 内容直接贴上去就好,等几分钟就行了。

还需要配置在 typora 上使用的图片自动上传工具 PicGo,进行图床的相关配置,其中 accesskey 和 securitkey 在密钥管理中可以看到,然后再设定响应的网址、图床和存储区域即可,配置完成后在 typora 中的图像页面验证一下图片上传即可。

至此,我这次上线内容基本上可以说算是整完了。
七牛云上面好像还有一个图片优化功能,能节省存储空间和 CDN 流量,不过得花一点小钱。
然后我就把文章内容和图片都一个个的放在了服务器路径下,花了很长时间。halo 有一件上传 md 文件的功能,这些文章内容都是一键上传的,比较方便。
其实网站也很素了,没有太多页面和功能,主要就是文章内容的汇总和整理,后续的个人文章会持续更新在网站上面,图片内容几乎都用了动漫人物做首页,我现在也比较爱看动漫,而且我觉得画漫画是一件很棒的事情,如果有时间和机会的话,我也想要尝试一下画漫画这事儿。
我自己设计了一个 Logo,这个 Logo 和我这个网站以及程序员一搭,有点意思。
网站的内容主要涉及操作系统、计算机网络、Java、C、汇编、计算机书评等内容,这也是我现在写文章的几个方向。每个文章最后都可以评论,不过要完整的填写姓名和邮箱这些内容,这部分做的还不太好,也是后面需要优化的点。
最后,网站地址亲自呈上
https://cxuan.vip/
欢迎各位小伙伴们来玩。
相关文章:
我的网站上线了!
最近有段时间没有写原创文章了,恰好这两天正在翻阅历史文章的时候,发现文章中的图片竟然裂了?顿时冒了一身冷汗,因为每逢遇到这种情况,动辄需要花费一周的时间迁移图片。。。。。。 当我直接访问图片 url 的时候&#…...
勒索病毒整体攻击态势简单分析
声明 本文是学习2018勒索病毒白皮书政企篇. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 勒索病毒整体攻击态势 2018年,勒索病毒攻击特点也发生了变化:2017年,勒索病毒由过去撒网式无差别攻击逐步转向以服务器定…...
Vue资源(组件库、实用插件)
文章目录 一、组件库如下1、Element-ui和Element-plus插件库(PC端👇🔗)2、Ant Design vue(👇🔗)3、Vant插件库(移动端👇🔗)二、插件库如下1、正确引入图片地址(👇🔗)2、Vuex状态存储(持久化persist👇🔗)3、Better-Scroll(移动端滚动条👇🔗)4、Vue和…...
java rpc框架 中的自定义异常类型的全局处理
– 这里的dubbo 可泛指 所有rpc框架 –比如自定义异常类型是MyEx, 以及myEx可以转化为MyResult – 需求: 凡是请求链路中抛出的MyEx需要自动及时或最终转化为 自定义的MyResult返回 – 1. spring 提供 controller端的全局异常捕获. 这一步简单 – 2. dubbo 需要 将MyEx 传输回来…...
面试题:Redis的内存策略
1 Redis内存回收Redis之所以性能强,主要原因是基于内存存储,然而单节点的Redis内存不易过大,会影响主从同步和持久化性能我们可以通过修改配置文件设置Redis的最大内存:当内存存储到上限时,就无法存储更多的数据了。1.…...
idea中使用Git
目录 一、在idea中配置Git 1、打开settings,搜索git,找到本地上的git安装目录,选择git.exe 2、本地git安装目录 二、获取Git 1、本地初始化仓库 2、选中项目这层目录,点击确定 2、从远程仓库克隆 三、本地仓库操作 1、将文…...
C++派生类指针赋值给基类指针问题(虚函数和非虚函数不同)
概念 上行转换:把派生类的指针或引用转换成基类表示,简单来说就是子类指向父类 下行转换:把基类指针或引用转换成派生类表示,简单来说就是父类指向子类 上行转换是安全的的,下行转换是不安全的(最好使用…...
数据库实践LAB大纲 04 触发器
游标 系统为用户开设的一个数据缓冲区 —— 存T-SQL语句从数据库检索出来的结果集 对结果集处理:结果集一条条提取记录,这时要用游标 使用 利用基于变量的select into语句,只能处理单条记录使用游标循环处理 声明游标: DECLA…...
Win10系统电脑开机后总是蓝屏无法使用怎么办?
Win10系统电脑开机后总是蓝屏无法使用怎么办?电脑开机的时候出现了蓝屏问题,这个情况是我们的电脑系统不兼容导致的。遇到这个问题一般是需要去进行系统的重装来解决,安装一个更兼容的系统就可以解决问题了。一起来看看详细的解决方法分享吧。…...
Node——使用nvm切换node版本
1. 下载mvn安装包 https://pan.baidu.com/s/1alfyRvwVWr_TrkN0A9Er5g?pwd1v7c 2. 安装后命令输入mvn -v 验证是否安装成功 3. mvn命令 nvm list available 显示可下载的版本nvm install [node版本号] 显示可下载的版本nvm uninstall [node版本号] 删除已安装的指定版本nvm…...
go语言实现的一个基于go-zero框架的微服务影院票务系统cinema-ticket
一个基于go-zero框架的微服务影院票务系统cinema-ticket 前言 项目基本介绍 项目开源地址:butane123/cinema-ticket: 一个基于go-zero框架的微服务影院票务系统cinema-ticket (github.com) 这是一个微服务影院票务系统,基于go-zero框架实现,…...
ArcGIS API for JavaScript 4.15系列(3)——Dojo中的css样式操作
1、前言 前一篇博客介绍了Dojo中基础的dom操作方法,主要是针对html中的常用标签和属性进行操作。而一个优秀的线上网站自然也离不开css样式的从旁辅助。在实际开发过程中,我们经常会遇到需要动态修改css样式的问题,本文就来介绍一下如何在Do…...
“赶快回家网”首页制作
“赶快回家网”首页制作一、实验名称:二、实验日期:三、实验目的:四、实验内容:五、实验步骤:六、实验结果:七、源程序:八、心得体会:一、实验名称: “赶快回家网”首页…...
JavaWEB-Servlet
目录 Servlet简介Servlet快速入门Servlet配置详解ServletContext 1 Servlet简介 Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码&a…...
springboot集成mqtt
引入jar包 <dependency><groupId>org.springframework.integration</groupId><artifactId>spring-integration-mqtt</artifactId> </dependency> <dependency><groupId>com.alibaba</groupId><artifactId>fastjs…...
Lecture3 梯度下降(Gradient Descent)
目录 1 问题背景 2 批量梯度下降 (Batch Gradient Descent) 3 鞍点(Saddle Point) 3 随机梯度下降 (Stochastic Gradient Descent) 4 小批量梯度下降 (Mini-batch Gradient Descent) 1 问题背景 图1 上节课讲述的穷举法求最优权重值在Lecture2中,介绍了使用穷举…...
深入了解DSP
一、时钟和电源 问:DSP的电源设计和时钟设计应该特别注意哪些方面?外接晶振选用有源的好还是无源的好? 答:时钟一般使用晶体,电源可用TI的配套电源。外接晶振用无源的好。 问:TMS320LF2407的A/D转换精度保证…...
Flink反压如何排查
Flink反压利用了网络传输和动态限流。Flink的任务的组成由流和算子组成,那么流中的数据在算子之间转换的时候,会放入分布式的阻塞队列中。当消费者的阻塞队列满的时候,则会降低生产者的处理速度。 如上图所示,当Task C 的数据处…...
windows无法访问指定设备路径或文件怎么办?2个解决方案
有时候Win10电脑打不开程序或文件,windows无法访问指定设备路径或文件该怎么办?原因是什么呢?一般导致这种情况的出现,大多是因为我们的电脑缺乏相应的查看权限,我们只需要通过赋予权限就可以解决这个难题了。 操作环境…...
冷知识|鹤顶红还能用来修长城?
大家好,我是建模助手。 在上篇浅浅地蹭了波热点之后,我灵机一动,倒不如也搞一搞建筑方面的冷知识?冷热搭配,事半功倍... 问问大家,如果谈起古建筑,关键词都有什么?是庄严、震撼、壮…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
