Jenkins构建Host key verification failed. lost connection

📅 2023-12-06 14:34 👁️ 87 💬 0
使用jenkins发版,构建时使用了调用shell从jenkins服务器scp jar包到业务服务器。
由于新购买了服务器,并且要将jar包cp到新购买的服务器上,涉及到前任运维交接问题,这块一直没有了解。
 
在jenkins服务器
su jenkins切换到jenkins用户,找到/var/lib/jenkins/.ssh,在jenkins用户中ssh-copy-id拷贝公钥到新购服务器。
 
然后重构,发现已经可以直接拷贝jar包到新购服务器
 
 
 
 
阅读更多

spring boot 在Linux下服务启动报错Unable to find Java

📅 2023-09-18 19:16 👁️ 317 💬 0

前言:

  最近在开发项目的过程中遇到了一些坑(也可能不是坑,是自己没弄过导致折腾了很久),我们项目中遇到有用到一些第三方的库,有些第三方库可能不支持openjdk,只支出jdk,所以就要更换一下jdk,然后服务器又是之前的前同事配置的,这时候我把服务器的jdk版本从原来的openjdk1.7换成了官方的jdk1.8之后项目启不起来了,提示  “Unable to find Java” ,????,这个时候问了问chatGPT 它也没给合适的答案,就百度继续找看了一篇文章 说是跟软链接有关,然后一拍脑袋试了试,结果还真是没加软连接,加了之后重启一切正常。

 

正文:

  系统环境:

    Centos 7.5,Jdk1.8

 

  解决办法:

    将java 链接到/sbin 文件夹下

    

ln -s /usr/java/jdk/bin/java /sbin/java

 

然后再重启一切正常,问题解决。

阅读更多

Linux:部署第三方Jar包到Nexus私服

📅 2023-01-31 10:35 👁️ 141 💬 0

为了方便我们开发,经常会有需求就是将第三方的jar包发布到我们自己的nexus私服上;具体可有两种方式实现:1、通过命令进行上传;2、通过nexus管理端页面操作上传。本文就以这两种方式分别做介绍。

mvn install:install-file -DgroupId=com.xxx-DartifactId=xxx.pdf -Dversion=2.1.1 -Dpackaging=jar -Dfile=xxx-2.1.1.jar

mvn install:install-file "-DgroupId=com.xxx" "-DartifactId=xxx.pdf" "-Dversion=2.1.1" "-Dpackaging=jar" "-Dfile=xxx-2.1.1.jar"

mvn deploy:deploy-file "-DgroupId=com.xxx" "-DartifactId=xxx.pdf" "-Dversion=2.1.1" "-Dpackaging=jar" "-Dfile=xxx-2.1.1.jar" -Durl=http://10.188.0.26:8081/repository/maven-releases/ -DrepositoryId=maven-public

DgroupId、DartifactId、Dversion:构成了该jar包在pom.xml的坐标,自己起名字也是可以的.
Dpackaging:表示打包类型.
Dfile:表示需要上传的jar包的绝对路径.
Durl:私服上第三方仓库的地址,打开nexus——>repositories菜单,可以看到该路径。
DrepositoryId:服务器的表示id,就是我们在setting.xml文件中配置的serverId。

https://blog.csdn.net/weixin_37848710/article/details/125915741

 

阅读更多

Linux 简单的Java sh脚本启动jar包

📅 2022-10-08 16:36 👁️ 699 💬 0
 1  2  3 projectName="你的项目名"
 4 
 5 #提醒功能
 6 help() {
 7     echo "help: sh ${projectName}.sh [start|stop|restart]"
 8     exit 1
 9 }
10 
11 #判断项目是否运行,并且返回对应数字(0 为未启动 1为启动)
12 is_exist(){
13     #获取pid的方式,个人喜欢咋写就咋写
14     pid=`ps -ef|grep ${projectName}.jar|grep -v grep|awk '{print $2}'`
15     if [ -z "${pid}" ]
16     then
17         return 0
18     else
19         return 1
20     fi
21 }
22 
23 #开始运行项目
24 start(){
25     is_exist
26     #如果正在运行直接提示
27     if [ $? -eq 1 ]
28     then
29         echo "${projectName} is running"
30         exit 0;
31     else
32         #没有运行则运行项目
33         echo "start running ${projectName} ..."
34         currentPath=`pwd`
35         startPath=$(cd `dirname $0`;pwd)
36         #这里写的比较简单,实际生产环境,需要配置参数
37         cd ${startPath}
38         nohup java -jar -server ${projectName}.jar --spring.profiles.active=test > ${currentPath}/run.log 2>&1 &
39         cd ${currentPath}
40     fi
41 }
42 
43 #停止项目
44 stop(){
45     echo "stop $projectName ..."
46     is_exist
47     if [ $? -eq 1 ]
48     then
49         #通过pid关闭
50         kill -9 $pid
51         echo  "[ok]"
52     else
53         echo  "[ok]"
54     fi
55 }
56 
57 # 选择运行方式
58 case "$1" in
59 start)
60     start
61     ;;
62 stop)
63     stop
64     ;;
65 restart)
66     stop
67     start
68     ;;
69 *)
70     help
71     ;;
72 esac

 

阅读更多

ubuntu 安装最新版 mongodb

📅 2022-09-16 10:57 👁️ 343 💬 0

前言

由于之前ubuntu自动安装的mongodb版本太低,不支持外部查看。

所以需要装最新版

安装最新的官方地址:https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/#uninstall-mongodb-community-edition

 

sudo systemctl restart mongod
sudo systemctl status mongod
cat /var/log/mongodb/mongod.log

 

