This commit is contained in:
fanxb 2022-01-21 20:55:21 +08:00
parent dee636e3b6
commit f67b7febb0
11 changed files with 314 additions and 293 deletions

View File

@ -2,7 +2,7 @@
id: "20211009"
date: "2021-10-09 15:42:00"
title: "SpringBoot参数校验看这篇就够了"
tags: ["java", "SpringBoot","exception",“validation”]
tags: ["java", "SpringBoot","exception","validation"]
categories:
- "java"
- "spring boot学习"

View File

@ -1,31 +1,31 @@
---
id: "2018-12-26-11-50"
date: "2018/12/26 11:50"
title: "docker下mysql启动报错"
tags: ["docker","mysql"]
categories:
- "linux"
- "踩坑"
---
# 1、报错过程
  报错是这么产生的,使用装有 mysql 的镜像创业一个容器,然后在容器中启动 mysql 就会报错,启动失败。报错内容如下:
```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
```
# 2、怎么解决
  最开始看到这个报错是比较莫名其妙的,不知道如何解决,百度上搜索资料也不多,找了半天才在`stack overflow`上找到了原因和解决办法,由于 docker 默认的存储驱动是 overlayfsoverlay2),将其改为 aufs 即可,编辑/etc/docker/daemon.json如果没有这个文件新建
```json
{
"storage-driver": "aufs",
"debug": true,
"experimental": true
}
```
关于这个问题github 上有反馈这个问题,详情[看这里](https://github.com/moby/moby/issues/35503)
---
id: "2018-12-26-11-50"
date: "2018/12/26 11:50"
title: "docker下mysql启动报错"
tags: ["docker","mysql"]
categories:
- "linux"
- "踩坑"
---
# 1、报错过程
  报错是这么产生的,使用装有 mysql 的镜像创业一个容器,然后在容器中启动 mysql 就会报错,启动失败。报错内容如下:
```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
```
# 2、怎么解决
  最开始看到这个报错是比较莫名其妙的,不知道如何解决,百度上搜索资料也不多,找了半天才在`stack overflow`上找到了原因和解决办法,由于 docker 默认的存储驱动是 overlayfsoverlay2),将其改为 aufs 即可,编辑/etc/docker/daemon.json如果没有这个文件新建
