update
This commit is contained in:
parent
dee636e3b6
commit
f67b7febb0
@ -2,7 +2,7 @@
|
|||||||
id: "20211009"
|
id: "20211009"
|
||||||
date: "2021-10-09 15:42:00"
|
date: "2021-10-09 15:42:00"
|
||||||
title: "SpringBoot参数校验看这篇就够了"
|
title: "SpringBoot参数校验看这篇就够了"
|
||||||
tags: ["java", "SpringBoot","exception",“validation”]
|
tags: ["java", "SpringBoot","exception","validation"]
|
||||||
categories:
|
categories:
|
||||||
- "java"
|
- "java"
|
||||||
- "spring boot学习"
|
- "spring boot学习"
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
---
|
---
|
||||||
id: "2018-12-26-11-50"
|
id: "2018-12-26-11-50"
|
||||||
date: "2018/12/26 11:50"
|
date: "2018/12/26 11:50"
|
||||||
title: "docker下mysql启动报错"
|
title: "docker下mysql启动报错"
|
||||||
tags: ["docker","mysql"]
|
tags: ["docker","mysql"]
|
||||||
categories:
|
categories:
|
||||||
- "linux"
|
- "linux"
|
||||||
- "踩坑"
|
- "踩坑"
|
||||||
---
|
---
|
||||||
|
|
||||||
# 1、报错过程
|
# 1、报错过程
|
||||||
|
|
||||||
  报错是这么产生的,使用装有 mysql 的镜像创业一个容器,然后在容器中启动 mysql 就会报错,启动失败。报错内容如下:
|
  报错是这么产生的,使用装有 mysql 的镜像创业一个容器,然后在容器中启动 mysql 就会报错,启动失败。报错内容如下:
|
||||||
|
|
||||||
```log
|
```log
|
||||||
2017-11-15T06:44:22.141481Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table storage engine for 'user' doesn't have this option
|
2017-11-15T06:44:22.141481Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table storage engine for 'user' doesn't have this option
|
||||||
```
|
```
|
||||||
|
|
||||||
# 2、怎么解决
|
# 2、怎么解决
|
||||||
|
|
||||||
  最开始看到这个报错是比较莫名其妙的,不知道如何解决,百度上搜索资料也不多,找了半天才在`stack overflow`上找到了原因和解决办法,由于 docker 默认的存储驱动是 overlayfs(overlay2),将其改为 aufs 即可,编辑/etc/docker/daemon.json(如果没有这个文件,新建)