mkdir -p /data/db#新增数据库
sudo chmod a+w /data/db#给数据库权限

配置文件地址:/etc/mongod.conf

日志文件地址:/var/log/mongodb/mongod.log(可以去配置文件去修改,看看启动日志什么的~~·)

 

如果启动有下面的报错信息:Cannot start server with an unknown storage engine


如果以前装过删除db下所有的文件即可,因为老版本的存储引擎和新版本的存储引擎不一样

----------------------------------------------------------------------------------------------------------------------------------------

2022.10.12更新

数据库被黑客工具了,大无语,要提高安全性

All your data is a backed up. You must pay 0.05 BTC to 12KDdVSHvaB46gGTS7pDiBACyWtx5pv5Hs 48 hours for recover it. After 48 hours expiration we will leaked and exposed all your data. In case of refusal to pay, we will contact the General Data Protection Regulation, GDPR and notify them that you store user data in an open form and is not safe. Under the rules of the law, you face a heavy fine or arrest and your base dump will be dropped from our server! You can buy bitcoin here, does not take much time to buy https://localbitcoins.com or https://buy.moonpay.io/ After paying write to me in the mail with your DB IP: rambler+1jn5p@onionmail.org and/or mariadb@mailnesia.com and you will receive a link to download your database dump.

腾讯云给出的建议:

1)为MongoDB添加认证:MongoDB 启动时添加–auth参数、为MongoDB添加用户认证;

2)MongoDB 自身带有一个HTTP服务和并支持REST接口,在2.6以后这些接口默认是关闭的。MongoDB默认会使用默认端口监听web服务,一般不需要通过web方式进行远程管理,建议禁用。可以修改配置文件设置 nohttpinterface=false

或在启动的时候选择参数 --nohttpinterface。

3)使用云控制台安全组防火墙或本地系统防火墙对访问源IP进行控制,如果仅对内网服务器提供服务,建议勿将 MongoDB服务发布到互联网上。

4)启动时加入参数 --bind_ip 127.0.0.1 或在 /etc/mongodb.conf 文件中添加以下内容:bind_ip = 127.0.0.1,只允许本地访问。

 

 

阅读更多

linux ubuntu PHP之Nginx 配置

📅 2022-08-15 10:12 👁️ 134 💬 0

upstream www.xxxxxx.com {
  server localhost:9041;
}

 

#配置80端口重定向443端口

server {
  listen 80;
  server_name www.xxxxxx.com;#域名
  return 301 https://$server_name$request_uri;
}


server {
  listen 443 ssl;
  server_name www.xxxxxx.com;

  ssl on; #如果强制HTTPs访问,这行要打开
  ssl_certificate /ssl/1_www.xxxxxx.com_bundle.crt;
  ssl_certificate_key /ssl/2_www.xxxxxx.com.key;

  ssl_session_cache shared:SSL:1m;
  ssl_session_timeout 5m;

  # 指定密码为openssl支持的格式
  ssl_protocols SSLv2 SSLv3 TLSv1.2;

  ssl_ciphers HIGH:!aNULL:!MD5; # 密码加密方式
  ssl_prefer_server_ciphers on; # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码

  root /home/web/website/web;

  #关键代码

  location ~ .php$ {
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass unix:/run/php/php5.6-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
  }

  location / {
    index index.php index.html;
  }

  location ^~ /api/ {
    proxy_pass http://www.xxxxxx.com;
    client_max_body_size 1024m; #允许客户端请求的最大单文件字节数,人话:能上传多大文件
    client_body_buffer_size 6m; #缓冲区代理缓冲用户端请求的最大字节数,人话:一次能接受多
    proxy_connect_timeout 600; #nginx跟后端服务器连接超时时间(代理连接超时),这个看需求
    proxy_read_timeout 600; #连接成功后,后端服务器响应时间(代理接收超时),这个 同上
    rewrite "^/api/(.*)$" /$1 break;
  }

}

关键词:nginx,php,ubuntu,linux

 

阅读更多

linux nbuntu下安装 php

📅 2022-08-15 09:18 👁️ 33 💬 0

1、下载

1
2
wget http://cn2.php.net/distributions/php-7.0.30.tar.gz
解压 tar -zxvf php-7.0.30.tar.gz

  

2、下载安装依赖

1
yum -y install gcc openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel pcre pcre-devel libxslt libxslt-devel bzip2 bzip2-devel

  

3、编译安装php

1
2
3
4
5
6
7
8
9
10
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-pdo-mysql --with-mysqli --with-gd --with-zlib --with-mcrypt --enable-fpm
 
make && make install
安装完成后,别忘记 make test
 
有如下报错 configure: error: mcrypt.h not found. Please reinstall libmcrypt. 
解决
yum install -y epel-release
yum install -y libmcrypt-devel
重新编译

  

4、配置PHP相关文件

1
2
3
4
5
6
7
8
1)配置php.ini,这是php的配置文件:
    cp /etc/we/php-7.1.11/php.ini-development /usr/local/php/lib/php.ini
2)配置php-fpm.conf,这是php-fpm配置文件:
     cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
3)配置www.conf,配置用户的文件:
    cp etc/php-fpm.d/www.conf.default  etc/php-fpm.d/www.conf
4)将php-fpm启动文件复制到init.d文件夹中一份方便启动php:
     cp /usr/local/php/sbin/php-fpm /etc/init.d/php-fpm

  

5、启动php,确定是否安装成功

执行命令/etc/init.d/php-fpm即可
查看是否启动:ps -ef |grep php

 

关键词:php,linux

 

阅读更多

nginx 配置 http重定向到https

📅 2022-08-12 15:17 👁️ 1116 💬 0

