Java后台基础学习笔记

重点研究开源库

AG-Admin-v2.0

  • 安装问题解决 https://www.jianshu.com/p/fd3b19cacd99
    Error: Can't find Python executable "D:\workspace\env\common\Python\phyton_3.7.0\python.EXE", you can set the PYTHON env variable
    ## 解决,管理员身份
    npm install --global --production windows-build-tools
    npm install --global node-gyp
    Module build failed: Error: Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime (64)

原因:Node Sass 版本低

解决:

npm uninstall node-sass -D
npm install node-sass -D

Mall

https://github.com/macrozheng/mall

Pay

https://gitee.com/52itstyle/spring-boot-pay

秒杀系统

https://gitee.com/52itstyle/spring-boot-seckill

https://gitee.com/xiandafu/springboot-plus

常用工具

  • scouter is an open source APM and an open source profiler for java application like web applications on a tomcat .

  • tomcat挂掉解决方案

    • Tomcat集群
    • tomcat线程监控并自启

管理工具

  • RAP Web接口管理工具,开源免费,接口自动化,MOCK数据自动生成,自动化测试,企业级管理。阿里妈妈MUX团队出品!阿里巴巴都在用!1000+公司的选择!API 接口管理

Consul

官网下载地址: https://www.consul.io/downloads.html

下载解压后window 使用

consul agent -dev

远程连接 SecureCRT

环境配置

MAC

常用设置

超时从连(Options-->Session Options-->Terminal

  1. 第一步

访问控制

nginx

  • Nginx 常用命令

    sudo nginx #打开 nginx
    nginx -s reload|reopen|stop|quit  #重新加载配置|重启|停止|退出 nginx
    nginx -t   #测试配置是否有语法错误
    
    nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]
    
    -?,-h           : 打开帮助信息
    -v              : 显示版本信息并退出
    -V              : 显示版本和配置选项信息,然后退出
    -t              : 检测配置文件是否有语法错误,然后退出
    -q              : 在检测配置文件期间屏蔽非错误信息
    -s signal       : 给一个 nginx 主进程发送信号:stop(停止), quit(退出), reopen(重启), reload(重新加载配置文件)
    -p prefix       : 设置前缀路径(默认是:/usr/local/Cellar/nginx/1.2.6/)
    -c filename     : 设置配置文件(默认是:/usr/local/etc/nginx/nginx.conf)
    -g directives   : 设置配置文件外的全局指令

nginx -t 能查看配置文件所在目录

nginx: the configuration file /usr/local/tengine/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/tengine/conf/nginx.conf test is successful

阿里云后台配置文件路径:/usr/local/tengine/conf/nginx.conf

开源库

转化工具

properties2yml

数据库

Redis

Hibernate

MongoDB

配置文档: MongoDB manual

MongoDB 入门教程

  • studio 3t破解, studio3t.bat

    @echo off
    ECHO 重置Studio 3T的使用日期......
    FOR /f "tokens=1,2,* " %%i IN ('reg query "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\3t\mongochef\enterprise" ^| find /V "installation" ^| find /V "HKEY"') DO ECHO yes | reg add "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\3t\mongochef\enterprise" /v %%i /t REG_SZ /d ""
    ECHO 重置完成, 按任意键退出......
    pause>nul
    exit

    复制到:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp, 双击运行

  • Docker hub

  • mongod 命令解析

权限

​ Built-In Roles(内置角色):
​ \1. 数据库用户角色:read、readWrite;
​ \2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
​ \3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
​ \4. 备份恢复角色:backup、restore;
​ \5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
​ \6. 超级用户角色:root
​ // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
​ \7. 内部角色:__system

具体角色:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

授权操作

docker exec -it mongodb_mongo_1 mongo admin
db.auth("mongo-admin","admin-initial-password")
use octblog

# Step2: create a user
db.createUser(
  {
    user: "gevin",
    pwd: "gevin",
    roles: [ { role: "readWrite", db: "octblog" },
             { role: "readWrite", db: "octblog-log" } ],
    mechanisms : ["SCRAM-SHA-1"]         
  }
)

授权验证

docker exec -it {containerId} mongo localhost:27017/db_name -u user -p password

基本使用

实体类使用流程

第一步:导入pom.xml依赖,配置数据库

  
    
      org.springframework.data
      spring-data-commons
      1.13.9.RELEASE
    

mongoDB 数据库设置

spring:
  data:
    mongodb:
      uri:  mongodb://root:123@localhost:27017
      database: xc_cms
spring:
  data:
    mongodb:
      database: xc_cms
      host: 
      port: 27017
      password: 
      username: 

