Win10 ssh
配置过程
# 1. 首先生成密钥对
ssh-keygen -t rsa #-t 表示类型选项,这里采用 rsa 加密算法
# 2. 上传公钥
ssh-copy-id root@192.168.0.1
遇到问题
在 windows10 上配置时,会遇到如下错误:
ssh-copy-id : 无法将 “ssh-copy-id” 项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
解决方案是在 powershell 中,先执行以下内容:
123456789function ssh-copy-id([string]$userAtMachine, $args){ $publicKey = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub" if (!(Test-Path "$publicKey")){ Write-Error "ERROR: failed to open ID file '$publicKey': ...
nginx配置
# Nginx——location 常见配置指令,alias、root、proxy_pass 路径问题
1.【alias】
别名配置,用于访问文件系统,在匹配到 location 配置的 URL 路径后,指向【alias】配置的路径。如:
location /test/
{
alias /home/sftp/img/;
}
location /test/aaa/
{
alias /home/sftp/img/;
}
location /test/aaa/bbb/
{
alias /home/sftp/img/;
}
即:请求 /test/1.jpg、/test/aaa/1.jpg、/test/aaa/bbb/1.jpg(省略了协议与域名),将会返回文件 /home/sftp/img/1.jpg。
注意 alias 后面有没有 “/” 要和 location 后面 “/” 保持一致,否则找不到资源文件
2.【root】
根路径配置,用于访问文件系统,在匹配到 location 配置的 URL 路径后,指向【root】配置的路径,并把 location 配置路径附加到其后。如:
loca ...
Docker实用篇
# Docker 实用篇
# 0. 学习目标
# 1. 初识 Docker
# 1.1. 什么是 Docker
微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。
分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。
在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题
# 1.1.1. 应用部署的环境问题
大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:
依赖关系复杂,容易出现兼容性问题
开发、测试、生产环境有差异
例如一个项目中,部署时需要依赖于 node.js、Redis、RabbitMQ、MySQL 等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。
# 1.1.2.Docker 解决依赖兼容问题
而 Docker 确巧妙的解决了这些问题,Docker 是如何实现的呢?
Docker 为了解决依赖的兼容问题的,采用了两个手段:
将应用的 Libs(函数库)、Deps(依赖)、配置与应用一起打包
将每个应用放到一个隔离容器去运行,避免互相干扰
这样打包好的 ...
在 Ubuntu 14.04 服务器上部署 Hexo 博客
# 导语
除了闷头专研技术之外,程序员还需要不断地写作进行技术积累,写博客是其中最重要的方式之一。商业博客平台不少,但是更符合程序员背景的方案,是自己开发一个博客平台或者使用开源的博客平台。
开源的博客平台多如牛毛,而且不乏优秀之作,如 Hexo、Octopress、Jekyll、Wordpress。本系列文章将分享如何利用各种博客引擎在云端搭建属于自己的个人博客。今天是第一篇,介绍如何在 Ubuntu 14.04 上部署 Hexo 博客。
Hexo 是用 Node.js 开发的一个静态站点生成器(Static Site Generator),支持 Markdown 语法写作,有着强大的插件系统,而且性能优异。阅读不少技术社区分享的文章时,看到国内不少同学都有在用这个引擎,看来「市场占有率」不低。
本文将介绍如何在一台 Ubuntu 14.04 的 CVM 云服务器上快速部署 Hexo 博客站点,如何快速发布一篇博文并通过云服务器上的私有 Git 仓库部署到 Web 服务器目录下。
# 前提条件
如果想跟着本教程顺利完成 Hexo 博客的搭建,需要具备以下条件:
一台安装了 Ubun ...
系统接入访问量统计
# 集成 ip2region 实现离线 IP 地址定位
离线 IP 地址定位库主要用于内网或想减少对外访问 http 带来的资源消耗。(代码已兼容支持 jar 包部署)
# 1、引入依赖
123456<!-- 离线IP地址定位库 --><dependency> <groupId>org.lionsoul</groupId> <artifactId>ip2region</artifactId> <version>1.7.2</version></dependency>
# 2、添加工具类 RegionUtil.java
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969 ...
推荐业务(一)
# 1 离线画像业务
画像的构建作为推荐系统非常重要的环节,画像可以作为整个产品的推荐或者营销重要依据。需要通过各种方法来构建。
文章内容标签化:内容标签化,根据内容定性的制定一系列标签,这些标签可以是描述性标签。针对于文章就是文章相关的内容词语。
文章的关键词、主题词
# 2 TextRank 算法
TextRank 算法是一种基于图的用于关键词抽取和文档摘要的排序算法,由谷歌的网页重要性排序算法 PageRank 算法改进而来,它利用一篇文档内部的词语间的共现信息 (语义) 便可以抽取关键词,它能够从一个给定的文本中抽取出该文本的关键词、关键词组,并使用抽取式的自动文摘方法抽取出该文本的关键句。
TextRank 算法的基本思想是将文档看作一个词的网络,该网络中的链接表示词与词之间的语义关系。
TextRank 算法主要包括:关键词抽取、关键短语抽取、关键句抽取。
(1)关键词抽取(keyword extraction)
关键词抽取是指从文本中确定一些能够描述文档含义的术语的过程。对关键词抽取而言,用于构建顶点集的文本单元可以是句子中的一个或多个字;根据这些字之间的关系(比如:在一 ...
Tf-idf算法
# 什么是 TF-IDF 算法?
TF(全称 TermFrequency),中文含义词频,简单理解就是关键词出现在网页当中的频次。
IDF(全称 InverseDocumentFrequency),中文含义逆文档频率,简单来说就是该关键词出现在所有文档里面的一种数据集合。
TF-IDF 用来评估字词对于文档集合中某一篇文档的重要程度。TF-IDF 的计算公式为:
TF-IDF = 某文档中某词或字出现的次数 / 该文档的总字数或总词数 * log(全部文档的个数 /(包含该词或字的文档的篇数)+1)
TF-IDF 的思想比较简单,但是却非常实用。然而这种方法还是存在着数据稀疏的问题,也没有考虑字的前后信息。
在信息检索中,tf-idf 或 TFIDF(术语频率 – 逆文档频率的缩写)是一种数字统计,旨在反映单词对集合或语料库中的文档的重要程度。
它经常被用作搜索信息检索,文本挖掘和用户建模的加权因子。tf-idf 值按比例增加一个单词出现在文档中的次数,并被包含该单词的语料库中的文档数量所抵消,这有助于调整某些单词在一般情况下更频繁出现的事实。Tf-idf 是当今最受欢迎的术语加权方案 ...
Hexo搭建
# GitHub 部署
npm install hexo-deployer-git --save
deploy:
type: git
repository: git@github.com:cndadi/cndadi.github.io.git #你的仓库地址
branch: main
hexo clean
hexo generate
hexo deploy
# 服务端创建 Git 仓库
配置免密登录
配置本地客户端与阿里云服务器端的 ssh 免密登录,方便上传仓库时一键式上传。
在本地客户端生成并上传公共密钥:
# 执行完之后一直回车就行
ssh-keygen
# 上传公共密钥到阿里云服务器
ssh-copy-id root@阿里云公网 IP
# 测试是否已免密
ssh root@阿里云公网 IP
服务器上创建一个 Git 仓库,该仓库中新建一个 post-receive 钩子文件。
cd ~
git init --bare hexo.git
vi ~/hexo.git/hooks/post-receive
# 填写以下内容,其中的–work-tree 为 hexo 博客目录
gi ...
Butterfly添加全局吸底Aplayer教程
以下文章只是教程
如果部署之后,并没有出现 aplayer , 请确认是否跟足步骤操作或者更换音乐源,多试试。
如果遇到使用問題,请仔细查看插件文档,或者到插件那裏反饋。
# 前言
如果你想使用 aplayer,很多人都會推薦安裝 hexo-tag-aplayer 這款插件。這款插件通過 Hexo 獨有的標籤外掛,我們可以很方便的寫入一些參數,插件就會幫我們生成對應的 html。如果你只是使用一些簡單的功能,其實無需使用到這個插件,只需以 html 格式書寫就行,不用插件去轉換。
例如:
如果使用插件,在 markdown 中要這樣寫
1{% meting "000PeZCQ1i4XVs" "tencent" "artist" "theme:#3F51B5" "mutex:true" "preload:auto" %}
其會被插件渲染為
1<div id="aplayer-uxAIfEUs" class="ap ...
Markdown语法
# 简介
Markdown 是一种轻量级标记语言,它用简洁的语法代替排版,使我们专心于码字。它的目标是实现易读易写,成为一种适用于网络的书写语言。同时,Markdown 支持嵌入 html 标签。
注意:Markdown 使用 #、+、* 等符号来标记, 符号后面必须跟上 至少 1 个 空格才有效!
# Markdown 的常用语法
标题
Markdown 标题支持两种形式:
1、用 #标记
在 标题开头 加上 1~6 个 #,依次代表一级标题、二级标题… 六级标题
# 一级标题
# 二级标题
# 三级标题
# 四级标题
# 五级标题
# 六级标题
2、用 = 和 - 标记
在 标题底下 加上任意个 = 代表一级标题,- 代表二级标题
# 一级标题
# 二级标题
效果如下:
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
列表
Markdown 支持有序列表和无序列表。
无序列表使用 -、+ 和 * 作为列表标记:
Red
Green
Blue
Red
Green
Blue
Red
Green
Blue
效果如下:
Red
Green
Blue
有序列表 ...