话不多说直接代码

server {
    listen 80;
    server_name www.xxxxx.com;
    return 301 https://$server_name$request_uri;
}


server {
    listen 443 ssl;
    server_name www.xxxxx.com;

    ......

}

 

就这样配置就可以

详解一下

listen 80; - 使用端口80,服务器将侦听指定域名的所有传入连接。

server_name www.xxxxx.com - 它指定域名。因此,将其替换为您要重定向的网站域名。

return 301 https://$server_name$request_uri; - 将流量移至该站点的HTTPS版本。$request_uri变量用于完整的原始请求URI,其中也包含参数。

 

其他的已经不需要解释了吧,443代表监听https 请求。

 

阅读更多

ubuntu20.0 安装 nacos

📅 2022-06-29 15:32 👁️ 438 💬 0

 

下载地址:https://github.com/alibaba/nacos/releases

#解压
tar -txvf nacos-server-2.0.2.tar.gz

 

配置conf 文件夹下 application.properties

spring.datasource.platform=mysql

db.num=1

db.url.0=jdbc:mysql://xxx.xxx.xxx.xx:3306/nacos_config?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&serverTimezone=UTC
db.user=root
db.password=xxxxxx

 

单机启动

bash -f ./startup.sh -m standalone

 

查看启动日志

cat /你的目录/nacos/logs/start.out

 

ps:如果报:No DataSource set,就检查数据库连接是否正常,还有导入配置文件里面的数据库文件。

 

-----------------------------------------------------------------------------END----------------------------------------------------------------------------------

我们都是搬运工,CV工程师.

 

阅读更多

ubuntu 20.0 安装 mongodb

📅 2022-06-29 10:24 👁️ 598 💬 0

这里踩了一些坑,如果用系统自带的源去安装mongodb,安装出来的是2.4版本左右的,外部连接工具已经不支持3.0版本已下的连接了,所以就需要找高版本的去安装。

首先先来个什么事MangoDB的简单定义:

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

请注意,似乎MongoDB不太怎么有32bit的版本,所以请优先选择64bit的版本吧

首先到MongoDB的官网,寻找自己想要版本的MangoDB链接,替换一下如下的指令,直接在终端中执行就好了。

#创建一个目录放下载的mongodb文件
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz

#解压
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

#将解压包拷贝到指定目录进行安装
sudo mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb

 

然后将MongoDB的安装目录添加到Path当中

#编辑
vi /etc/profile

#最后一行增加环境变量
export PATH=/usr/local/mongodb/bin:$PATH

#刷新配置
source /etc/progile

启动数据库,首先我使用的不是他的默认地址,所以需要手工创建一个目录并且指定位置,如果下面语句执行没问题,就证明已经服务ok了

根据自己使用的角色来创建数据文件,我用的root用户,然后是在/root/data/db

#启动
mongod --dbpath ~/data/db&
隔天补充:
上面这个启动会有点问题,隔天服务就自动关了
然后又网上找了些解决办法
mongod --dbpath ~/data/db --logpath=/usr/local/mongodb/run.log --fork

启动完成看到:waiting for connections on port 27017,基本就可以确定是成功了!

#连接mongo,进去玩一玩
mongo

 

这个时候如果你服务器安全组已经把27017端口打开,那么你就可以用远程连接工具去连接你这个数据库了。

连接成功后,就可以自己在工具里面创建角色和数据库等等操作。。

---------------------------------------------------------------------------------------END---------------------------------------------------------------------------------------------

我们都是搬运工,CV工程师。

 

阅读更多

腾讯云服务器如何使用root账号登录,不能使用root登录怎么办

📅 2022-06-28 18:11 👁️ 887 💬 0

解决方法:

1、先用ubuntu账号登录,执行sudo passwd root

2、设置新密码,输入密码,请牢记。

3、执行sudo vi /etc/ssh/sshd_config

4、找到PermitRootLogin without-password这一行,把后面的without-password改为yes,取消注释,保存文件。

5、执行sudo service ssh restart

 

现在就可以用root账号登录了。

----------结束----------

我们都是搬砖工,CV工程师!

 

阅读更多

ubuntu 安装 mongodb

📅 2022-06-27 18:12 👁️ 1144 💬 0

1. 在Ubuntu下最傻瓜的步骤(以下都在root用户下进行操作):

MongoDB安装很简单,无需下载源文件,可以直接用apt-get命令进行安装。 

打开终端,输入以下命令:

sudo apt-get install mongodb

2.这时装好以后应该会自动运行mongod程序,通过"pgrep mongo -l "查看进程是否已经启动

 

 

3.在终端输入"mongo",然后回车进入数据库

 

 

4、创建一个超级管理员root:db.createUser({user: "root",pwd: "root123", roles: [ { role: "root", db: "admin" } ]})

老版本:root:db.addUser({user: "root",pwd: "root123!", roles: [ { role: "root", db: "admin" } ]})

角色:root。root角色用于关闭数据库

 

 

5、验证用户是否添加成功

db.auth("root", "root123") #如果返回1,则表示成功。

 

 

6、修改默认端口和希望外网访问 

vim /etc/mongod.conf

或者

vim /etc/mongodb.conf

修改配置文件

 

 

vim下按字母 i 输入进行文件修改。

修改端口:修改port:27017如修改成port: 28017

外网访问:

①直接注释掉bindIp:127.0.0.1,例:#bindIp:127.0.0.1

②有的版本注释不起作用,可以修改为bindIp:0.0.0.0

修改完成按esc,再按Shift+:,然后输入“wq”,保存文件并退出,然后重启服务

开启服务

sudo service mongodb start

