强制使用小写的 url 地址

强制 使用小写的 url,这对于SEO避免重复内容惩罚尤其重要。在基于 windows 的服务器上更应该如此,因为 windows 默认情况下不区分大小写。对于良好的架构SEO来说,大小写混合的 url 重定向到标准化小写的 url 是非常有必要的

阅读更多

Nginx Gzip 压缩使用和详解

网站的性能部分取决于用户浏览器下载的所有文件的大小。减小这些传输文件的大小可以使网站更快。对于那些在按流量计费的连接上支付带宽使用费的人来说,它还可以使网站成本更低。
gzip 是一种流行的数据压缩程序。可以配置 Nginx 用于动态压缩它提供的文件。然后,这些文件在使用时由支持它的浏览器解压缩,没有任何损失,但可以在Web服务器和浏览器之间传输更少的数据量。好消息是,所有主流浏览器都支持
由于压缩的一般工作方式,某些文件压缩得比其他文件更好。例如,文本文件压缩得很好,通常最终会缩小两倍以上。另一方面,JPEG或PNG文件等图像已经按其性质进行了压缩,并且使用二次压缩很少或根本没有结果。另外压缩文件会耗费服务器资源,所以只压缩可以压缩的文件。
Nginx实现资源压缩的原理是通过 ngx_http_gzip_module 模块拦截请求,并对需要做 gzip 的类型做 gzip,ngx_http_gzip_module 是Nginx默认集成的,不需要重新编译,直接开启

阅读更多

Nginx broti 压缩算法

这里仅仅是对 Broti 算法进行简要的对比和描述, 不涉及到实际使用

在web应用中,为了节省流量,降低传输数据大小,提高传输效率,常用的压缩方式一般都是gzip,今天我们来介绍另外一种更高效的压缩方式brotli。
Brotli 是基于LZ77算法的一个现代变体、霍夫曼编码和二阶上下文建模。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。
注意:使用算法的前提是启用了 https,因为 http 请求中 request header 里的 Accept-Encoding: gzip, deflate 是没有 br 的。
关于Brotli 算法详细请查看:https://zh.wikipedia.org/wiki/Brotli

阅读更多

Client Adapter

基本说明

canal 1.1.1版本之后, 增加客户端数据落地的适配及启动功能, 目前支持功能:

  • 客户端启动器
  • 同步管理REST接口
  • 日志适配器, 作为DEMO
  • 关系型数据库的数据同步(表对表同步), ETL功能
  • HBase的数据同步(表对表同步), ETL功能
  • (后续支持) ElasticSearch多表数据同步,ETL功能

环境版本

  • 操作系统:无要求
  • java版本: jdk1.8 以上
  • canal 版本: 请下载最新的安装包,本文以当前v1.1.1 的canal.deployer-1.1.1.tar.gz为例
  • MySQL版本 :5.7.18
  • HBase版本: Apache HBase 1.1.2, 若和服务端版本不一致可自行替换客户端HBase依赖

一、适配器整体结构

client-adapter分为适配器和启动器两部分, 适配器为多个fat jar, 每个适配器会将自己所需的依赖打成一个包, 以SPI的方式让启动器动态加载, 目前所有支持的适配器都放置在plugin目录下

启动器为 SpringBoot 项目, 支持canal-client启动的同时提供相关REST管理接口, 运行目录结构为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- bin
restart.sh
startup.bat
startup.sh
stop.sh
- lib
...
- plugin
client-adapter.logger-1.1.1-jar-with-dependencies.jar
client-adapter.hbase-1.1.1-jar-with-dependencies.jar
...
- conf
application.yml
- hbase
mytest_person2.yml
- logs

以上目录结构最终会打包成 canal-adapter-*.tar.gz 压缩包

二、适配器配置介绍

2.1 总配置文件 application.yml

adapter定义配置部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
canal.conf:
canalServerHost: 127.0.0.1:11111 # 对应单机模式下的canal server的ip:port
zookeeperHosts: slave1:2181 # 对应集群模式下的zk地址, 如果配置了canalServerHost, 则以canalServerHost为准
mqServers: slave1:6667 #or rocketmq # kafka或rocketMQ地址, 与canalServerHost不能并存
flatMessage: true # 扁平message开关, 是否以json字符串形式投递数据, 仅在kafka/rocketMQ模式下有效
batchSize: 50 # 每次获取数据的批大小, 单位为K
syncBatchSize: 1000 # 每次同步的批数量
retries: 0 # 重试次数, -1为无限重试
timeout: # 同步超时时间, 单位毫秒
mode: tcp # kafka rocketMQ # canal client的模式: tcp kafka rocketMQ
srcDataSources: # 源数据库
defaultDS: # 自定义名称
url: jdbc:mysql://127.0.0.1:3306/mytest?useUnicode=true # jdbc url
username: root # jdbc 账号
password: 121212 # jdbc 密码
canalAdapters: # 适配器列表
- instance: example # canal 实例名或者 MQ topic 名
groups: # 分组列表
- groupId: g1 # 分组id, 如果是MQ模式将用到该值
outerAdapters: # 分组内适配器列表
- name: logger # 日志打印适配器
......

