青花小记

这个人很懒,只想写写代码做做饭

0%

SpringBoot默认使用logback作为日志框架,可在resources文件夹下添加logback.xml文件进行配置。

文件内容如下

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 工程名/项目名 -->
<contextName>project_name</contextName>

<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/>

<!--把>=debug的日志输出到控制台 -->
<appender name="SDTOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-4relative %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>

<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/info.log</file>
<rollingPolicy name="50M_FILE" class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>logs/info.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>500</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>200MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%-4relative %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>

<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/error.log</file>
<rollingPolicy name="50M_FILE" class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>logs/error.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>100</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>200MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%-4relative %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>

<!-- 开发阶段使用DEBUG 生产环境使用INFO -->
 <root level="INFO">
<!--<root level="INFO">-->
<appender-ref ref="SDTOUT" />
  <appender-ref ref="INFO_FILE" />
<appender-ref ref="ERROR_FILE" />
 </root>

</configuration>

本文主要介绍MySQL的yum仓库的使用方法,其中包含了MySQL的安装步骤

原文MySQL Yum仓库使用快速指南

摘要

MySQL Yum仓库提供了在Linux平台上安装MySQL服务器、客户端和其他组件的RPM包。这些包还可以升级和替换安装在Linux发行版上的可以从MySQL中获得的任何第三方MySQL软件包。

MySQL Yum仓库支持下列Linux发行版:

  • EL6和基于el7的平台(例如,Oracle Linux、Red Hat Enterprise Linux和CentOS的对应版本)
  • Fedora 27 和 28

注意:并不是所有版本的MySQL都支持上述所有的Linux版本。如果想确认您的Linux发行版是否支持某个特定版本,请参阅Selecting a Release Series

这是一个使用MySQL Yum仓库的快速指南。要了解更多信息,请参阅补充

目录

  • MySQL的安装步骤
  • 安装额外的MySQL产品和组件
  • 使用MySQL Yum仓库升级MySQL
  • 替换MySQL的本地第三方发行版
  • 使用Yum仓库安装MySQL NDB集群
  • 安装额外的MySQL NDB集群产品和组件
  • 补充

MySQL的安装步骤

注意:下面的介绍是在假设使用第三方分布式RPM包的MySQL还没有安装在您的系统的基础上;如果已经使用RPM包安装了MySQL,请参照【替换MySQL的本地第三方发行版】。

添加MySQL Yum仓库

首先,将MySQL Yum仓库添加到系统的仓库列表中。

按照以下步骤进行:

1.先跳转到MySQL Yum仓库的下载页面http://dev.mysql.com/downloads/repo/yum/

2.为您的平台选择并下载发布包

RPM安装包

这里我们选择mysql80-community-release-el7-1.noarch.rpm

3.使用下面的命令安装下载的版本包,用下载的包的名称替换platform-and-version-specific-package-name

1
shell> sudo rpm -Uvh platform-and-version-specific-package-name.rpm

例如,对于基于el7的系统包的版本n,命令如下:

1
shell> sudo rpm -Uvh mysql80-community-release-el7-1.noarch.rpm

注意:一旦发布包安装在您的系统上,如果Yum在MySQL Yum仓库中找到MySQL升级包或第三方软件包的替代品,那么通过yum update命令(支持dnf的系统是dnf upgrade)执行的任何系统更新都会自动升级系统上的MySQL包,同时也会替换任何本地的第三方软件包。具体可参考通过MySQL Yum仓库升级MySQL替换MySQL的本地第三方分发版以获取详细信息。

选择一个发行版本

在使用MySQL Yum仓库时,默认情况下会选择最新的MySQL GA版本。如果这是您想要的,您可以跳到下一个步骤,用Yum安装MySQL。

在MySQL Yum仓库http://repo.mysql.com/yum/中,MySQL社区服务器的不同版本系列托管在不同的子库中。最新的GA系列(目前是MySQL 8.0)的子库默认启用,而所有其他系列(例如,MySQL 5.7系列)的子库在默认情况下都是禁用的。