停止服务

sudo service mongodb stop

重启服务

sudo service mongodb restart

使用“mongo --port 28017”进入mongo shell

 

----------结束----------

我们都是搬砖工,CV工程师!

 

阅读更多

Ubuntu 安装 nginx

📅 2022-03-15 12:36 👁️ 1061 💬 0

ubuntu安装nginx

目前支持两种安装方式,一种是apt-get的方式,另一种是根据包安装的方式
为方便我统一使用root用户

一、apt-get安装nginx

# 切换至root用户
sudo su root
apt-get install nginx

查看nginx是否安装成功

nginx -v

在这里插入图片描述

启动nginx

service nginx start

nginx文件安装完成之后的文件位置:

  • /usr/sbin/nginx:主程序
  • /etc/nginx:存放配置文件
  • /usr/share/nginx:存放静态文件
  • /var/log/nginx:存放日志

卸载apt-get安装的nginx

# 彻底卸载nginx
apt-get --purge autoremove nginx
#查看nginx的版本号
nginx -v

在这里插入图片描述

 
阅读更多

ubuntu 安装redis

📅 2022-03-15 12:31 👁️ 712 💬 0

一、前提条件

需要连接互联网,然后执行sudo apt-get update更新软件包

二、执行安装命令

sudo  apt-get install redis-server 执行后如下图所示,我们输入y 确认安装并使用空间

接下来会执行完成,我们可以看到包括redis的版本信息等,执行service  redis status 可以查看redis服务的状态为running,说明安装完成系统自动启动了服务

三、配置redis服务

3.1:开启远程连接

找到/et/redis/redis.conf文件修改如下   ,注释掉  127.0.0.1   #bind 127.0.0.1,如果不需要远程连接redis则不需要这个操作

3.2:设置密码

找到/et/redis/redis.conf文件修改如下   ,添加  requirepass kingredis(密码设置为kingredis)

四、测试redis服务

步骤三的操作完成后,重启redis服务需要,接下来我们来测试

   启动:   sudo service redis start

   停止:      sudo service redis stop

   重启:      sudo service redis restart

 

4.1:测试密码设置成功

执行redis-cli命令打开redis客户端  set操作的时候要求我输入密码,说明密码设置成功,执行auth 密码验证密码后,可以执行set操作

4.2:测试远程登录

在本地window打开一个客户端 ,cd到redis安装的目录,主要是要有redis-cli.exe的目录输入 redis-cli -h redis服务器IP -p redis服务端口号(默认6379)

如上图所示,访问远程redis服务成功,操作redis成功,说明我们远程的redis安装切配置安全密码成功了

 

参考:https://www.cnblogs.com/wxjnew/p/9189191.html

阅读更多

ubuntu 安装mysql并设置密码

📅 2022-03-15 12:13 👁️ 1085 💬 0

这里是Ubuntu 18.04的mysql安装教程,ubuntu低版本或其他非Debian的Linux发行版可能不适用。

安装mysql

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

这里我安装完了没有提示设置密码或其他配置项的步骤,所以有需要的话可以看下一步更改默认密码。

更改默认密码

  1. 查看默认配置文件
sudo cat /etc/mysql/debian.cnf

结果如下:

 

 

 

 

图有‘user=debian-sys-maint’,即为自动配置的默认用户;‘password=ol9uVJAxu9L1AzOa’,即为自动配置的密码。

  1. 以默认配置登陆mysql
mysql -u debian-sys-maint -p        // 用户名以自己的配置文件为准

提示输入密码,这里要输入的就是上一步的‘password=ol9uVJAxu9L1AzOa’(密码以自己的配置文件为准)。

  1. 更改密码
use mysql;
update user set password=password("test") where user='root'; 
flush privileges;
quit;
  1. 重启mysql
sudo service mysql restart
mysql -u root -p

输入新密码:yourpassword

  1. OK

如果需要外网可以连,就需要改一下连接地址,不然会报10061错误!

mysql 10061错误为配置原因

第一步:

先查看mysql运行状态
netstat -ntlp | grep -v tcp6;  //查看端口状态
mysql -V;           //查看mysql版本号
find / -name mysqld.cnf;     // 查找mysqld.cnf 的位置

如果端口为127.0.0.1:3306,解决办法
mysql5.7 版本:
vi /etc/mysql/mysql.conf.d/mysqld.cnf;  //将bind-address = 127.0.0.1 修改成 bind-address = 0.0.0.0

mysql5.7以前的版本:
vi /etc/mysql/my.cnf;  //将bind-address = 127.0.0.1 修改成 bind-address = 0.0.0.0 ,或注释掉即可

service mysql restart;    //重启mysql
netstat -ntlp | grep -v tcp6;   //查看端口状态为0.0.0.0:3306即可

 



阅读更多

谁再说不熟悉 Linux 命令,就把这个给他扔过去!

📅 2022-02-23 10:51 👁️ 43 💬 0

作者:Panda

链接:http://siye1982.github.io/2016/02/25/linux-list/

虽然平时大部分工作都是和Java相关的开发, 但是每天都会接触Linux系统, 尤其是使用了Mac之后, 每天都是工作在黑色背景的命令行环境中. 自己记忆力不好, 很多有用的Linux命令不能很好的记忆, 现在逐渐总结一下, 以便后续查看。

基本操作

Linux 关机,重启
# 关机
shutdown -h now

# 重启
shutdown -r now
查看系统,CPU信息
# 查看系统内核信息
uname -a

# 查看系统内核版本
cat /proc/version

# 查看当前用户环境变量
env

cat /proc/cpuinfo

# 查看有几个逻辑cpu, 包括cpu型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