|
  最开始看到这个报错是比较莫名其妙的,不知道如何解决,百度上搜索资料也不多,找了半天才在`stack overflow`上找到了原因和解决办法,由于 docker 默认的存储驱动是 overlayfs(overlay2),将其改为 aufs 即可,编辑/etc/docker/daemon.json(如果没有这个文件,新建)
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"storage-driver": "aufs",
|
"storage-driver": "aufs",
|
||||||
"debug": true,
|
"debug": true,
|
||||||
"experimental": true
|
"experimental": true
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
关于这个问题,github 上有反馈这个问题,详情[看这里](https://github.com/moby/moby/issues/35503)
|
关于这个问题,github 上有反馈这个问题,详情[看这里](https://github.com/moby/moby/issues/35503)
|
@ -1,60 +1,60 @@
|
|||||||
---
|
---
|
||||||
id: '2019-04-15'
|
id: '2019-04-15'
|
||||||
date: '2019/04/15 11:50'
|
date: '2019/04/15 11:50'
|
||||||
title: 'linux下安装qBittorrent并使用webui进行管理'
|
title: 'linux下安装qBittorrent并使用webui进行管理'
|
||||||
tags: ['qbittorrent', 'webui', 'linux']
|
tags: ['qbittorrent', 'webui', 'linux']
|
||||||
categories:
|
categories:
|
||||||
- 'linux'
|
- 'linux'
|
||||||
- '软件安装'
|
- '软件安装'
|
||||||
---
|
---
|
||||||
|
|
||||||
  qBittorrent 是目前比较流行的一个 pt 下载工具,可以直接搜索种子下载,并且支持 windows/linux 平台。所以呢就想着在 vps 上搭建一个,先下载到 vps 上,再从 vps 上下载下来。这么搞的主要原型是国内的大内网对 pt 下载很不友好,如果不幸是长城宽带的话,那就更可怜了。。。下面是具体搭建过程(以 ubuntu 为例):
|
  qBittorrent 是目前比较流行的一个 pt 下载工具,可以直接搜索种子下载,并且支持 windows/linux 平台。所以呢就想着在 vps 上搭建一个,先下载到 vps 上,再从 vps 上下载下来。这么搞的主要原型是国内的大内网对 pt 下载很不友好,如果不幸是长城宽带的话,那就更可怜了。。。下面是具体搭建过程(以 ubuntu 为例):
|
||||||
|
|
||||||
# 添加软件源
|
# 添加软件源
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo add-apt-repository ppa:qbittorrent-team/qbittorrent-stable
|
sudo add-apt-repository ppa:qbittorrent-team/qbittorrent-stable
|
||||||
```
|
```
|
||||||
|
|
||||||
按 y 确定
|
按 y 确定
|
||||||
|
|
||||||
<!-- more -->
|
<!-- more -->
|
||||||
|
|
||||||
# 安装 qBittorrent Webui
|
# 安装 qBittorrent Webui
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install qbittorrent qbittorrent-nox
|
sudo apt-get install qbittorrent qbittorrent-nox
|
||||||
```
|
```
|
||||||
|
|
||||||
同样按 y 确定
|
同样按 y 确定
|
||||||
|
|
||||||
# 启动软件
|
# 启动软件
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
qbittorrent-nox
|
qbittorrent-nox
|
||||||
```
|
```
|
||||||
|
|
||||||
  默认启动端口为 8080,默认账户密码为:admin/adminadmin
|
  默认启动端口为 8080,默认账户密码为:admin/adminadmin
|
||||||
|
|
||||||
  如果想使用不同的端口,使用如下命令启动以指定端口:
|
  如果想使用不同的端口,使用如下命令启动以指定端口:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
qbittorrent-nox --webui-port=XXXX
|
qbittorrent-nox --webui-port=XXXX
|
||||||
```
|
```
|
||||||
|
|
||||||
命令是在当前窗口下启动的,如果窗口关闭也就跟着一同关闭了,所有需要后台运行,完整命令如下:
|
命令是在当前窗口下启动的,如果窗口关闭也就跟着一同关闭了,所有需要后台运行,完整命令如下:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
qbittorrent-nox --webui-port=8088 &
|
qbittorrent-nox --webui-port=8088 &
|
||||||
```
|
```
|
||||||
|
|
||||||
# 修改密码
|
# 修改密码
|
||||||
|
|
||||||
  vps 一般都是放在公网环境下的,所有默认密码是很不安全的,启动完毕后需要立即修改密码,方法如下:
|
  vps 一般都是放在公网环境下的,所有默认密码是很不安全的,启动完毕后需要立即修改密码,方法如下:
|
||||||
|
|
||||||
1. 首先使用默认用户名密码登陆到 web ui 上
|
1. 首先使用默认用户名密码登陆到 web ui 上
|
||||||
2. 然后修改用户名密码:
|
2. 然后修改用户名密码:
|
||||||

|

|
||||||
修改完毕一定要拉下去保存,才会生效
|
修改完毕一定要拉下去保存,才会生效
|
||||||
|
|
@ -1,71 +1,71 @@
|
|||||||
---
|
---
|
||||||
id: "20190503"
|
id: "20190503"
|
||||||
date: "2019/05/03 10:38:05"
|
date: "2019/05/03 10:38:05"
|
||||||
title: "linux下编译安装openssl"
|
title: "linux下编译安装openssl"
|
||||||
tags: ["linux", "ubuntu", "openssl"]
|
tags: ["linux", "ubuntu", "openssl"]
|
||||||
categories:
|
categories:
|
||||||
- "linux"
|
- "linux"
|
||||||
- "软件安装"
|
- "软件安装"
|
||||||
---
|
---
|
||||||
|
|
||||||
linux 上安装软件通常有两种办法:
|
linux 上安装软件通常有两种办法:
|
||||||
|
|
||||||
- 从软件包仓库安装
|
- 从软件包仓库安装
|
||||||
- 源码编译安装
|
- 源码编译安装
|
||||||
|
|
||||||
第一种方式很简单,一条命令就搞定。
|
第一种方式很简单,一条命令就搞定。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# debian系列
|
# debian系列
|
||||||
apt install openssl
|
apt install openssl
|
||||||
# centos系列
|
# centos系列
|
||||||
yum install openssl
|
yum install openssl
|
||||||
```
|
```
|
||||||
|
|
||||||
但是上面的方法无法配置参数,有些功能必须要手动编译才能开启。比如`enable-tlsext`,开启这个参数让 openssl 支持 SSL SNI(一个 IP 绑定多个证书)。步骤如下:
|
但是上面的方法无法配置参数,有些功能必须要手动编译才能开启。比如`enable-tlsext`,开启这个参数让 openssl 支持 SSL SNI(一个 IP 绑定多个证书)。步骤如下:
|
||||||
|
|
||||||
<!-- more -->
|
<!-- more -->
|
||||||
|
|
||||||
1. 下载源码包
|
1. 下载源码包
|
||||||
|
|
||||||
有些版本的 openssl 不支持`enable-tlsext`参数,目前 1.0.2r 版本是支持的。
|
有些版本的 openssl 不支持`enable-tlsext`参数,目前 1.0.2r 版本是支持的。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
wget https://www.openssl.org/source/openssl-1.0.2r.tar.gz
|
wget https://www.openssl.org/source/openssl-1.0.2r.tar.gz
|
||||||
```
|
```
|
||||||
|
|
||||||
2. 卸载自带 openssl
|
2. 卸载自带 openssl
|
||||||
|
|
||||||
注意可能会连带卸载很多依赖于 openssl 的软件。
|
注意可能会连带卸载很多依赖于 openssl 的软件。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt remove openssl
|
sudo apt remove openssl
|
||||||
```
|
```
|
||||||
|
|
||||||
3. 解压
|
3. 解压
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
tar -zxf openssl-1.0.2r.tar.gz
|
tar -zxf openssl-1.0.2r.tar.gz
|
||||||
```
|
```
|
||||||
|
|
||||||
4. 配置
|
4. 配置
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd openssl-1.0.2r
|
cd openssl-1.0.2r
|
||||||
sudo ./config shared enable-tlsext --prefix=/usr/local/openssl --openssldir=/usr/lib/openssl
|
sudo ./config shared enable-tlsext --prefix=/usr/local/openssl --openssldir=/usr/lib/openssl
|
||||||
```
|
```
|
||||||
|
|
||||||
5. 编译安装
|
5. 编译安装
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make
|
make
|
||||||
sudo make install
|
sudo make install
|
||||||
```
|
```
|
||||||
|
|
||||||
6. 配置环境变量
|
6. 配置环境变量
|
||||||
|
|
||||||
编辑`/etc/environment`,注意要以`:`分割
|
编辑`/etc/environment`,注意要以`:`分割
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
输入`source /etc/environment`让环境变量生效,即安装完成。
|
输入`source /etc/environment`让环境变量生效,即安装完成。
|
@ -1,66 +1,66 @@
|
|||||||
---
|
---
|
||||||
id: "20190504"
|
id: "20190504"
|
||||||
date: "2019/05/04 10:38:05"
|
date: "2019/05/04 10:38:05"
|
||||||
title: "nginx配置多ssl证书"
|
title: "nginx配置多ssl证书"
|
||||||
tags: ["linux", "nginx", "多ssl证书"]
|
tags: ["linux", "nginx", "多ssl证书"]
|
||||||
categories:
|
categories:
|
||||||
- "linux"
|
- "linux"
|
||||||
- "软件使用"
|
- "软件使用"
|
||||||
---
|
---
|
||||||
|
|
||||||
有时我们需要在一台主机(只有一个公网 ip)上部署多个 https 虚拟主机,如何实现呢?
|
有时我们需要在一台主机(只有一个公网 ip)上部署多个 https 虚拟主机,如何实现呢?
|
||||||
|
|
||||||
假如我们想当然的使用如下的配置:
|
假如我们想当然的使用如下的配置:
|
||||||
|
|
||||||
```properties
|
```properties
|
||||||
server{
|
server{
|
||||||
listen 443 default ssl;
|
listen 443 default ssl;
|
||||||
server_name www.test1.com;
|
server_name www.test1.com;
|
||||||
ssl_certificate xxxxx;
|
ssl_certificate xxxxx;
|
||||||
ssl_certificate_key xxxxx;
|
ssl_certificate_key xxxxx;
|
||||||
}
|
}
|
||||||
|
|
||||||
server{
|
server{
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
server_name www.test2.com;
|
server_name www.test2.com;
|
||||||
ssl_certificate xxxxx;
|
ssl_certificate xxxxx;
|
||||||
ssl_certificate_key xxxxx;
|
ssl_certificate_key xxxxx;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
<!-- more -->
|
<!-- more -->
|
||||||
|
|
||||||
当然是无法实现的,不论请求哪个主机,都只会收到默认域名`www.test1.com`的证书,这是 SSL 协议本身造成的--先建立 SSL 连接,再发送 HTTP 请求,因此 nginx 建立 SSL 连接时并不知道所请求的域名,所以只会返回默认的主机。
|
当然是无法实现的,不论请求哪个主机,都只会收到默认域名`www.test1.com`的证书,这是 SSL 协议本身造成的--先建立 SSL 连接,再发送 HTTP 请求,因此 nginx 建立 SSL 连接时并不知道所请求的域名,所以只会返回默认的主机。
|
||||||
|
|
||||||
# 解决办法
|
# 解决办法
|
||||||
|
|
||||||
## 使用多个 IP
|
## 使用多个 IP
|
||||||
|
|
||||||
最古老的办法就是使用多个 IP,每个域名绑定到一个 IP 上即可。
|
最古老的办法就是使用多个 IP,每个域名绑定到一个 IP 上即可。
|
||||||
|
|
||||||
## 使用 TLS SNI
|
## 使用 TLS SNI
|
||||||
|
|
||||||
使用多 IP 的方法成本太高了,还好 nginx 支持 TLS 协议的 SNI 拓展(这个拓展让同一个 IP 使用不同的 https 证书成为可能)。SNI 拓展需要客户端支持(一般都支持),本地 OpenSSL 支持(这个默认都是不支持的,需要手动编译支持)。
|
使用多 IP 的方法成本太高了,还好 nginx 支持 TLS 协议的 SNI 拓展(这个拓展让同一个 IP 使用不同的 https 证书成为可能)。SNI 拓展需要客户端支持(一般都支持),本地 OpenSSL 支持(这个默认都是不支持的,需要手动编译支持)。
|
||||||
|
|
||||||
查看 nginx 知否支持 SNI,使用如下命令:
|
查看 nginx 知否支持 SNI,使用如下命令:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
nginx -V
|
nginx -V
|
||||||
```
|
```
|
||||||
|
|
||||||
有如下输出说明支持 SNI。
|
有如下输出说明支持 SNI。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
默认情况下是不支持的,下面我们来一步一步让它支持 SNI:
|
默认情况下是不支持的,下面我们来一步一步让它支持 SNI:
|
||||||
|
|
||||||
1. 首先要重新编译安装 openssl,详情参考我之前的博文:[https://blog.fleyx.com/blog/detail/20190503](https://blog.fleyx.com/blog/detail/20190503)
|
1. 首先要重新编译安装 openssl,详情参考我之前的博文:[https://blog.fleyx.com/blog/detail/20190503](https://blog.fleyx.com/blog/detail/20190503)
|
||||||
|
|
||||||
2. openssl 支持 SNI 后,重装一次 nginx 理论上就可以了(至少我是这样的):
|
2. openssl 支持 SNI 后,重装一次 nginx 理论上就可以了(至少我是这样的):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
apt remove nginx
|
apt remove nginx
|
||||||
apt install nginx
|
apt install nginx
|
||||||
```
|
```
|
||||||
|
|
||||||
然后就可以在一个 IP 上使用多个不同的 https 证书了.
|
然后就可以在一个 IP 上使用多个不同的 https 证书了.
|
21
linux/软件安装使用/certbot免费ssl证书申请.md
Normal file
21
linux/软件安装使用/certbot免费ssl证书申请.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
id: "20220121"
|
||||||
|
date: "2022/01/21 10:38:05"
|
||||||
|
title: "免费ssl证书看这篇就够了(单域名/泛域名/自动续期)"
|
||||||
|
tags: ["linux", "nginx", "ssl", "certbot", "泛域名"]
|
||||||
|
hid: true
|
||||||
|
index_img:
|
||||||
|
banner_img:
|
||||||
|
categories:
|
||||||
|
- "linux"
|
||||||
|
- "软件使用"
|
||||||
|
---
|
||||||
|
|
||||||
|
不知道你发现了没有,如果使用chrome浏览器访问某些网站,在网址左边会有如下的安全提示:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
原因就是因为此网站协议为http,未进行ssl加密。目前全球网站都已进入https时代,因此非常有比较将自己的站点升级为`https`.
|
||||||
|
|
||||||
|
个人使用没必要付费购买ssl证书,目前有不少免费ssl证书
|
||||||
|
|
@ -1,63 +1,63 @@
|
|||||||
---
|
---
|
||||||
id: "20190516"
|
id: "20190516"
|
||||||
date: "2019/05/16 10:38:05"
|
date: "2019/05/16 10:38:05"
|
||||||
title: "Linux下使用nextcloud搭建个人网盘"
|
title: "Linux下使用nextcloud搭建个人网盘"
|
||||||
tags: ["linux", "nextcloud", "个人网盘"]
|
tags: ["linux", "nextcloud", "个人网盘"]
|
||||||
categories:
|
categories:
|
||||||
- "linux"
|
- "linux"
|
||||||
- "软件安装"
|
- "软件安装"
|
||||||
---
|
---
|
||||||
|
|
||||||
市面上有那么多的网盘服务提供商,为什么还要自己搭建网盘呢?主要有以下原因:
|
市面上有那么多的网盘服务提供商,为什么还要自己搭建网盘呢?主要有以下原因:
|
||||||
|
|
||||||
- 免费的网盘都有种种限制,要么不限速容量小(onedriver,google driver),要么容量大限速(百度云)
|
- 免费的网盘都有种种限制,要么不限速容量小(onedriver,google driver),要么容量大限速(百度云)
|
||||||
- 付费网盘服务又太贵,穷逼用不起
|
- 付费网盘服务又太贵,穷逼用不起
|
||||||
- 数据放在别人的服务器不安全,说不定就变成 8s 了
|
- 数据放在别人的服务器不安全,说不定就变成 8s 了
|
||||||
- 瞎折腾有趣
|
- 瞎折腾有趣
|
||||||
|
|
||||||
两三个月前,矿难无情人友情,三百块入手了一台 4 盘位的 nas 主机,装上 ubuntu,就开始了折腾。
|
两三个月前,矿难无情人友情,三百块入手了一台 4 盘位的 nas 主机,装上 ubuntu,就开始了折腾。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
为什么要选择 nextcloud 呢?
|
为什么要选择 nextcloud 呢?
|
||||||
|
|
||||||
- 开源
|
- 开源
|
||||||
- 各个平台都有客户端,方便管理
|
- 各个平台都有客户端,方便管理
|
||||||
- 功能很完善
|
- 功能很完善
|
||||||
|
|
||||||
<!-- more -->
|
<!-- more -->
|
||||||
|
|
||||||
下面开始正文,搭建 nextcloud。
|
下面开始正文,搭建 nextcloud。
|
||||||
|
|
||||||
推荐使用 docker 来搭建环境,非常方便。
|
推荐使用 docker 来搭建环境,非常方便。
|
||||||
|
|
||||||
1. 首先安装 docker 环境,参考这篇:[docker 安装](https://blog.fleyx.com/blog/detail/1.linux下mongodb的配置与安装)
|
1. 首先安装 docker 环境,参考这篇:[docker 安装](https://blog.fleyx.com/blog/detail/1.linux下mongodb的配置与安装)
|
||||||
|
|
||||||
2. 安装 docker-compose
|
2. 安装 docker-compose
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt-get install docker-compose
|
sudo apt-get install docker-compose
|
||||||
```
|
```
|
||||||
|
|
||||||
3. 编写 docker-compose.yml
|
3. 编写 docker-compose.yml
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
version: "2"
|
version: "2"
|
||||||
services:
|
services:
|
||||||
nextcloud:
|
nextcloud:
|
||||||
image: nextcloud
|
image: nextcloud
|
||||||
container_name: nextcloud
|
container_name: nextcloud
|
||||||
volumes:
|
volumes:
|
||||||
- /home/nextcloud:/var/www/html
|
- /home/nextcloud:/var/www/html
|
||||||
ports:
|
ports:
|
||||||
- 8080:80
|
- 8080:80
|
||||||
```
|
```
|
||||||
|
|
||||||
4. 启动
|
4. 启动
|
||||||
|
|
||||||
docker-compose.yml 文件所在目录执行`docker-compose up -d`。便能够通过访问 ip+端口,进入 web 端界面。在设置界面可以调成中文。默认进入是英文。
|
docker-compose.yml 文件所在目录执行`docker-compose up -d`。便能够通过访问 ip+端口,进入 web 端界面。在设置界面可以调成中文。默认进入是英文。
|
||||||
|
|
||||||
~~提供一个测试账号:ali.tapme.top:8007 test/testgggg~~(已失效)
|
~~提供一个测试账号:ali.tapme.top:8007 test/testgggg~~(已失效)
|
||||||
|
|
||||||
请勿恶意大量上传下载哦!
|
请勿恶意大量上传下载哦!
|
||||||
|
|
@ -2,7 +2,7 @@
|
|||||||
id: "20210625"
|
id: "20210625"
|
||||||
date: "2019/06/25 10:38:05"
|
date: "2019/06/25 10:38:05"
|
||||||
title: "linux闪屏问题解决"
|
title: "linux闪屏问题解决"
|
||||||
tags: ["linux", "arch", "manjaro",“闪屏”]
|
tags: ["linux", "arch", "manjaro","闪屏"]
|
||||||
categories:
|
categories:
|
||||||
- "linux"
|
- "linux"
|
||||||
- "软件安装"
|
- "软件安装"
|
Loading…
x
Reference in New Issue
Block a user