使用这个命令查看MySQL Yum仓库中的所有子库,并查看哪些子库是启用或禁用的(对于支持dnf的系统,用dnf替换yum):

1
shell> yum repolist all | grep mysql

要安装最新GA系列的最新版本,不需要配置。要安装最新GA系列以外的特定系列的最新版本,请在运行安装命令之前禁用最新GA系列的子库,并启用特定系列的子库。如果您的平台支持yum-config-managerdnf config-manager命令,您可以通过以下命令来实现这一点,例如,执行以下命令禁用8.0系列的子库,并启用5.7系列的子库

对于不支持dnf的平台:

1
2
shell> sudo yum-config-manager --disable mysql80-community
shell> sudo yum-config-manager --enable mysql57-community

对于支持dnf的平台

1
2
shell> sudo dnf config-manager --disable mysql80-community
shell> sudo dnf config-manager --enable mysql57-community

除了使用yum-config-managerdnf config-manager命令之外,您还可以通过手工编辑***/etc/yum.repos.d/mysql-community.repo***协议文件来选择一个系列。下面是一个发布系列的子库中的典型条目:

1
2
3
4
5
6
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

找到您想要配置的子库的条目,并编辑enabled的选项。指定enabled=0来禁用子库,或者enabled=1来启用子库。例如,要安装MySQL 5.7,请确保在MySQL 8.0的子库条目中enabled=0,并为5.7系列的条目设置enabled=1:

1
2
3
4
5
6
7
# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

您应该在任何时候只启用子库。当启用多个发布系列的子库时,Yum将使用最新的系列

通过运行以下命令并检查其输出(对于支持dnf的系统,用dnf替换yum),验证相应的子库是否已启用和禁用。

1
shell> yum repolist enabled | grep mysql

安装MySQL

通过以下命令安装MySQL(用于支持dnf的系统,用dnf替换yum):

1
shell> sudo yum install mysql-community-server

这将为MySQL服务器安装软件包,以及其他必需的软件包。

启动MySQL服务器

使用下面的命令启动MySQL服务器:

1
shell> sudo service mysqld start

对于基于el7的平台,执行以下命令:

1
shell> sudo systemctl start mysqld.service

您可以使用以下命令检查MySQL服务器的状态:

1
shell> sudo service mysqld status

对于基于el7的平台,使用systemctl:

1
shell> sudo systemctl status mysqld.service

MySQL服务器初始化(和MySQL 5.7一样):在服务器的初始启动时,由于服务器的数据目录是空的,所以会发现以下过程:

  • 服务器初始化
  • 在data目录中生成SSL证书和密钥文件
  • validate_password插件被安装并启用
  • 创建一个超级用户帐户的root‘@’localhost,超级用户的密码被设置并存储在错误日志文件中。要获取初始密码,请使用以下命令:
1
shell> sudo grep 'temporary password' /var/log/mysqld.log

尽快更改初始密码,通过初始密码登录,并为超级用户帐户设置一个自定义密码:

1
shell> mysql -uroot -p

修改密码

1
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';

注意:MySQL的validate_password插件是默认安装的。这将要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且总密码长度至少为8个字符。

至此, MySQL8.0安装完毕!

确保MySQL安装(仅针对MySQL 5.6)

指令mysql_secure_installation允许您执行一些重要的操作,如设置根密码、删除匿名用户等等。通过运行它来确保MySQL 5.6已安装成功:

1
shell> mysql_secure_installation

记住您设置的根密码是很重要的。详细信息请参阅mysql_secure_installation — Improve MySQL Installation Security

在安装MySQL 5.7或更高版本后,不要运行mysql_secure_installation,因为该指令的程序已经由Yum仓库安装完成。

注意:对于基于el7的平台,请查看Compatibility Information for EL7-based platforms

安装额外的MySQL产品和组件

您可以使用Yum来安装和管理MySQL的各个组件。其中一些组件已存在MySQL Yum仓库的子库中。使用下面的命令列出MySQL Yum仓库的所有子库中可用的所有MySQL组件的包(对于支持dnf的系统,用dnf替换yum):

