谢超的技术博客

主攻前端,略懂后端


  • 首页

  • 分类

  • 归档

Ubuntu下使用acme创建letsencrypt免费泛域名SSL证书

发表于 2018-09-19 | 分类于 Linux | 阅读次数:

使用acme.sh脚本在linux下自动创建 Let’s Encrypt证书,可以给网站加上SSL锁,并且是泛域名,免费

安装 acme.sh 脚本

1
curl  https://get.acme.sh | sh

此时系统有了 acme.sh 的命令

生成域名证书

采用自动dns验证的方式,以DNSPOD的域名解析为例

  1. 首先在DNSPOD的网站生成 APP_ID 和 APP_KEY

    登陆DNSPOD,安全设置,API Token,创建API Token 即可

  2. 生成证书
    1
    2
    3
    4
    # 将DNSPOD的API TOKEN 导入到系统变量中
    export DP_Id="abc123456"
    export DP_Key="sADDsdasdgdsf"
    acme.sh --issue --dns dns_dp -d '*.tinnypea.com'
阅读全文 »

Linux下常用命令操作

发表于 2018-09-19 | 分类于 Linux | 阅读次数:

在Linux下操作需要记住一些常用的命令,处理起来的心应手

linux下查找端口占用情况

1
ps -ef|grep 'nginx'

查找nginx配置目录

1
2
3
4
5
# ubuntu普通用户需要 sudo
nginx -t
# 输出结果
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

输出内容到文件

1
2
3
echo "txt" > test.txt
# 清空文件内容
echo "" > test.txt

mv命令重命名文件

1
2
3
# mv 源文件路径 目标文件路径
mv test.txt test.txt.bak
mv ./test.txt ../text.txt.bak

ubuntu下获取sudo权限

1
2
3
4
# aws服务器一般默认使用ubuntu用户进行登陆
# 一些夙瑶root权限的操作每次都需要输入 sudo
# 可通过输入 sudo su 命令直接升级到root用户
sudo su

kubernetes高可用集群安装配置要点

发表于 2018-09-19 | 分类于 kubernetes | 阅读次数:

k8s安装

  1. master节点内存不能小于2G
  2. 虚拟机采用vitualbox,网络可选用桥接网卡的形式,虚机可访问外网、可互访、可与宿主机通信
  3. dashboard的token失效时间更改
  4. 测试部署采用1个部署节点,1个(3个)master节点,1个(3个)node节点
  5. 部署采用kubeasz AllinOne的方式部署即可
    • 百度云资料下载可通过BaiduPCS-Go工具进行下载
    • 每台机器需要配置好 SSH 互访
    • 安装完成后,主要在部署节点进行 k8s 操作

dashboard设置

  1. 修改dashboard的token过期时间

    1
    2
    3
    4
    # 在dashboar的部署文件修改如下参数
    args:
    - --auto-generate-certificates
    - --token-ttl=43200 //增加该参数,43200单位为秒
  2. 获取登陆dashboard的token

    1
    2
    3
    4
    5
    6
    # 获取dashboard的token
    kubectl get secrets -n kube-system
    # 其中admin-user开头的即为dashboard使用的账号
    kubectl describe secrets -n kube-system admin-user-token-dvcqz
    # 获取token或者如下一步获取
    kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
阅读全文 »

从.git文件恢复仓库文件

发表于 2018-09-19 | 阅读次数:

基于gitlab或者gitea的私有git仓库,有时会出现服务挂了,又没有办法进行备份恢复的情况下,只能进服务器找到默认存储的.git 文件夹,这时如何恢复仓库,找了很久资料总结出以下办法
假设目前你只有一个隐藏的 .git 文件夹

1
2
3
4
5
6
7
8
9
10
11
12
13
cd repo.git
# 创建budele文件
git bundle create ./reponame.bundle --all
# 从bundle文件中clone出代码
git clone ./reponame.bundle reponame
# 这是文件夹内会出现一个 reponame 文件夹,这个文件夹内就是所有的代码文件
# 并且还可以恢复其他分支的代码
git clone -b release ./reponame.bundle reponame

# 新建新的git仓库 名为 newrepo
git remote rm origin
# url.git 为新的git仓库地址
git remote add origin newrepo.git

搞定!

react中使用axios拦截并处理不同http状态码

发表于 2018-09-19 | 分类于 react | 阅读次数:

在react和vue都一般都会使用一个全局的request方法进行http请求
在该方法中需要对200之外的状态码进行单独处理

参考ant pro项目中代码 改写的axios配置

状态码设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// axiosSetting.js
import axios from 'axios'
import { message } from 'antd'
import { routerRedux} from 'dva/router'
import { getToken } from './auth'
import store from '../index'

axios.defaults.withCredentials = true
axios.defaults.timeout = 10000

const codeMessage = {
200: '服务器成功返回请求的数据。',
201: '新建或修改数据成功。',
202: '一个请求已经进入后台排队(异步任务)。',
204: '删除数据成功。',
400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',
401: '用户没有权限(令牌、用户名、密码错误)。',
403: '用户得到授权,但是访问是被禁止的。',
404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',
406: '请求的格式不可得。',
410: '请求的资源被永久删除,且不会再得到的。',
422: '当创建一个对象时,发生一个验证错误。',
500: '服务器发生错误,请检查服务器。',
502: '网关错误。',
503: '服务不可用,服务器暂时过载或维护。',
504: '网关超时。',
}
阅读全文 »