说明:

  1. 一份数据可以被多个group同时消费, 多个group之间会是一个并行执行, 一个group内部是一个串行执行多个outerAdapters, 比如例子中logger和hbase
  2. 目前client adapter数据订阅的方式支持两种,直连canal server 或者 订阅kafka/RocketMQ的消息

2.2 使用远程配置(Mysql)

可以使用远程配置中心(Mysql,可扩展)作为统一配置管理

2.1.1 创建mysql schema

1
CREATE SCHEMA `canal_manager` DEFAULT CHARACTER SET utf8mb4 ;

2.1.2 初始化数据

使用manager_ddl.sql脚本建表并初始化Demo数据,其中canal_config表id=2的数据对应adapter下的application.yml文件,canal_adapter_config表对应每个adapter的子配置文件

2.1.3 修改bootstrap.yml配置

1
2
3
4
5
6
canal:
manager:
jdbc:
url: jdbc:mysql://127.0.0.1:3306/canal_manager?useUnicode=true&characterEncoding=UTF-8
username: root
password: 121212

可以将本地application.yml文件和其他子配置文件删除或清空, 启动工程将自动从远程加载配置

修改mysql中的配置信息后会自动刷新到本地动态加载相应的实例或者应用

三、适配器启动

3.1 启动canal-adapter示例

3.1.1 启动canal server (单机模式), 参考: Canal QuickStart

3.1.2 修改conf/application.yml为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server:
port: 8081
logging:
level:
com.alibaba.otter.canal.client.adapter.hbase: DEBUG
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
default-property-inclusion: non_null

canal.conf:
canalServerHost: 127.0.0.1:11111
batchSize: 500
syncBatchSize: 1000
retries: 0
timeout:
mode: tcp
canalAdapters:
- instance: example
groups:
- groupId: g1
outerAdapters:
- name: logger

3.1.3 启动

1
bin/startup.sh

3.2 adapter管理REST接口

3.2.1 查询所有订阅同步的canal instance或MQ topic

1
curl http://127.0.0.1:8081/destinations

3.2.2 数据同步开关

1
curl http://127.0.0.1:8081/syncSwitch/example/off -X PUT

针对 example 这个canal instance/MQ topic 进行开关操作. off代表关闭, instance/topic下的同步将阻塞或者断开连接不再接收数据, on代表开启

注: 如果在配置文件中配置了 zookeeperHosts 项, 则会使用分布式锁来控制HA中的数据同步开关, 如果是单机模式则使用本地锁来控制开关

3.2.3 数据同步开关状态

1
curl http://127.0.0.1:8081/syncSwitch/example

查看指定 canal instance/MQ topic 的数据同步开关状态

3.2.4 手动ETL

1
curl http://127.0.0.1:8081/etl/hbase/mytest_person2.yml -X POST -d "params=2018-10-21 00:00:00"

导入数据到指定类型的库, 如果params参数为空则全表导入, 参数对应的查询条件在配置中的etlCondition指定

3.2.5 查看相关库总数据

1
curl http://127.0.0.1:8081/count/hbase/mytest_person2.yml

适配器列表

logger适配器

1
2
3
4
最简单的处理, 将受到的变更事件通过日志打印的方式进行输出, 如配置所示, 只需要定义name: logger即可
...
outerAdapters:
- name: logger

Hbase适配器

同步HBase配置 : Sync-HBase

RDB适配器

同步关系型数据库配置 : Sync-RDB

目前内置支持的数据库列表:

  1. MySQL
  2. Oracle
  3. PostgresSQL
  4. SQLServer

使用了JDBC driver,理论上支持绝大部分的关系型数据库

ES适配器

同步关ES配置 : Sync-ES

MongoDB适配器

Redis适配器


原文地址 : Client Adapter
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

SyncEs