第二步:定义实体类

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Data
@ToString
@Document(collection = "cms_page")
public class CmsPage {
  private String siteId;
  //页面ID
  @Id
  private String pageId;
}

第三步:配置符合jpa规范的操作仓库

public interface CmsPageRepository extends MongoRepository<CmsPage, String> {
     CmsPage findByPageName(String pageName);
}

第四步:实现分页

导入pom.xml依赖

    <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-commons -->
    <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-commons</artifactId>
      <version>1.13.9.RELEASE</version>
    </dependency>

PageService.java

//查询条件匹配
ExampleMatcher matcher = ExampleMatcher.matching();
Example example = Example.of(cmsPage, matcher);
//分页设置
Pageable pageable = PageRequest.of(page < 0 ? 0 : page, size <= 0 ? 10 : size);
Page<CmsPage> all = cmsPageRepository.findAll(example, pageable);

RabbitMQ

配置

  #启动
  rabbitmq-server -detached
  #查看的服务状态
  rabbitmqctl status
  #关闭
  rabbitmqctl stop
  # 配置网页插件, 1. 创建目录; 2. 启用插件
  mkdir /etc/rabbitmq 
  rabbitmq-plugins enable rabbitmq_management 
  # 配置linux网页管理端口: 15672 AMQP端口:5672
  # 然后访问http://localhost:15672即可, 阿里云:http://47.107.130.109:15672
  #默认用户guest 密码guest

常用命令

#添加用户:
rabbitmqctl add_user  
#添加权限:
rabbitmqctl set_permissions -p "/"  ".*" ".*" ".*"
#修改用户角色:
rabbitmqctl set_user_tags  administrator

# 常用命令
add_user         
delete_user     
change_password  
list_users
add_vhost    
delete_vhost 
list_vhostsset_permissions   [-p ]    
clear_permissions [-p ] 
list_permissions  [-p ]
list_user_permissions 
list_queues    [-p ] [ ...]
list_exchanges [-p ] [ ...]
list_bindings  [-p ]
list_connections [ ...]

MyBatis

工具

  1. mybatis 逆向工程 mybatis-generator-gui
    1. 使用教程 推荐一款好用的mybatis逆向生成工具(真的很好用)
  2. MyBatis Generator 使用教程
  3. MyBatis-Plus 官网
    1. MyBatis-Plus + mysql 网络访问入门demo
    2. mybatis-plus-samples

参考

附件

1、mybatis-spring-boot-starter 配置项手册

2、GitHub仓库地址,包含代码示例

3、中文官方文档

zhengyu@chinapay.com; 11770820@qq.com; huang.haisong@chinapay.con

dubbo

zipkin

Tomcat

阿里云Tomcat地址 /root/document/backup/apache-tomcat-7.0.63

部署

  1. Spring Boot 两种部署到服务器的方式

    jps 
    kill [ip]
    nohup java -jar test.jar >temp.txt &

FastDFS

[用FastDFS一步步搭建文件管理系统]

官网: fastdfs

  1. docker-compose 和Dockerfile 生成fastdfs 学习案例
    1. moocu/fastdfs source
    2. 成功使用的案例 Docker安装fastdfs

Frp 内网穿透

1. 参考资料

2. 实战经验记录

  1. 【重点-备份】0.27版本全平台版本储存在 E:\software\2.coder\debug
  2. 【47公网服务器路径】 /usr/local/frp/frp_0.27.0_linux_amd64
  3. 【版本问题】 服务器端和客户端版本必须一致,否则会出现各种无法排查的问题

3. 常用命令

#启动服务
./frps -c ./frps.ini
#启动后台服务
nohup ./frps -c ./frps.ini &

#启动客户端
./frpc -c ./frpc.ini
#配置热更新
frpc reload -c ./frpc.ini
#得到代理任务
frpc status -c ./frpc.ini

4. 案例

4.1 经典内网穿透案例

第一步:配置公网服务配置文件,frps.ini

[common]
bind_port = 7000
token=1234567890
#客户端配置的端口
vhost_http_port = 6081

启动

#启动服务
./frps -c ./frps.ini
#启动后台服务
nohup ./frps -c ./frps.ini &

第二步:配置内网服务配置文件,frpc.ini

[common]
server_addr = 47.107.130.109
server_port = 7000
token=1234567890

[web]
type = http
local_ip = 192.168.1.2
local_port = 50102
custom_domains = frps.linz.tech

【注意】

  • custom_domains 配置的域名必须指向公网IP
  • local_ip 不一定是本机IP,即内网能访问的IP地址都能映射