1
shell> yum --disablerepo=\* --enablerepo='mysql*-community*' list available

使用以下命令安装您所选择的任何包,用包名替换***package-name ***(对于支持dnf的系统,用dnf替换指令中的yum):

1
shell> sudo yum install package-name

例如,在Fedora上安装MySQL Workbench:

1
shell> sudo dnf install mysql-workbench-community

用MySQL Yum仓库升级MySQL

注意:在对MySQL进行任何更新之前,请仔细检查Upgrading MySQL的说明。在这里说明中,更新之前备份数据库的内容尤其重要。

使用MySQL Yum仓库进行就地更新(即取代旧版本,然后运行旧的数据文件的新版本)为你的MySQL安装通过以下步骤(假设你已经安装了MySQL与MySQL Yum资源库或RPM包直接从MySQL开发人员下载区域的MySQL下载页面;如果不是这样,请按照以下指示替换MySQL的本地第三方发行版):

选择一个目标系列

默认情况下,MySQL Yum库将MySQL更新为您在安装期间选择的发布系列中的最新版本(参见选择发布系列了解详细信息),这意味着,例如5.7版本。x安装不会更新为8.0。x自动释放。要更新到另一个发布系列,您需要首先禁用所选系列的子存储库(默认情况下,或者您自己),并启用目标系列的子存储库。要做到这一点,请参阅在选择发布系列以编辑/etc/yum.repo .d/mysql-community中的子存储库条目时给出的一般说明。回购协议文件。要从MySQL 5.7升级到8.0,请执行与选择发布系列所示步骤相反的操作,禁用MySQL 5.7系列的子存储库,并启用MySQL 8.0系列的子存储库。

一般来说,要从一个发布系列升级到另一个发布系列,请转到下一个系列,而不是跳过一个系列。例如,如果您正在运行MySQL 5.6并希望升级到8.0,请先升级到MySQL 5.7,然后再升级到8.0。

重要

关于从MySQL 5.6升级到5.7的重要信息,请参见从MySQL 5.6升级到5.7。

有关从MySQL 5.7升级到8.0的重要信息,请参见从MySQL 5.7升级到8.0。

MySQL Yum库不支持就地降级MySQL。按照降级MySQL的说明。

升级MySQL

对于不支持dnf的平台,通过以下命令升级MySQL及其组件:

1
shell> sudo yum update mysql-server

对于支持dnf的平台

1
shell> sudo dnf --refresh upgrade mysql-server

或者,您可以通过告诉Yum更新系统上的所有内容来更新MySQL,这可能会花费更多的时间;对于不支持dnf的平台:

1
shell> sudo yum update

对于支持dnf的平台

1
shell> sudo dnf upgrade

重启MySQL

MySQL服务器总是在Yum更新后重新启动。一旦服务器重新启动,运行mysql_upgrade来检查并解决旧数据和升级软件之间的任何不兼容问题。mysql_upgrade还可以执行其他功能;请参阅mysql_upgrade -检查和升级MySQL表以了解详细信息。

您还可以只更新特定的组件。使用以下命令列出MySQL组件的所有已安装包(对于支持dnf的系统,将yum替换为dnf):

1
shell> sudo yum list installed | grep "^mysql"

在识别您选择的组件的包名之后,对于不支持dnf的平台,使用以下命令更新包,用包名替换包名:

1
shell> sudo yum update package-name

对于支持dnf的平台

1
shell> sudo dnf upgrade package-name

替换MySQL的本地第三方发行版

要用MySQL Yum库最新的GA版本(目前来自MySQL 8.0系列)替换从受支持的Linux平台的本地软件仓库安装的第三方MySQL发行版,请执行以下步骤:

备份数据库
为了避免数据丢失,请在尝试使用MySQL Yum库替换MySQL安装之前备份数据库。有关如何备份数据库,请参阅备份和恢复。

添加MySQL Yum存储库

通过添加MySQL Yum存储库中给出的说明,将MySQL Yum存储库添加到您的系统的存储库列表中。