# 查看有几颗cpu,每颗分别是几核
cat /proc/cpuinfo | grep physical | uniq -c

# 查看当前CPU运行在32bit还是64bit模式下, 如果是运行在32bit下也不代表CPU不支持64bit
getconf LONG_BIT

# 结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
建立软连接
ln -s /usr/local/jdk1.8/ jdk
rpm相关
# 查看是否通过rpm安装了该软件
rpm -qa | grep 软件名
sshkey
# 创建sshkey
ssh-keygen -t rsa -C your_email@example.com

#id_rsa.pub 的内容拷贝到要控制的服务器的 home/username/.ssh/authorized_keys 中,如果没有则新建(.ssh权限为700, authorized_keys权限为600)
命令重命名
# 在各个用户的.bash_profile中添加重命名配置
alias ll='ls -alF'
同步服务器时间
sudo ntpdate -u ntp.api.bz
后台运行命令
# 后台运行,并且有nohup.out输出
nohup xxx &

# 后台运行, 不输出任何日志
nohup xxx > /dev/null &

# 后台运行, 并将错误信息做标准输出到日志中 
nohup xxx >out.log 2>&1 &
强制活动用户退出
# 命令来完成强制活动用户退出.其中TTY表示终端名称
pkill -kill -t [TTY]
查看命令路径
which <命令>
查看进程所有打开最大fd数
ulimit -n
配置dns
vim /etc/resolv.conf
nslookup,查看域名路由表
nslookup google.com
last, 最近登录信息列表
# 最近登录的5个账号
last -n 5
设置固定ip
ifconfig em1  192.168.5.177 netmask 255.255.255.0
查看进程内加载的环境变量
# 也可以去 cd /proc 目录下, 查看进程内存中加载的东西
ps eww -p  XXXXX(进程号)
查看进程树找到服务器进程
ps auwxf
查看进程启动路径
cd /proc/xxx(进程号)
ls -all
# cwd对应的是启动路径
添加用户, 配置sudo权限
# 新增用户
useradd 用户名
passwd 用户名

#增加sudo权限
vim /etc/sudoers
# 修改文件里面的
# root    ALL=(ALL)       ALL
# 用户名 ALL=(ALL)       ALL
强制关闭进程名包含xxx的所有进程
ps aux|grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9

磁盘,文件,目录相关操作

vim操作
#normal模式下 g表示全局, x表示查找的内容, y表示替换后的内容
:%s/x/y/g

#normal模式下
0  # 光标移到行首(数字0)
$  # 光标移至行尾
shift + g # 跳到文件最后
gg # 跳到文件头

# 显示行号
:set nu

# 去除行号
:set nonu

# 检索
/xxx(检索内容)  # 从头检索, 按n查找下一个
?xxx(检索内容)  # 从尾部检索
打开只读文件,修改后需要保存时(不用切换用户即可保存的方式)
# 在normal模式下
:w !sudo tee %
查看磁盘, 文件目录基本信息
# 查看磁盘挂载情况
mount

# 查看磁盘分区信息
df

# 查看目录及子目录大小
du -H -h

# 查看当前目录下各个文件, 文件夹占了多少空间, 不会递归
du -sh *
wc命令
# 查看文件里有多少行
wc -l filename

# 看文件里有多少个word
wc -w filename

# 文件里最长的那一行是多少个字
wc -L filename

# 统计字节数
wc -c

常用压缩, 解压缩命令

压缩命令
tar czvf xxx.tar 压缩目录

zip -r xxx.zip 压缩目录
解压缩命令
tar zxvf xxx.tar

# 解压到指定文件夹
tar zxvf xxx.tar -C /xxx/yyy/

unzip xxx.zip

变更文件所属用户, 用户组

chown eagleye.eagleye xxx.log

cp, scp, mkdir

#复制
cp xxx.log

# 复制并强制覆盖同名文件
cp -f xxx.log

# 复制文件夹
cp -r xxx(源文件夹) yyy(目标文件夹)

# 远程复制
scp -P ssh端口 username@10.10.10.101:/home/username/xxx /home/xxx

# 级联创建目录
mkdir -p /xxx/yyy/zzz

# 批量创建文件夹, 会在test,main下都创建java, resources文件夹
mkdir -p src/{test,main}/{java,resources}
比较两个文件
diff -u 1.txt 2.txt
日志输出的字节数,可以用作性能测试
# 如果做性能测试, 可以每执行一次, 往日志里面输出 “.” , 这样日志中的字节数就是实际的性能测试运行的次数, 还可以看见实时速率.
tail -f xxx.log | pv -bt
查看, 去除特殊字符
# 查看特殊字符
cat -v xxx.sh

# 去除特殊字符
sed -i 's/^M//g’ env.sh  去除文件的特殊字符, 比如^M:  需要这样输入: ctrl+v+enter
处理因系统原因引起的文件中特殊字符的问题
# 可以转换为该系统下的文件格式
cat file.sh > file.sh_bak

# 先将file.sh中文件内容复制下来然后运行, 然后粘贴内容, 最后ctrl + d 保存退出
cat > file1.sh

# 在vim中通过如下设置文件编码和文件格式
:set fileencodings=utf-8 ,然后 w (存盘)一下即可转化为 utf8 格式,
:set fileformat=unix

# 在mac下使用dos2unix进行文件格式化
find . -name "*.sh" | xargs dos2unix
tee, 重定向的同时输出到屏幕
awk ‘{print $0}’ xxx.log | tee test.log

检索相关

grep(每天学一个 Linux 命令(5):grep)
# 反向匹配, 查找不包含xxx的内容
grep -v xxx