canal 1.1.1版本之后, 内置增加客户端数据同步功能, Client适配器整体介绍: ClientAdapter
canal adapter 的 Elastic Search 版本支持6.x.x以上, 如需其它版本的es可替换依赖重新编译client-adapter.elasticsearch模块

阅读更多

Canal 简介


**canal [kə’næl]**,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费
工作原理

  • canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议
  • MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
  • canal 解析 binary log 对象(原始为 byte 流)
阅读更多

快速入门

准备

  • 对于自建 MySQL , 需要先开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式,my.cnf 中配置如下
    1
    2
    3
    4
    [mysqld]
    log-bin=mysql-bin # 开启 binlog
    binlog-format=ROW # 选择 ROW 模式
    server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
    • 注意:针对阿里云 RDS for MySQL , 默认打开了 binlog , 并且账号默认具有 binlog dump 权限 , 不需要任何权限或者 binlog 设置,可以直接跳过这一步
  • 授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限, 如果已有账户可直接 grant
    1
    2
    3
    4
    CREATE USER canal IDENTIFIED BY 'canal';  
    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
    -- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
    FLUSH PRIVILEGES;

启动

  • 下载 canal, 访问 release 页面 , 选择需要的包下载, 如以 1.0.17 版本为例

    1
    wget https://github.com/alibaba/canal/releases/download/canal-1.0.17/canal.deployer-1.0.17.tar.gz
  • 解压缩

    1
    2
    mkdir /tmp/canal
    tar zxvf canal.deployer-$version.tar.gz -C /tmp/canal
    • 解压完成后,进入 /tmp/canal 目录,可以看到如下结构
1
2
3
4
drwxr-xr-x 2 jianghang jianghang  136 2013-02-05 21:51 bin
drwxr-xr-x 4 jianghang jianghang 160 2013-02-05 21:51 conf
drwxr-xr-x 2 jianghang jianghang 1.3K 2013-02-05 21:51 lib
drwxr-xr-x 2 jianghang jianghang 48 2013-02-05 21:29 logs
  • 配置修改

    1
    vi conf/example/instance.properties
    • canal.instance.connectionCharset 代表数据库的编码方式对应到 java 中的编码类型,比如 UTF-8,GBK , ISO-8859-1
    • 如果系统是1个 cpu,需要将 canal.instance.parser.parallel 设置为 false
  • 启动

    1
    sh bin/startup.sh
  • 查看 server 日志

    1
    vi logs/canal/canal.log
    1
    2
    3
    2013-02-05 22:45:27.967 [main] INFO  com.alibaba.otter.canal.deployer.CanalLauncher - ## start the canal server.
    2013-02-05 22:45:28.113 [main] INFO com.alibaba.otter.canal.deployer.CanalController - ## start the canal server[10.1.29.120:11111]
    2013-02-05 22:45:28.210 [main] INFO com.alibaba.otter.canal.deployer.CanalLauncher - ## the canal server is running now ......
  • 查看 instance 的日志

    1
    vi logs/example/example.log
  • 关闭

    1
    sh bin/stop.sh

原文地址 : 快速入门
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

Canal 说明

Canal 作为一个优秀的工具, 文档却不太好找, 可能是对 非 java 开发不友好, 包含 spring, jackson

这里把相关的文档做下记录, 以防漏掉

https://www.cnblogs.com/LQBlog/p/14661570.html
zk分布式锁
配置文件修改
增加es文件夹
全量
增量
根据条件增量
动态更新配置文件
配置application.properties

一份共享文档
canal入门


原文地址 : Canal 说明
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

ElasticSearch 分词使用

安装

地址 : https://github.com/medcl/elasticsearch-analysis-ik
1. 选择对应的ES的版本
2. 安装插件

1
2
3
cd /usr/share/elasticsearch/bin

./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip

这个版本的 7.17.5 安装失败, 可以使用第一种办法(参考 github 文档)

1
2
3
4
5
# ./elasticsearch-plugin install elasticsearch-analysis-ik-7.17.5.zip
-> Installing elasticsearch-analysis-ik-7.17.5.zip
-> Failed installing elasticsearch-analysis-ik-7.17.5.zip
-> Rolling back elasticsearch-analysis-ik-7.17.5.zip
-> Rolled back elasticsearch-analysis-ik-7.17.5.zip

示例

示例参考官方网站, 这里不做赘述
这里创建索引并创建属性, 也可以向github 中, 创建索引再创建字段