```json
{
"storage-driver": "aufs",
"debug": true,
"experimental": true
}
```
关于这个问题github 上有反馈这个问题,详情[看这里](https://github.com/moby/moby/issues/35503)

View File

@ -1,60 +1,60 @@
---
id: '2019-04-15'
date: '2019/04/15 11:50'
title: 'linux下安装qBittorrent并使用webui进行管理'
tags: ['qbittorrent', 'webui', 'linux']
categories:
- 'linux'
- '软件安装'
---
  qBittorrent 是目前比较流行的一个 pt 下载工具,可以直接搜索种子下载,并且支持 windows/linux 平台。所以呢就想着在 vps 上搭建一个,先下载到 vps 上,再从 vps 上下载下来。这么搞的主要原型是国内的大内网对 pt 下载很不友好,如果不幸是长城宽带的话,那就更可怜了。。。下面是具体搭建过程(以 ubuntu 为例):
# 添加软件源
```bash
sudo add-apt-repository ppa:qbittorrent-team/qbittorrent-stable
```
按 y 确定
<!-- more -->
# 安装 qBittorrent Webui
```bash
sudo apt-get update
sudo apt-get install qbittorrent qbittorrent-nox
```
同样按 y 确定
# 启动软件
```bash
qbittorrent-nox
```
&emsp;&emsp;默认启动端口为 8080默认账户密码为admin/adminadmin
&emsp;&emsp;如果想使用不同的端口,使用如下命令启动以指定端口:
```bash
qbittorrent-nox --webui-port=XXXX
```
命令是在当前窗口下启动的,如果窗口关闭也就跟着一同关闭了,所有需要后台运行,完整命令如下:
```bash
qbittorrent-nox --webui-port=8088 &
```
# 修改密码
&emsp;&emsp;vps 一般都是放在公网环境下的,所有默认密码是很不安全的,启动完毕后需要立即修改密码,方法如下:
1. 首先使用默认用户名密码登陆到 web ui 上
2. 然后修改用户名密码:
![webui 修改用户名密码](https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190415114134.png)
修改完毕一定要拉下去保存,才会生效
---
id: '2019-04-15'
date: '2019/04/15 11:50'
title: 'linux下安装qBittorrent并使用webui进行管理'
tags: ['qbittorrent', 'webui', 'linux']
categories:
- 'linux'
- '软件安装'
---
&emsp;&emsp;qBittorrent 是目前比较流行的一个 pt 下载工具,可以直接搜索种子下载,并且支持 windows/linux 平台。所以呢就想着在 vps 上搭建一个,先下载到 vps 上,再从 vps 上下载下来。这么搞的主要原型是国内的大内网对 pt 下载很不友好,如果不幸是长城宽带的话,那就更可怜了。。。下面是具体搭建过程(以 ubuntu 为例):
# 添加软件源
```bash
sudo add-apt-repository ppa:qbittorrent-team/qbittorrent-stable
```
按 y 确定
<!-- more -->
# 安装 qBittorrent Webui
```bash
sudo apt-get update
sudo apt-get install qbittorrent qbittorrent-nox
```
同样按 y 确定
# 启动软件
```bash
qbittorrent-nox
```
&emsp;&emsp;默认启动端口为 8080默认账户密码为admin/adminadmin
&emsp;&emsp;如果想使用不同的端口,使用如下命令启动以指定端口:
```bash
qbittorrent-nox --webui-port=XXXX
```
命令是在当前窗口下启动的,如果窗口关闭也就跟着一同关闭了,所有需要后台运行,完整命令如下:
```bash
qbittorrent-nox --webui-port=8088 &
```
# 修改密码
&emsp;&emsp;vps 一般都是放在公网环境下的,所有默认密码是很不安全的,启动完毕后需要立即修改密码,方法如下:
1. 首先使用默认用户名密码登陆到 web ui 上
2. 然后修改用户名密码:
![webui 修改用户名密码](https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190415114134.png)
修改完毕一定要拉下去保存,才会生效

View File

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

View File

@ -1,66 +1,66 @@
---
id: "20190504"
date: "2019/05/04 10:38:05"
title: "nginx配置多ssl证书"
tags: ["linux", "nginx", "多ssl证书"]
categories:
- "linux"
- "软件使用"
---
有时我们需要在一台主机(只有一个公网 ip上部署多个 https 虚拟主机,如何实现呢?
假如我们想当然的使用如下的配置:
```properties
server{
listen 443 default ssl;
server_name www.test1.com;
ssl_certificate xxxxx;
ssl_certificate_key xxxxx;
}
server{
listen 443 ssl;
server_name www.test2.com;
ssl_certificate xxxxx;
ssl_certificate_key xxxxx;
}
```
<!-- more -->
当然是无法实现的,不论请求哪个主机,都只会收到默认域名`www.test1.com`的证书,这是 SSL 协议本身造成的--先建立 SSL 连接,再发送 HTTP 请求,因此 nginx 建立 SSL 连接时并不知道所请求的域名,所以只会返回默认的主机。
# 解决办法
## 使用多个 IP
最古老的办法就是使用多个 IP每个域名绑定到一个 IP 上即可。
## 使用 TLS SNI
使用多 IP 的方法成本太高了,还好 nginx 支持 TLS 协议的 SNI 拓展(这个拓展让同一个 IP 使用不同的 https 证书成为可能。SNI 拓展需要客户端支持(一般都支持),本地 OpenSSL 支持(这个默认都是不支持的,需要手动编译支持)。
查看 nginx 知否支持 SNI使用如下命令
```bash
nginx -V
```
有如下输出说明支持 SNI。
![](https://raw.githubusercontent.com/FleyX/files/master/blog/20190504152556.png)
默认情况下是不支持的,下面我们来一步一步让它支持 SNI
1. 首先要重新编译安装 openssl详情参考我之前的博文[https://blog.fleyx.com/blog/detail/20190503](https://blog.fleyx.com/blog/detail/20190503)
2. openssl 支持 SNI 后,重装一次 nginx 理论上就可以了(至少我是这样的):
```bash
apt remove nginx
apt install nginx
```
然后就可以在一个 IP 上使用多个不同的 https 证书了.
---
id: "20190504"
date: "2019/05/04 10:38:05"
title: "nginx配置多ssl证书"
tags: ["linux", "nginx", "多ssl证书"]
categories:
- "linux"
- "软件使用"
---
有时我们需要在一台主机(只有一个公网 ip上部署多个 https 虚拟主机,如何实现呢?
假如我们想当然的使用如下的配置:
```properties
server{
listen 443 default ssl;
server_name www.test1.com;
ssl_certificate xxxxx;
ssl_certificate_key xxxxx;
}
server{
listen 443 ssl;
server_name www.test2.com;
ssl_certificate xxxxx;
ssl_certificate_key xxxxx;
}
```
<!-- more -->
当然是无法实现的,不论请求哪个主机,都只会收到默认域名`www.test1.com`的证书,这是 SSL 协议本身造成的--先建立 SSL 连接,再发送 HTTP 请求,因此 nginx 建立 SSL 连接时并不知道所请求的域名,所以只会返回默认的主机。
# 解决办法
## 使用多个 IP
最古老的办法就是使用多个 IP每个域名绑定到一个 IP 上即可。
## 使用 TLS SNI
使用多 IP 的方法成本太高了,还好 nginx 支持 TLS 协议的 SNI 拓展(这个拓展让同一个 IP 使用不同的 https 证书成为可能。SNI 拓展需要客户端支持(一般都支持),本地 OpenSSL 支持(这个默认都是不支持的,需要手动编译支持)。
查看 nginx 知否支持 SNI使用如下命令
```bash
nginx -V
```
有如下输出说明支持 SNI。
![](https://raw.githubusercontent.com/FleyX/files/master/blog/20190504152556.png)
默认情况下是不支持的,下面我们来一步一步让它支持 SNI
1. 首先要重新编译安装 openssl详情参考我之前的博文[https://blog.fleyx.com/blog/detail/20190503](https://blog.fleyx.com/blog/detail/20190503)
2. openssl 支持 SNI 后,重装一次 nginx 理论上就可以了(至少我是这样的):
```bash
apt remove nginx
apt install nginx
```
然后就可以在一个 IP 上使用多个不同的 https 证书了.

View 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浏览器访问某些网站在网址左边会有如下的安全提示
![不安全](https://qiniupic.fleyx.com/blog/202201212029672.png)
原因就是因为此网站协议为http未进行ssl加密。目前全球网站都已进入https时代因此非常有比较将自己的站点升级为`https`.
个人使用没必要付费购买ssl证书目前有不少免费ssl证书

View File

@ -1,63 +1,63 @@
---
id: "20190516"
date: "2019/05/16 10:38:05"
title: "Linux下使用nextcloud搭建个人网盘"
tags: ["linux", "nextcloud", "个人网盘"]
categories:
- "linux"
- "软件安装"
---
市面上有那么多的网盘服务提供商,为什么还要自己搭建网盘呢?主要有以下原因:
- 免费的网盘都有种种限制,要么不限速容量小(onedriver,google driver),要么容量大限速(百度云)
- 付费网盘服务又太贵,穷逼用不起
- 数据放在别人的服务器不安全,说不定就变成 8s 了
- 瞎折腾有趣
两三个月前,矿难无情人友情,三百块入手了一台 4 盘位的 nas 主机,装上 ubuntu就开始了折腾。
![主界面](https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190516134611.png)
为什么要选择 nextcloud 呢?
- 开源
- 各个平台都有客户端,方便管理
- 功能很完善
<!-- more -->
下面开始正文,搭建 nextcloud。
推荐使用 docker 来搭建环境,非常方便。
1. 首先安装 docker 环境,参考这篇:[docker 安装](https://blog.fleyx.com/blog/detail/1.linux下mongodb的配置与安装)
2. 安装 docker-compose
```bash
sudo apt-get install docker-compose
```
3. 编写 docker-compose.yml
```yaml
version: "2"
services:
nextcloud:
image: nextcloud
container_name: nextcloud
volumes:
- /home/nextcloud:/var/www/html
ports:
- 8080:80
```
4. 启动
docker-compose.yml 文件所在目录执行`docker-compose up -d`。便能够通过访问 ip+端口,进入 web 端界面。在设置界面可以调成中文。默认进入是英文。
~~提供一个测试账号ali.tapme.top:8007 test/testgggg~~(已失效)
请勿恶意大量上传下载哦!
---
id: "20190516"
date: "2019/05/16 10:38:05"
title: "Linux下使用nextcloud搭建个人网盘"
tags: ["linux", "nextcloud", "个人网盘"]
categories:
- "linux"
- "软件安装"
---
市面上有那么多的网盘服务提供商,为什么还要自己搭建网盘呢?主要有以下原因:
- 免费的网盘都有种种限制,要么不限速容量小(onedriver,google driver),要么容量大限速(百度云)
- 付费网盘服务又太贵,穷逼用不起
- 数据放在别人的服务器不安全,说不定就变成 8s 了
- 瞎折腾有趣
两三个月前,矿难无情人友情,三百块入手了一台 4 盘位的 nas 主机,装上 ubuntu就开始了折腾。
![主界面](https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190516134611.png)
为什么要选择 nextcloud 呢?
- 开源
- 各个平台都有客户端,方便管理
- 功能很完善
<!-- more -->
下面开始正文,搭建 nextcloud。
推荐使用 docker 来搭建环境,非常方便。
1. 首先安装 docker 环境,参考这篇:[docker 安装](https://blog.fleyx.com/blog/detail/1.linux下mongodb的配置与安装)
2. 安装 docker-compose
```bash
sudo apt-get install docker-compose
```
3. 编写 docker-compose.yml
```yaml
version: "2"
services:
nextcloud:
image: nextcloud
container_name: nextcloud
volumes:
- /home/nextcloud:/var/www/html
ports:
- 8080:80
```
4. 启动
docker-compose.yml 文件所在目录执行`docker-compose up -d`。便能够通过访问 ip+端口,进入 web 端界面。在设置界面可以调成中文。默认进入是英文。
~~提供一个测试账号ali.tapme.top:8007 test/testgggg~~(已失效)
请勿恶意大量上传下载哦!

View File

@ -2,7 +2,7 @@
id: "20210625"
date: "2019/06/25 10:38:05"
title: "linux闪屏问题解决"
tags: ["linux", "arch", "manjaro",“闪屏”]
tags: ["linux", "arch", "manjaro","闪屏"]
categories:
- "linux"
- "软件安装"