# 排除所有空行
grep -v '^/pre>

# 返回结果 2,则说明第二行是空行
grep -n “^$” 111.txt    

# 查询以abc开头的行
grep -n “^abc” 111.txt 

# 同时列出该词语出现在文章的第几行
grep 'xxx' -n xxx.log

# 计算一下该字串出现的次数
grep 'xxx' -c xxx.log

# 比对的时候,不计较大小写的不同
grep 'xxx' -i xxx.log
awk(每天一个 Linux 命令(4):awk)
# 以':' 为分隔符,如果第五域有user则输出该行
awk -F ':' '{if ($5 ~ /user/) print $0}' /etc/passwd 

# 统计单个文件中某个字符(串)(中文无效)出现的次数
awk -v RS='character' 'END {print --NR}' xxx.txt
find检索命令(每天学一个 Linux 命令(20):find)
# 在目录下找后缀是.mysql的文件
find /home/eagleye -name '*.mysql' -print

# 会从 /usr 目录开始往下找,找最近3天之内存取过的文件。
find /usr -atime 3 –print

# 会从 /usr 目录开始往下找,找最近5天之内修改过的文件。
find /usr -ctime 5 –print

# 会从 /doc 目录开始往下找,找jacky 的、文件名开头是 j的文件。  
find /doc -user jacky -name 'j*' –print

# 会从 /doc 目录开始往下找,找寻文件名是 ja 开头或者 ma开头的文件。
find /doc \( -name 'ja*' -o- -name 'ma*' \) –print

#  会从 /doc 目录开始往下找,找到凡是文件名结尾为 bak的文件,把它删除掉。-exec 选项是执行的意思,rm 是删除命令,{ } 表示文件名,“\;”是规定的命令结尾。 
find /doc -name '*bak' -exec rm {} \;

网络相关

查看什么进程使用了该端口
lsof -i:por
获取本机ip地址
/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
iptables
# 查看iptables状态
service iptables status

# 要封停一个ip
iptables -I INPUT -s ***.***.***.*** -j DROP

# 要解封一个IP,使用下面这条命令:
iptables -D INPUT -s ***.***.***.*** -j DROP

备注: 参数-I是表示Insert(添加),-D表示Delete(删除)。后面跟的是规则,INPUT表示入站,***.***.***.***表示要封停的IP,DROP表示放弃连接。

#开启9090端口的访问
/sbin/iptables -I INPUT -p tcp --dport 9090 -j ACCEPT 

# 防火墙开启、关闭、重启
/etc/init.d/iptables status
/etc/init.d/iptables start
/etc/init.d/iptables stop
/etc/init.d/iptables restart
nc命令, tcp调试利器
#给某一个endpoint发送TCP请求,就将data的内容发送到对端
nc 192.168.0.11 8000 < data.txt

#nc可以当做服务器,监听某个端口号,把某一次请求的内容存储到received_data里
nc -l 8000 > received_data

#上边只监听一次,如果多次可以加上-k参数
nc -lk 8000
tcpdump(每天学一个 Linux 命令(72):tcpdump)
# dump出本机12301端口的tcp包
tcpdump -i em1 tcp port 12301 -s 1500 -w abc.pcap
跟踪网络路由路径
# traceroute默认使用udp方式, 如果是-I则改成icmp方式
traceroute -I www.163.com

# 从ttl第3跳跟踪
traceroute -M 3 www.163.com  

# 加上端口跟踪
traceroute -p 8080 192.168.10.11
ss
# 显示本地打开的所有端口
ss -l 

# 显示每个进程具体打开的socket
ss -pl 

# 显示所有tcp socket
ss -t -a 

# 显示所有的UDP Socekt
ss -u -a 

# 显示所有已建立的SMTP连接
ss -o state established '( dport = :smtp or sport = :smtp )'  

# 显示所有已建立的HTTP连接 
ss -o state established '( dport = :http or sport = :http )'  