用Yum更新或DNF升级替换本机第三方发行版

通过设计,MySQL Yum资源库将取代你的本地,第三方MySQL在最新的GA版本(从目前的MySQL 8.0系列)从MySQL百胜库执行Yum更新命令时(或dnf升级dnf-enabled系统)系统,或Yum更新MySQL服务器(或MySQL服务器升级dnf dnf-enabled系统)。

在使用Yum存储库更新MySQL之后,使用旧版本的共享客户机库编译的应用程序应该继续工作。但是,如果您想重新编译应用程序并动态地将它们与更新后的库链接起来,请参阅升级共享客户机库以获得一些特殊的考虑。

备注

对于基于el7的平台:查看基于el7的平台的兼容性信息。

如果您已经从一个非本地存储库下载并安装了MySQL的第三方分发版(例如,来自MariaDB或Percona),那么在MySQL服务器的参考手册中,遵循替换它们的说明是很重要的。

使用Yum存储库安装MySQL NDB集群、

备注

下面的说明假设MySQL服务器和MySQL NDB集群都已经安装在您的系统上;如果不是这样,那么在继续之前,删除MySQL服务器或MySQL NDB集群,包括所有可执行文件、库、配置文件和数据目录。但是,没有必要删除您可能用于在系统上启用MySQL Yum存储库的放行包。

NDB集群SQL节点包对Perl类::MethodMaker模块有依赖关系。如果在您的系统上启用了EPEL(Enterprise Linux的额外包),Yum可以处理这种依赖关系;请参阅这里的说明,了解如何启用EPEL存储库。

MySQL Yum存储库支持MySQL NDB集群的安装,仅用于发布7.5.6和后续版本,并且只支持EL6和EL7平台。对于其他安装NDB集群的方法,请参阅Linux上的NDB集群的安装,或者在Linux上安装NDB集群,这取决于您正在使用的发布系列。

为MySQL NDB集群添加MySQL Yum存储库

按照添加MySQL Yum存储库的步骤,将MySQL Yum存储库添加到系统的存储库列表中。如果您之前已经完成了这个步骤,那么请确保您拥有最新版本的发布包,运行以下命令,以支持那些没有启用dnf的平台:

shell> sudo yum update mysql57-community-release

对于支持dnf的平台

shell> sudo dnf –refresh upgrade mysql57-community-release

选择MySQL NDB集群子存储库