4.2 自定义子域名使其转发到内网服务中

  1. 阿里云配置所以*frp.linz.tech 转发到阿里云服务器

  2. 服务端配置

    [common]
    bind_port = 7000
    subdomain_host = linz.tech
    vhost_http_port = 6081
    
    #log
    log_file = ./frps.log
    log_level = debug
    log_max_days =3
    
    dashboard_port = 7500
    # dashboard 用户名密码,默认都为 admin
    dashboard_user = admin
    dashboard_pwd = admin
    #connection pool setting
    max_pool_count = 3
    
    #token 和客户端配置的 accesstoken保持一致,不一致无法保持连接
    token=1234567890
    
  3. 客户端设置

    [common]
    server_addr = 47.107.130.109
    server_port = 7000
    user = jobs
    token=1234567890
    pool_count = 2
    
    [portainer]
    type = http
    local_port = 9000
    subdomain = portainer
    #below 2 param default is false
    use_encryption = true
    use_compression = true
    
    [eureka]
    type = http
    local_port = 50101
    subdomain = eureka

4.3 ssh 登录

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

ssh 连接 ssh -oPort=6000 test@x.x.x.x 其中 test为服务器登录名称

zuul

配置管理

对密码加密

开源库

nacos

服务提供者集成nacos

第一步:加入必要的依赖配置 pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.5.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>0.2.2.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.2</version>
        <optional>true</optional>
    </dependency>
</dependencies>

第二步: 应用入口App启用 @EnableDiscoveryClient

@EnableDiscoveryClient
@SpringBootApplication
public class TestApplication {
}

第三步: 接入nacos服务,如application.properties

server.port=8001
spring.application.name=alibaba-nacos-discovery-server
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#命名空间设置
spring.cloud.nacos.discovery.namespace=f1e5a968-5ddb-479b-8e35-1f8c9ccea438

服务消费者

第一,二,三步:同上

第四: 请求

RestTemplate

      @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
String result = restTemplate.getForObject("http://alibaba-nacos-discovery-server/hello?name=didi", String.class);

WebClient

第一步:加入必要依赖配置

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

第二步:使用

@Bean
@LoadBalanced
public WebClient.Builder loadBalancedWebClientBuilder() {
    return WebClient.builder();
}

@GetMapping("/test")
public Mono<String> test() {
    Mono<String> result = webClientBuilder.build()
        .get()
        .uri("http://alibaba-nacos-discovery-server/hello?name=didi")
        .retrieve()
        .bodyToMono(String.class);
    return result;
}

Feign使用

第一步: 增加openfeign依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

第二步:App 入口启用@EnableFeignClients

@EnableFeignClients
@SpringBootApplication
public class TestApplication {
}

第三步:使用

@FeignClient(value = "XC-SERVICE-MANAGE-CMS") //指定要远程调用的服务名
public interface CmsPageClient {
  /**
   * 根据页面id查询页面信息,远程调用cms请求数据
   * @param id page id
   * @return
   */
  @GetMapping("/cms/page/get/{id}")
  CmsPage findCmsPageById(@PathVariable("id") String id);

  /**
   * 保存页面
   * @param cmsPage
   * @return
   */
  @PostMapping("/cms/page/save")
  CmsPageResult saveCmsPage(@RequestBody CmsPage cmsPage);

  /**
   * 一键发布接口
   * @param cmsPage
   * @return
   */
  @PostMapping("/cms/page/postPageQuick")
  CmsPostPageResult postPageQuick(@RequestBody CmsPage cmsPage);
}

配置中心集成

第一步:加入必要的依赖,

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.5.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>0.2.2.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.2</version>
        <optional>true</optional>
    </dependency>
</dependencies>

如果已经集成了服务提供或者消费,只需增加如下配置:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

第二步:代码中使用

@SpringBootApplication
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

    @Slf4j
    @RestController
    @RefreshScope
    static class TestController {

        @Value("${didispace.title:}")
        private String title;

        @GetMapping("/test")
        public String hello() {
            return title;
        }
    }
}

配注:

  1. @Value("${didispace.title:}") 读取配置信息
  2. @RefreshScope 这个类配置内容支持动态更新

第三步:创建配置文件bootstrap.properties

spring.application.name=alibaba-nacos-config-client
server.port=8001
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

第四步:自定义配置

# blog: http://blog.didispace.com/spring-cloud-alibaba-nacos-config-1/
#自定义配置文件选择
A
#spring.cloud.nacos.config.prefix=example
#spring.cloud.nacos.config.file-extension=properties
#spring.cloud.nacos.config.group=DEV_GROUP