#找出所有连接X服务器的进程
ss -x src /tmp/.X11-unix/*  

#列出当前socket统计信息
ss -s 

解释:netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多
netstat
# 输出每个ip的连接数,以及总的各个状态的连接数
netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'

# 统计所有连接状态, 
# CLOSED:无连接是活动的或正在进行
# LISTEN:服务器在等待进入呼叫
# SYN_RECV:一个连接请求已经到达,等待确认
# SYN_SENT:应用已经开始,打开一个连接
# ESTABLISHED:正常数据传输状态
# FIN_WAIT1:应用说它已经完成
# FIN_WAIT2:另一边已同意释放
# ITMED_WAIT:等待所有分组死掉
# CLOSING:两边同时尝试关闭
# TIME_WAIT:主动关闭连接一端还没有等到另一端反馈期间的状态
# LAST_ACK:等待所有分组死掉
netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'

# 查找较多time_wait连接
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

监控linux性能命令

top

按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序, 然后回车。而大写的 R 键可以将当前的排序倒转。每天学一个 Linux 命令(48):top

PID 进程id
PPID 父进程id
RUSER Real user name
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
P 最后使用的CPU,仅在多CPU环境下有意义
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。
S 进程状态。D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程
COMMAND 命令名/命令行
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
Flags 任务标志,参考 sched.h
dmesg,查看系统日志
dmesg
iostat,磁盘IO情况监控
iostat -xz 1

# r/s, w/s, rkB/s, wkB/s:分别表示每秒读写次数和每秒读写数据量(千字节)。读写量过大,可能会引起性能问题。
# await:IO操作的平均等待时间,单位是毫秒。这是应用程序在和磁盘交互时,需要消耗的时间,包括IO等待和实际操作的耗时。如果这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障。
# avgqu-sz:向设备发出的请求平均数量。如果这个数值大于1,可能是硬件设备已经饱和(部分前端硬件设备支持并行写入)。
# %util:设备利用率。这个数值表示设备的繁忙程度,经验值是如果超过60,可能会影响IO性能(可以参照IO操作平均等待时间)。如果到达100%,说明硬件设备已经饱和。
# 如果显示的是逻辑设备的数据,那么设备利用率不代表后端实际的硬件设备已经饱和。值得注意的是,即使IO性能不理想,也不一定意味这应用程序性能会不好,可以利用诸如预读取、写缓存等策略提升应用性能。

free,内存使用情况

free -m

eg:

     total       used       free     shared    buffers     cached
Mem:          1002        769        232          0         62        421
-/+ buffers/cache:          286        715
Swap:          1153          0       1153

第一部分Mem行:

total 内存总数: 1002M
used 已经使用的内存数: 769M
free 空闲的内存数: 232M
shared 当前已经废弃不用,总是0
buffers Buffer 缓存内存数: 62M
cached Page 缓存内存数:421M

关系:total(1002M) = used(769M) + free(232M)

第二部分(-/+ buffers/cache):

(-buffers/cache) used内存数:286M (指的第一部分Mem行中的used – buffers – cached)
(+buffers/cache) free内存数: 715M (指的第一部分Mem行中的free + buffers + cached)

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数.

第三部分是指交换分区

sar,查看网络吞吐状态
# sar命令在这里可以查看网络设备的吞吐率。在排查性能问题时,可以通过网络设备的吞吐量,判断网络设备是否已经饱和。

sar -n DEV 1

#
# sar命令在这里用于查看TCP连接状态,其中包括:
# active/s:每秒本地发起的TCP连接数,既通过connect调用创建的TCP连接;
# passive/s:每秒远程发起的TCP连接数,即通过accept调用创建的TCP连接;
# retrans/s:每秒TCP重传数量;
# TCP连接数可以用来判断性能问题是否由于建立了过多的连接,进一步可以判断是主动发起的连接,还是被动接受的连接。TCP重传可能是因为网络环境恶劣,或者服务器压力过大导致丢包
sar -n TCP,ETCP 1
vmstat, 给定时间监控CPU使用率, 内存使用, 虚拟内存交互, IO读写
# 2表示每2秒采集一次状态信息, 1表示只采集一次(忽略既是一直采集)

vmstat 2 1

eg:
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 3499840 315836 3819660 0 0 0 1 2 0 0 0 100 0
0 0 0 3499584 315836 3819660 0 0 0 0 88 158 0 0 100 0
0 0 0 3499708 315836 3819660 0 0 0 2 86 162 0 0 100 0
0 0 0 3499708 315836 3819660 0 0 0 10 81 151 0 0 100 0
1 0 0 3499732 315836 3819660 0 0 0 2 83 154 0 0 100 0
  • r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
  • b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。
  • swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
  • free 空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。
  • buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M
  • cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)
  • si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。
  • so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
  • bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒
  • bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
  • in 每秒CPU的中断次数,包括时间中断
  • cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
  • us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。
  • sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
  • id 空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
  • wt 等待IO CPU时间。


--- EOF ---

阅读更多

docker安装nginx并配置通过https访问

📅 2021-11-27 18:19 👁️ 1869 💬 0

关键词:nginx,docker,cannot load certificate,ssl

1. 下载最新的nginx的docker image

$ docker pull nginx:latest

2. 启动nginx容器

运行如下命令来启动nginx container

docker run --detach \
        --name wx-nginx \
        -p 443:443\
        -p 80:80 \
        -v /home/nginx/data:/usr/share/nginx/html:rw\
        -v /home/nginx/config/nginx.conf:/etc/nginx/nginx.conf/:rw\
        -v /home/nginx/config/conf.d/default.conf:/etc/nginx/conf.d/default.conf:rw\
        -v /home/nginx/logs:/var/log/nginx/:rw\
        -v /home/nginx/ssl:/ssl/:rw\
        -d nginx
  • 映射端口443,用于https请求
  • 映射端口80,用于http请求;
  • nginx的默认首页html的存放目录映射到host盘的目录, /home/evan/workspace/wxserver/nginx/data
  • nginx的配置文件映射到host盘的文件,/home/evan/workspace/wxserver/nginx/config/nginx.conf

这里需要准备如下几个文件,

  1. nginx的配置文件
    首先是nginx.conf文件,默认的配置文件如下
#运行nginx的用户
user  nginx;
#启动进程设置成和CPU数量相等
worker_processes  1;

#全局错误日志及PID文件的位置
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

#工作模式及连接数上限
events {
        #单个后台work进程最大并发数设置为1024
    worker_connections  1024;
}


http {
        #设定mime类型
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

        #设定日志格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

        #设置连接超时的事件
    keepalive_timeout  65;

        #开启GZIP压缩
    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

可以看到最后一行还要包含另一个配置文件conf.d/default.conf,用来配置server字段

server {
    listen    80;       #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
    server_name  www.buagengen.com;             #域名

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

        # 定义首页索引目录和名称
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #定义错误提示页面
    #error_page  404              /404.html;

    #重定向错误页面到 /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
  1. nginx的默认首页的html文件
    这个html可以自己定义一个,任意的都可以。

这个时候直接通过IP地址就可以访问nginx定义的这个html文件了。但是这个时候的访问只是http的,https的访问还是不行的,需要添加证书到nginx服务器。

3. 通过openssl生成证书

  • 设置server.key,这里需要设置两遍密码:
openssl genrsa -des3 -out server.key 1024 
  • 参数设置,首先这里需要输入之前设置的密码:   
openssl req -new -key server.key -out server.csr

然后需要输入如下的信息,大概填一下就可以了,反正是测试用的

Country Name (2 letter code) [AU]: 国家名称
State or Province Name (full name) [Some-State]: 省
Locality Name (eg, city) []: 城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 公司名
Organizational Unit Name (eg, section) []: 
Common Name (e.g. server FQDN or YOUR name) []: 网站域名
Email Address []: 邮箱

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 这里要求输入密码
An optional company name []:
  • 写RSA秘钥(这里也要求输入之前设置的密码):
openssl rsa -in server.key -out server_nopwd.key
  • 获取私钥:
openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt

完成这一步之后就得到了我们需要的证书文件和私钥了

  • server.crt
  • server.key

4. 配置nginx服务器,支持https访问

把前面一步生成的文件拷贝到host上的ssl目录,/home/evan/workspace/wxserver/nginx/ssl。
然后修改配置文件default.conf,添加ssl支持

server {
    listen    80;       #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
    listen    443 ssl;
    server_name  www.buagengen.com;             #域名

    # 增加ssl
    #ssl on;        #如果强制HTTPs访问,这行要打开
    ssl_certificate /ssl/server.crt;
    ssl_certificate_key /ssl/server.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

     # 指定密码为openssl支持的格式
     ssl_protocols  SSLv2 SSLv3 TLSv1.2;

     ssl_ciphers  HIGH:!aNULL:!MD5;  # 密码加密方式
     ssl_prefer_server_ciphers  on;   # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码

     # 定义首页索引目录和名称
     location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
     }

    #重定向错误页面到 /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

重启nginx容器,现在就可以通过https来访问nginx的服务器了。

这里有个重点,证书的目录必须在 /ssl 下面,其他目录启动可能会报找不到在证书的错误!

 

[emerg] 1#1: cannot load certificate "/home/nginx/ssl/1_hxt.yszku.com_bundle.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/home/nginx/ssl/1_hxt.yszku.com_bundle.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

 

报上面这个错误 “cannot load certificate”,就把证书移到/ssl目录即可,无论是自己生成的证书,还是阿里云/腾讯云生成的证书.

 

 

阅读更多

docker 安装nacos

📅 2021-11-13 14:54 👁️ 2986 💬 0

 

1、拉取镜像

docker pull nacos/nacos-server

2、挂载目录

mkdir -p /mydata/nacos/logs/                      #新建logs目录
mkdir -p /mydata/nacos/init.d/          
vim /mydata/nacos/init.d/custom.properties        #修改配置文件

3、mysql新建nacos的数据库,并执行脚本

下载地址

https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql

4、修改配置文件custom.properties

server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=user
db.password=pass

nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true

5、启动容器

docker  run \
--name nacos -d \
-p 8848:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
nacos/nacos-server

6、浏览器输入服务器地址:http://xxx.xxx.xx.xx:8848/nacos/index.html,账号nacos 密码nacos,登陆成功!

 

阅读更多

docker 安装 redis

📅 2021-11-12 17:09 👁️ 281 💬 0

我们可以用 下面命令来查看可用版本:

docker search redis 
$ docker search  redis
NAME                      DESCRIPTION                   STARS  OFFICIAL  AUTOMATED
redis                     Redis is an open source ...   2321   [OK]       
sameersbn/redis                                         32                   [OK]
torusware/speedus-redis   Always updated official ...   29             [OK]
bitnami/redis             Bitnami Redis Docker Image    22                   [OK]
anapsix/redis             11MB Redis server image ...   6                    [OK]
webhippie/redis           Docker images for redis       4                    [OK]
clue/redis-benchmark      A minimal docker image t...   3                    [OK]
williamyeh/redis          Redis image for Docker        3                    [OK]
unblibraries/redis        Leverages phusion/baseim...   2                    [OK]
greytip/redis             redis 3.0.3                   1                    [OK]
servivum/redis            Redis Docker Image            1                    [OK]
...

2、取最新版的 Redis 镜像

这里我们拉取官方的最新版本的镜像:

$ docker pull redis:latest

3、查看本地镜像

使用以下命令来查看是否已安装了 redis:

$ docker images

在上图中可以看到我们已经安装了最新版本(latest)的 redis 镜像。

4、运行容器

安装完成后,我们可以使用以下命令来运行 redis 容器:

$ docker run -itd --name redis-test -p 6379:6379 redis

参数说明:

  • -p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。

5、安装成功

最后我们可以通过 docker ps 命令查看容器的运行信息:

接着我们通过 redis-cli 连接测试使用 redis 服务。

$ docker exec -it redis-test /bin/bash

 

 

至此,一个redis服务就安装好了,如果需要外部可以访问就去把安全组打开。一般不建议打开,打开也可以 记得设置密码

阅读更多

腾讯云服务器开启 root 用户登录

📅 2021-11-12 15:35 👁️ 918 💬 0
  • 设置 root 用户密码
  • $ sudo passwd root

    可设置跟 ubuntu 用户一样

    • 修改 ssh 配置 /etc/ssh/sshd_config
    • # sudo vim /etc/ssh/sshd_config

      将 PermitRootLogin 改为 yes

    • #LoginGraceTime 2m
      PermitRootLogin yes
      #StrictModes yes
      • 重启 ssh 服务
      • $ sudo service ssh restart

         

          • 腾讯云有点坑,默认不给root账户,可能是怕新手小白操作失误吧。
          • 参考:https://www.jianshu.com/p/4520899c7006
阅读更多
点击右上角即可分享
微信分享提示