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" 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学习"

View File

@ -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 默认的存储驱动是 overlayfsoverlay2),将其改为 aufs 即可,编辑/etc/docker/daemon.json如果没有这个文件新建   最开始看到这个报错是比较莫名其妙的,不知道如何解决,百度上搜索资料也不多,找了半天才在`stack overflow`上找到了原因和解决办法,由于 docker 默认的存储驱动是 overlayfsoverlay2),将其改为 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)

View File

@ -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
``` ```
&emsp;&emsp;默认启动端口为 8080默认账户密码为admin/adminadmin &emsp;&emsp;默认启动端口为 8080默认账户密码为admin/adminadmin
&emsp;&emsp;如果想使用不同的端口,使用如下命令启动以指定端口: &emsp;&emsp;如果想使用不同的端口,使用如下命令启动以指定端口:
```bash ```bash
qbittorrent-nox --webui-port=XXXX qbittorrent-nox --webui-port=XXXX
``` ```
命令是在当前窗口下启动的,如果窗口关闭也就跟着一同关闭了,所有需要后台运行,完整命令如下: 命令是在当前窗口下启动的,如果窗口关闭也就跟着一同关闭了,所有需要后台运行,完整命令如下:
```bash ```bash
qbittorrent-nox --webui-port=8088 & qbittorrent-nox --webui-port=8088 &
``` ```
# 修改密码 # 修改密码
&emsp;&emsp;vps 一般都是放在公网环境下的,所有默认密码是很不安全的,启动完毕后需要立即修改密码,方法如下: &emsp;&emsp;vps 一般都是放在公网环境下的,所有默认密码是很不安全的,启动完毕后需要立即修改密码,方法如下:
1. 首先使用默认用户名密码登陆到 web ui 上 1. 首先使用默认用户名密码登陆到 web ui 上
2. 然后修改用户名密码: 2. 然后修改用户名密码:
![webui 修改用户名密码](https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190415114134.png) ![webui 修改用户名密码](https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190415114134.png)
修改完毕一定要拉下去保存,才会生效 修改完毕一定要拉下去保存,才会生效

View File

@ -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`,注意要以`:`分割
![](https://raw.githubusercontent.com/FleyX/files/master/blog/20190503125650.png) ![](https://raw.githubusercontent.com/FleyX/files/master/blog/20190503125650.png)
输入`source /etc/environment`让环境变量生效,即安装完成。 输入`source /etc/environment`让环境变量生效,即安装完成。

View File

@ -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。
![](https://raw.githubusercontent.com/FleyX/files/master/blog/20190504152556.png) ![](https://raw.githubusercontent.com/FleyX/files/master/blog/20190504152556.png)
默认情况下是不支持的,下面我们来一步一步让它支持 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 证书了.

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" 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就开始了折腾。
![主界面](https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190516134611.png) ![主界面](https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190516134611.png)
为什么要选择 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~~(已失效)
请勿恶意大量上传下载哦! 请勿恶意大量上传下载哦!

View File

@ -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"
- "软件安装" - "软件安装"