# 开发模式选择
# blog: http://blog.didispace.com/spring-cloud-alibaba-nacos-config-2/
#spring.profiles.active=DEV 
#spring.cloud.nacos.config.group=DEV_GROUP

# blog: http://blog.didispace.com/spring-cloud-alibaba-nacos-config-3/
#多文件配置
#1. B 数组形式
#spring.cloud.nacos.config.ext-config[0].data-id=actuator.properties
#spring.cloud.nacos.config.ext-config[0].group=DEFAULT_GROUP
#spring.cloud.nacos.config.ext-config[0].refresh=true
#spring.cloud.nacos.config.ext-config[1].data-id=log.properties
#spring.cloud.nacos.config.ext-config[1].group=DEFAULT_GROUP
#spring.cloud.nacos.config.ext-config[1].refresh=true
#2. C 分割符形式
#spring.cloud.nacos.config.shared-dataids=actuator.properties,log.properties
#spring.cloud.nacos.config.refreshable-dataids=actuator.properties,log.properties

#配置优先级: A > B > C

常用SDK/开源库

1. 后台
主要是在码云上找的,
官网:https://gitee.com/explore
几个分数很高的后台
https://www.oschina.net/p/guns  【参考】
https://gitee.com/shuzheng/zheng 【推荐】star个数最多
https://gitee.com/jfinal/jfinal  【了解】

2. 权限管理
https://www.oschina.net/p/iBase4J 权限管理

3. UI
有很多的网页端的开源框架,具体的可以咨询藤来
http://www.layui.com/admin/ 【推荐看】这个能直接看到案例,感觉直接套用就可以了
http://element-cn.eleme.io/

主要参考的资料:
2016 年度开源中国新增开源软件排行榜 TOP 100 
网址:https://www.oschina.net/news/80846/2016-osc-new-open-source-software-top-100
2017 年度开源中国新增开源软件排行榜 TOP 100
网址:https://www.jianshu.com/p/ea9f08267c83

文件存储服

  1. FastDFS 分布式文件系统 搭建比较麻烦,但是现在一些中型互联网公司还在用

  2. MinIO

    MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

常用SDK

腾云点播

一些新品重要的产品可以使用腾云点播
腾讯云点播
https://cloud.tencent.com/document/product/266
计费方式
https://cloud.tencent.com/document/product/266/14666

Tengine CSDN 正在使用

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。它的目的是打造一个高效、安全的Web平台。

学习资料

基础教程

前人总结

学习视频汇总

开源库汇总

博客资料

阿里云学习

  • 远程连接密码 934698
  • 实例密码:老爸168 (Lin)
  • 阿里云后台 47.107.130.109

容器镜像服务登录密码:
老爸168

  • 阿里云手机终端通过SSH连接后台
    # 网页端后台操作步骤
    # 1. 找到管理页面
    云服务器ECS-->网络和安全--> 秘钥对-> 秘钥对管理
    # 2. 新建绑定下载
    创建秘钥->绑定指定后台-> 重启服务器
    # Android SSH工具使用
    iP:47.107.130.109 
    登录名:root
    密钥: 选择上面下载xxx.pem
    密钥口令:不用填
    端口:22(和后台ssh相同)
    别名: 随意

通过ssh远程登录服务器

#获取root权限
shh -i 
#用IP或者域名登录,需要输入元服务器ECS登录密码 
ssh root@47.107.130.109 
ssh root@example.com

安全组配置

  • Redis 有专门的选择专门的Redis协议 6379 自定义TCP协议无效

常用配置界面

亚马逊云学习

Linux用r3.pem登录

/mnt/hgfs/ubuntu/workspace/tools/亚马逊服务器连接
chmod 400 aws亚马逊_服务秘钥r3.pem
ssh -i aws亚马逊_服务秘钥r3.pem ubuntu@ec2-18-191-169-66.us-east-2.compute.amazonaws.com

shadowsocket