flask项目在vscode中启动调试的配置

发表于 2018-09-19 | 分类于 python | 阅读次数:

使用vscode调试flask项目注意事项

setting.json中,配置venv(虚拟环境)路径:

1
2
3
4
5
6
7
8
9
10
{
// "python.pythonPath": "/usr/local/opt/python3/bin/python3.6",
// 以像素为单位控制字号。
"editor.fontSize": 13,
// Whether to lint Python files.
"python.linting.enabled": false,
"python.linting.pylintEnabled": true,
"python.venvPath": "/venv",
"python.pythonPath": "${workspaceFolder}/venv/bin/python",
}

在launch.json配置文件中,主要更改以下配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"name": "Python: Flask (0.11.x or later)",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"program": "${workspaceRoot}/venv/bin/flask",
// 以上需根据环境的实际路径修改
"cwd": "${workspaceFolder}",
"env": {
"FLASK_APP": "${workspaceFolder}/run.py",
"LC_ALL": "en_US.utf-8",
"LANG":"en_US.utf-8"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"envFile": "${workspaceFolder}/.env",
"debugOptions": [
"RedirectOutput"
]
}

Vue单页面项目配置CDN及打包路径解决

发表于 2018-09-19 | 分类于 vue | 阅读次数:

目标:用Vue cli 构建项目打包,打包完成后,直接将index.html文件及static文件夹上传至CDN静态服务器
有以下几处需要修改:

config/index.js

build 下的 assetsPublicPath 需要改为 ‘./‘,即改为index.html文件的相对路径

main.js

由于并不是部署在服务器中,需要将路由相关文件移除,并且不能引入 vue-router,直接引入App.vue 组件即可

css文件中路径问题

在css文件中 background-image 使用图片路径无法被正确打包,需要在build/utils.js文件中的 ExtractTextPlugin 插件中如下配置:

1
2
3
4
5
6
7
8
9
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
publicPath: '../../', //主要是增加此行,路径可按实际情况配置
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}

NodeJs Vue项目中对process.env的使用

发表于 2018-09-19 | 分类于 vue | 阅读次数:

NODE_ENV获取环境变量

1
2
3
4
5
let env = app.get('env')
let env = process.env.NODE_ENV
//默认 NODE_ENV 为环境变量名称
//可自行在 process.env 对象下定义需要使用的变量,在项目中可以根据
//不同的 env 值设置 defaultUrl 或者其他值

在webpack 打包的项目/Node JS项目中,可以安装 cross-env(跨Win/Linux平台设置 process.env值) 插件,在 package.json 文件中
设置不同的运行脚本,比如:

1
2
3
4
5
6
script:{
"start": "node build/dev-server.js",
"buildStag": "cross-env cross-env NODE_ENV=stag node build/dev-server.js",
"buildProd": "cross-env cross-env NODE_ENV=production node build/dev-server.js",
}
//根据上述脚本即可设置不同的 NODE_ENV 值,在文件中设置值或者加载不同的设置文件,以上配置在NODE项目中可正常运行

阅读全文 »

http与https中的localStorage区别

发表于 2018-09-19 | 分类于 html | 阅读次数:

使用 localStorage 来保存信息,需要注意如果网站使用的是 http 或 https 协议
若同一域名,两种协议均能访问的情况下,视作两个不同的网站,
localStorage 不可通用!如:
http://www.baidu.com

https://www.baidu.com

在使用 localStorage 的时候不能视作一个网站

微信支付JSSDK的使用

发表于 2018-09-19 | 分类于 微信 | 阅读次数:

微信内公众号支付

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
wx.chooseWXPay({
timestamp: timestamp,
// 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写
// 但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: nonceStr, // 支付签名随机串,不长于 32 位
package: package,
// 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
signType: 'MD5',
// 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: paySign, // 支付签名
success: function (res) {
// alert('成功:'+JSON.stringify(res))
$.hideLoading()
callback&&callback(res)
},
fail: function (res) {
$.hideLoading()
alert('失败:'+JSON.stringify(res))
toast("支付失败!请检查微信配置");
},
cancel: function (res) {
//支付取消
$.hideLoading()
toast("已取消支付!");
}
})

以上需注意的点是:
1) paySign 是以appId, timeStamp, nonceStr,
package, signType 5个值在后端进行签名,需要注意大小写。

2、nonceStr(随机字符串) 使用的是后台同一下单时使用的同一个随机串
3、公众号支付必须传openid

微信H5支付

1
后端调用微信H5支付的统一下单接口,微信接口返回跳转url,前端直接跳转微信返回的url即可

以上均需注意:微信商户后台中必须设置好支付允许目录,否则会有报错现象。

123
xiaochao

xiaochao

记录技术,分享技术

26 日志
13 分类
22 标签
GitHub
© 2017 — 2020 xiaochao
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4