1
2
3
4
5
POST /index/_analyze
{
"text": "中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首",
"tokenizer": "ik_smart"
}

原文地址 : ElasticSearch 分词使用
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

挂载磁盘出现的问题

出现的详细报错现在没有记下来, 大致的意思是, 你为什么还用 ext3 的方式来挂载 ext4 的硬盘唻.
重启之后进入系统中, 想要修改 /ext/fstab 的时候提示文件不能修改, 所以重新挂载磁盘进入读写状态

阅读更多

升级CentOS7 到 CentOS8

1. 前言

在本文中,您将了解如何将CentOS 7升级到CentOS 8.5版本。注意的是,本文介绍的方式仅仅是用于测试,生产环境上应该慎重使用。

2. Step 1: 安装EPEL仓库

执行以下命令安装EPEL仓库,用于补充软件库:

1
# yum install epel-release -y

3. Step 2: 安装yum-utils工具

yum-utils 工具用于管理 yum 源,执行以下命令安装它:

1
# yum install yum-utils

此时需要执行该命令解析RPM包。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# yum install rpmconf
# rpmconf -a

Configuration file '/etc/php.ini'
-rw-r--r-- 1 root root 63217 5月 17 2019 /etc/php.ini
-rw-r--r-- 1 root root 63250 3月 2 2021 /etc/php.ini.rpmnew

==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
M : merge configuration files
Z : background this process to examine the situation
S : skip this file
The default action is to keep your current version.
*** aliases (Y/I/N/O/D/M/Z/S) [default=N] ?

提示的时候根据需要的版本进行不同的选择, 接下来,对所有不需要的包进行清理。

1
2
# package-cleanup --leaves
# package-cleanup --orphans

4. Step 3: 在CentOS 7中安装dnf工具

dns可以理解为下一代的yum,它在CentOS 8上被设置为默认的软件包安装工具。

通过以下命令安装它:

1
# yum install dnf

您还需要使用以下命令删除yum包管理器。

1
# dnf -y remove yum yum-metadata-parser

5. Step 4: 把CentOS 7升级至CentOS 8

现在我们已经准备好升级CentOS 7到CentOS 8,但是在升级之前,请使用新安装的dnf包管理器升级系统。

1
# dnf upgrade

接下来,使用如下所示的dnf安装CentOS 8的软件包。这需要一段时间。这里使用的阿里云的地址
https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/Packages/

1
2
3
# dnf install https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/Packages/centos-stream-repos-8-6.el8.noarch.rpm
# dnf install https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/Packages/centos-stream-release-8.6-1.el8.noarch.rpm
# dnf install https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/Packages/centos-gpg-keys-8-6.el8.noarch.rpm

接下来,升级适配于CentOS 8的EPEL软件仓库。

1
dnf -y upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

成功升级EPEL软件仓库之后,删除所有临时文件。

1
dnf clean all

删除CentOS 7的旧内核

1
rpm -e `rpm -q kernel`

接下来,一定要删除冲突的软件包。

1
rpm -e --nodeps sysvinit-tools

之后,启动CentOS 8系统升级。

1
dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync

注意:如果您得到关于冲突包的错误,例如在我的升级过程中,存在关于现有python36-rpmconf包的冲突。我删除了这个包,类似地,如果有任何冲突,只需删除这些包并尝试运行上面的升级命令。

6. Step 5: 为CentOS 8安装新内核

执行以下命令为CentOS 8安装新内核:

1
dnf -y install kernel-core

最后,为CentOS 8安装最基础的软件包。

1
dnf -y groupupdate "Core" "Minimal Install"

现在您可以通过运行CentOS检查安装的版本。

1
cat /etc/redhat-release

看看是不是已经升级到8.5版本了?如果你在上面的输出信息中看到8.5,证明你已经成功地从CentOS 7升级到CentOS 8.5版本了。

7: 结论

通过本文的指导,您应该已经成功把CentOS 7升级到CentOS 8.5版本了。但我还是强烈建议您先测试一段时间然后再考虑是否要应用于生产环境。


原文地址 : 升级CentOS7 到 CentOS8
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

Mac 使用Docker进行低版本PHP项目开发

安装环境

安装 docker

安装 PHP

搜索 php

1
2
3
4
5
6
7
8
$ docker search php
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
php While designed for web development, the PHP … 6569 [OK]
composer Composer is a dependency manager written in … 866 [OK]
adminer Database management in a single PHP file. 709 [OK]
phpmyadmin phpMyAdmin - A web interface for MySQL and M… 534 [OK]
mediawiki MediaWiki is a free software open source wik… 419 [OK]
php-zendserver Zend Server - the integrated PHP application… 201 [OK]