总结命令

  • install

    # root
    sudo -s
    # install 
    apt-get update
    apt-get install python-pip
    pip install shadowsocks
    
  • setting vi /etc/shadowsocks.json

    • 单用户

      {
          "server":"0.0.0.0",
          "server_port":8989,
          "local_address":"127.0.0.1",
          "local_port":1080,
          "password":"yourpassword",
          "timeout":300,
          "method":"aes-256-cfb",
          "fast_open": false
      }
    • 多用户

      {
          "server":"0.0.0.0",
          "local_address":"127.0.0.1",
          "local_port":1080,
          "port_password":{
              "8989":"password0",
              "9001":"password1",
              "9002":"password2",
              "9003":"password3",
              "9004":"password4"
          },
          "timeout":300,
          "method":"aes-256-cfb",
          "fast_open": false
      }
  • 运行

    ssserver -c /etc/shadowsocks.json -d start

    出现如下打印成功启动

    INFO: loading config from /etc/shadowsocks.json
    2019-02-18 14:32:45 INFO     loading libcrypto from libcrypto.so.1.0.0
    started

    设置开机启动 vi /etc/rc.local

    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    # By default this script does nothing.
    
    #增加
    ssserver -c /etc/shadowsocks.json -d start
    exit 0
    

Node js

nodejs 在linux上后台运行

1.用forever  进行管理搜索
    npm install -g forever
    forever start index.js

域名配置

常用配置

Centos virtual-box 安装

  • Download VirtualBox for Linux Hosts
  • 配置版本仓库,在/etc/yum.repos.d/目录下新建virtualbox.repo并写入如下内容
    [virtualbox]
    name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
    baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc
  • 安装
    # 6.更新yum缓存
    yum clean all
    yum makecache
    # 7.安装virtualbox
    yum install VirtualBox-6.0

Mail

126邮箱设置

邮件服务器名称 服务器地址 端口号
POP3服务器 pop.126.com 110
SMTP服务器 smtp.126.com 25
IMAP服务器 imap.126.com 143

Navicat 自动发送短信设置

SMTP服务器: smtp.126.com:25
用户名: zhilinchn@126.com
密码(区分大小写): !!16...99qQ
安全连接: TLS

Maven 私服务搭建

Redis

Redis 外部访问设置

1>注释掉bind
#bind 127.0.0.1

3>禁用保护模式
protected-mode no

Jenkins

问题解决

SpringBoot

  • Tomcat 8080 端口配占用
    • Windows
      # 找到pid  代LISTENING的
      netstat -ano | findstr "8080"
      # 找到进程
      tasklist | findstr "pid"
      # 杀掉进程
      taskkill /f /t /im java.exe 

Docker

  • [Windows10下Docker出现net/http:TLS handshake timeout](https://blog.csdn.net/pop0fa/article/details/80029739)

    http://69292621.m.daocloud.io
    settings-> daemon-> registry mirrors: 
    add 
    http://69292621.m.daocloud.io
  • VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation。有关更多详细信息,请访问

    关闭Hyper-v

  • WARNING: The vboxdrv kernel module is not loaded. Either there is no module
             available for the current kernel (3.10.0-862.14.4.el7.x86_64) or it failed to
             load. Please recompile the kernel module and install it by
               sudo /sbin/vboxconfig
             You will not be able to start VMs until this problem is fixed.

    /sbin/vboxconfig

    vboxdrv.sh: Stopping VirtualBox services.
    vboxdrv.sh: Starting VirtualBox services.
    vboxdrv.sh: Building VirtualBox kernel modules.
    This system is currently not set up to build kernel modules.
    Please install the Linux kernel "header" files matching the current kernel
    for adding new hardware support to the system.
    The distribution packages containing the headers are probably:
        kernel-devel kernel-devel-3.10.0-862.14.4.el7.x86_64
    This system is currently not set up to build kernel modules.
    Please install the Linux kernel "header" files matching the current kernel
    for adding new hardware support to the system.
    The distribution packages containing the headers are probably:
        kernel-devel kernel-devel-3.10.0-862.14.4.el7.x86_64
    There were problems setting up VirtualBox.  To re-start the set-up process, run
      /sbin/vboxconfig
    as root.

七牛云测试域名过渡

  1. 操作界面: 域名管理-> 创建域名
    操作: 如域名为 linz.tech, 填写加速域名为 cdn.linz.tech 其他默认点击创建即可。
    说明:cdn是可以随意取名的二级域名
    操作结果: 域名管理 界面新增一个域名列表,点击配置 获取如: CNAME:cdn.linz.tech.qiniudns.com的域名映射;

  2. 配置CNAME:到域名解析管理里面增加二级域名
    操作步骤:

    1. 添加记录
    2. 记录类型,选择CNAME
    3. 主机记录: 填入cdn,上面自定义的二级域名
    4. 记录值把上一步操作的值(cdn.linz.tech.qiniudns.com)填入,其他默认,确定即可;
  3. 测试: 到内容管理界面随便复制一个文件测试访问,访问域名为http://cdn.linz.tech并访问成功,设置成功

    参考

附录

常用命令

状态监测

#查看端口号是否被占用
netstat -tunlp |grep 8000