在MySQL Yum库(http://repo.sqmyl.com/yum/)中,MySQL社区服务器和MySQL NDB集群托管在不同的子存储库中。默认情况下,将启用MySQL服务器最新GA系列的子存储库,并禁用MySQL NDB集群的子存储库。要安装NDB集群,请禁用MySQL服务器的子存储库,并启用NDB集群的子存储库。如果您的平台支持yum-config-manager或dnf config-manager命令,您可以通过发出以下命令来做到这一点,该命令禁用了MySQL 5.7系列的子存储库,并为MySQL NDB集群7.5启用了这个命令;对于不支持dnf的平台:

shell> sudo yum-config-manager –disable mysql57-community
shell> sudo yum-config-manager –enable mysql-cluster-7.5-community

对于支持dnf的平台

shell> sudo dnf config-manager –disable mysql57-community
shell> sudo dnf config-manager –enable mysql-cluster-7.5-community

除了使用yconfig管理器或dnf configmanager命令之外,您还可以通过手工编辑/etc/yum.repos.d/mysql-community来选择子存储库。回购协议文件。这是文件中MySQL 5.7个子存储库的示例条目:

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

要安装NDB集群7.5,您必须禁用MySQL 5.7的子存储库,方法是为上面的子库条目启用启用=0,并启用NDB集群7.5个子存储库,使其条目=1:

[mysql-cluster-7.5-community]
name=MySQL Cluster 7.5 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

在保存文件的更改之后,通过运行以下命令来验证是否启用了正确的子存储库(支持dnf的系统,用dnf替换yum):

shell> yum repolist enabled | grep mysql
!mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community 18
!mysql-connectors-community/x86_64 MySQL Connectors Community 31
!mysql-tools-community/x86_64 MySQL Tools Community 33

NDB集群7.5(Community edition)的子存储库现已启用。
在列表中还有一些MySQL Yum存储库的其他子存储库,它们在默认情况下是启用的。

安装MySQL NDB集群

对于MySQL NDB集群的最小安装,请遵循以下步骤(用于支持dnf的系统,用dnf替换yum中的yum):

为SQL节点安装组件:

shell> sudo yum install mysql-cluster-community-server

安装完成后,按照启动MySQL服务器的步骤启动和初始化SQL节点。

如果您选择使用mysqld——初始化命令(请参阅使用mysqld手动初始化数据目录)来手动初始化数据目录,则会生成根密码并将其存储在SQL节点的错误日志中;有关如何查找密码的MySQL服务器初始化,以及您需要了解的一些事情。

为管理节点安装可执行文件:

shell> sudo yum install mysql-cluster-community-management-server

为数据节点安装可执行文件:

shell> sudo yum install mysql-cluster-community-data-node

配置和启动MySQL NDB集群

关于如何配置MySQL NDB集群和NDB集群的初始启动,请参阅NDB集群的初始配置,了解如何第一次启动它。

备注

对于基于el7的平台:查看基于el7的平台的兼容性信息。

安装额外的MySQL NDB集群产品和组件

您可以使用Yum从MySQL Yum存储库中安装MySQL NDB集群的单个组件和附加产品。
要做到这一点,假设您已经在系统的存储库列表中已经有了MySQL Yum存储库(如果没有的话,请遵循使用Yum存储库安装MySQL NDB集群的步骤1和步骤2),遵循在安装额外的MySQL产品和组件时所提供的相同步骤。

备注

已知的问题:目前,当您安装测试套件包(mysql-集群-社区测试)时,并不是运行MySQL NDB集群测试套件所需的所有组件。在运行测试套件之前,先安装yum安装(或dnf安装的dnf系统)的下列软件包:

  • mysql-cluster-community-auto-installer

  • mysql-cluster-community-management-server

  • mysql-cluster-community-data-node

  • mysql-cluster-community-memcached

  • mysql-cluster-community-java

  • mysql-cluster-community-ndbclient-devel

补充

关于MySQL Yum存储库的更多信息可以在MySQL服务器参考手册的以下部分中找到:
Installing MySQL on Linux Using the MySQL Yum Repository

Replacing a Third-Party Distribution of MySQL Using the MySQL Yum Repository

Upgrading MySQL with the MySQL Yum Repository

基于CentOS6的PostgreSQL yum安装

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
# yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-centos96-9.6-3.noarch.rpm

# yum install postgresql96

# yum install postgresql96-server

# yum install postgresql96-contrib

# service postgresql-9.6 initdb

# chkconfig postgresql-9.6 on

# service postgresql-9.6 start

配置

安装后默认只能本地访问,需要修改配置

1
2
# cd /var/lib/pgsql/9.6/data/
# ll

修改监听地址

1
# vim postgresql.conf 

修改listen_address

1
listen_address='*'

修改登入权限

1
# vim pg_hba.conf 

修改IPv4的配置

1
host    all             all             0.0.0.0/0            md5

重启生效

1
# service postgresql-9.6 restart

备注: root 用户无法直接访问数据库,需要切换成 postgres 用户,进入 bash 界面,再输入 psql 进入数据库的控制台

1
2
3
4
5
6
# su postgres
bash-4.1$ psql
psql (9.6.9)
Type "help" for help.

postgres=#

至此,PostgreSQL的安装和配置完毕!

在项目中引入Swagger,方便前后端进行接口的定义、测试和联调

引入依赖

1
2
3
4
5
6
7
8
9
10
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Configuration
@EnableSwagger2
public class SwaggerConfig {

@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.lemon.swagger"))
.paths(PathSelectors.any())
.build();
}

private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("api文档")
.description("RESTFUL接口")
.version("1.0").build();
}
}

@EnableSwagger2

启动Swagger