安装镜像

1
2
3
4
$ docker pull php:7.1-fpm
...
Status: Downloaded newer image for php:7.1-fpm
docker.io/library/php:7.1-fpm

重命名镜像, 挂载目录

1
2
3
$ docker run --name php71-fpm \
-v /Users/duoli/Documents/workbench:/var/www \
-d php:7.1-fpm

--name php71-fpm
将容器命名为 php71-fpm。
-v /Users/duoli/Documents/workbench:/var/www
将主机中项目的目录 /Users/duoli/Documents/workbench 挂载到容器的 /var/www

安装 Nginx

nginx 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# /Users/duoli/Documents/program/docker/php71-conf.d
# default.conf
server {
listen 80;
server_name localhost;

# 根目录
root /var/www;
index index.php;

location ~ \.php$ {
# 映射 9000
fastcgi_pass php71-fpm:9000;
include fastcgi_params;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

启用映射

1
2
3
4
$ docker run --name nginx-php71 -p 8071:80 \
-v /Users/duoli/Documents/program/docker/php71-conf.d:/etc/nginx/conf.d:ro \
--link php71-fpm \
-d nginx

-p 8071:80
端口映射,把 nginx 中的 80 映射到本地的 8071 端口
-v ...
映射服务器的 conf.d 目录到本地目录, 方便配置
--link php71-fpm
php71-fpm 镜像的网络并入nginx 网络, 使用 php71-fpm便可识别到镜像服务
在目录创建

1
2
<?php
phpinfo();

使用 [http://localhost:8071/index.php](http://localhost:8071/index.php) 访问, 可以看到 phpinfo 信息
image.png

配置 Phpstorm 编辑器

配置 cli

打开 Preferences | PHP 配置
image.png

运行 cli

打开 Services, 运行 Docker, 找到启动的镜像, 运行 Terminal
image.png
这样既可运行 php

1
2
3
4
root@c5368c4120cc:/var/www/html# php -v
PHP 7.1.33 (cli) (built: Nov 22 2019 18:34:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

配置 composer

下载 composer.phar 到代码目录

A long-term-support version (2.2.x) still offers support for PHP 5.3.2+ in case you are stuck with a legacy PHP version

这里下载 composer 2.2 版本既可
运行 composer

1
2
3
4
5
6
7
# 更换源
$ php composer.phar config repos.packagist composer https://mirrors.cloud.tencent.com/composer/

# 更新代码
$ php composer.phar update
Loading composer repositories with package information
....

后续根据项目需求配置 nginx 映射访问即可


原文地址 : Mac 使用Docker进行低版本PHP项目开发
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

设置 SSH 安全通过密钥,免密码登录服务器或拉取代码

我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器。但是,一般的密码方式登录,容易有密码被暴力破解的问题。所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者禁用 root 账户登录。其实,有一个更好的办法来保证安全,而且让你可以放心地用 root 账户从远程登录——那就是通过密钥方式登录。

密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。

这个方式同样可以拉取 git 代码, 后续会附上如何在 coding 中配置公钥

阅读更多

[译] 在 CentOS 7/RockyLinux 上安装和配置 Redis

Redis 是一个开源的内存型数据库。它可以用作数据库,缓存或消息代理,并支持各种数据结构,例如字符串,哈希,列表,集合等。Redis 通过 Redis Sentinel 提供高可用性,包括监视,通知,自动故障转移。它还使用 Redis Cluster 在多个 Redis 节点之间提供自动分区。

阅读更多

[转] 如何在 CentOS 7 上修改主机名

ps : 此工具在 rockylinux 上依然可用

在 CentOS 中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(pretty)。静态主机名也称为内核主机名,是系统在启动时从/etc/hostname 自动初始化的主机名。瞬态主机名是在系统运行时临时分配的主机名,例如,通过 DHCP 或 mDNS 服务器分配。静态主机名和瞬态主机名都遵从作为互联网域名同样的字符限制规则。而另一方面,灵活主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如 server-a)。
在 CentOS 7 中,有个叫 hostnamectl 的命令行工具,它允许你查看或修改与主机名相关的配置。

阅读更多

配置 HTTPS

重定向所有的站点到 https

通过在 nginx.conf 文件中添加以下内容,将所有非安全(HTTP)请求重定向到使用 HTTPS 连接的服务器上配置的任何站点

阅读更多