Docket

制定配置信息和扫描包的路径

测试

1
2
3
4
5
6
7
8
9
10
11
12
@RestController
@RequestMapping("/api/test")
public class TestController {

@RequestMapping(value = "/show", method = RequestMethod.POST)
@ApiOperation(value = "测试接口", notes = "测试接口详细描述")
public String show(
@ApiParam(required = true, name = "name", value = "姓名")
@RequestParam(name = "name") String strName) {
return "输入的姓名为------->" + strName;
}
}

启动项目,在浏览器上输入访问地址http://127.0.0.1:8080/swagger-ui.html即可

Swagger常用注解

  • @Api 作用在类上,说明该类的作用
  • @ApiOperation 作用在方法上,说明方法的作用,标注在具体的请求上,value和notes作用差不多,都是对请求进行说明,tags则是对请求进行分类的,比如你有好几个controller,分别属于不同的功能模块,那这里我们就可以使用tags来区分了
  • @ApiImplicitParams 用在方法上包含一组参数说明
  • @ApiImplicitParam 用在@ApiImplicitParams注解中,制定一个请求参数的各个方面
  • @ApiResponses 用于表示一组响应
  • @ApiResponse 用在@ApiResponses中,一版用于表达一个错误的响应信息
  • @ApiModel 描述一个Model的信息,表明这是一个被swagger框架管理的model,用于class上

在使用Nginx的过程中,如果修改了Nginx的配置文件nginx.conf,需要重启Nginx。此时,可以通过发送系统信号给Nginx的主进程的方式来进行重启。

阅读全文 »

shell脚本

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
34
35
#!/bin/sh

# create self-signed server certificate:

read -p "Enter your domain [www.example.com]: " DOMAIN

echo "Create server key..."

openssl genrsa -des3 -out $DOMAIN.key 2048

echo "Create server certificate signing request..."

SUBJECT="/C=CN/ST=ZHEJIANG/L=HANGZHOU/O=qinghuazs/OU=qinghuazs/CN=$DOMAIN"

openssl req -new -subj $SUBJECT -key $DOMAIN.key -out $DOMAIN.csr

echo "Remove password..."

mv $DOMAIN.key $DOMAIN.origin.key
openssl rsa -in $DOMAIN.origin.key -out $DOMAIN.key

echo "Sign SSL certificate..."

openssl x509 -req -days 36500 -in $DOMAIN.csr -signkey $DOMAIN.key -out $DOMAIN.crt

#echo "TODO:"
#echo "Copy $DOMAIN.crt to /var/nginx/ssl/$DOMAIN.crt"
#echo "Copy $DOMAIN.key to /var/nginx/ssl/$DOMAIN.key"
#echo "Add configuration in nginx:"
#echo "server {"
#echo " ..."
#echo " listen 443 ssl;"
#echo " ssl_certificate /etc/nginx/ssl/$DOMAIN.crt;"
#echo " ssl_certificate_key /etc/nginx/ssl/$DOMAIN.key;"
#echo "}"

注意

DOMAIN需要是服务器IP对应的域名,否则证书不生效

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
server {
listen 443;
server_name 127.0.0.1;

ssl on;

ssl_certificate /usr/local/cert/证书名.pem;
ssl_certificate_key /usr/local/cert/证书名.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;

location / {
proxy_pass http://127.0.0.1:8089;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

创建私钥

1
openssl genrsa -des3 -passout pass:qinghuazs12345+ -out private.key 2048 -subj "/CN=Finance/OU=qinghuazs/O=qinghuazs/L=HZ/ST=ZJ/C=CN"

根据私钥生成公钥

1
openssl rsa -in private.key -pubout -out public.key

此处需要输入私钥的密码,直接输入qinghuazs12345+即可

证书请求

1
openssl req -new -nodes -key private.key -out cert.csr

这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是包含公钥给对方用的数字证书。

生成证书

自签名证书,用于自己测试,不需要CA签发

1
openssl req -new -x509 -key private.key -out cacert.pem -days 36500

至此,生成的证书已经可以使用了。