侧边栏壁纸
博主头像
春潮带雨晚来急博主等级

行动起来,活在当下

  • 累计撰写 32 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Initialise

Administrator
2023-12-09 / 0 评论 / 0 点赞 / 77 阅读 / 55097 字

###### IDEA Templet

```

/**

* Created By 醉美柳舞之众星捧月

* @author ${USER}

* @date ${DATE} ${TIME}

*/

/**

* Author song 醉美柳舞之众星捧月

* Date & Time $DATA$ $TIME$

* Description $END$

*/

/**

* @Description $END$

* @author $USER$

* @date $DATA$ $TIME$

* @Param $PARAM$

* @Return $RETURN$

*/

ASD /** $END$ **/

AAD /* $END$ */

```

##### 天气

```

curl wttr.in

```

###### CentOS:

```

systemctl set-default graphical.target 由命令行模式更改为图形界面模式

systemctl set-default multi-user.target 由图形界面模式更改为命令行模式

```

###### 释放内存:

```

1. 释放网页缓存(To free pagecache):

sync; echo 1 > /proc/sys/vm/drop_caches

2. 释放目录项和索引(To free dentries and inodes):

sync; echo 2 > /proc/sys/vm/drop_caches

3. 释放网页缓存,目录项和索引(To free pagecache, dentries and inodes):

sync; echo 3 > /proc/sys/vm/drop_caches

```

###### key:

```

0. cd ~

1. ssh-keygen -t rsa

1.5 cd .ssh ???

2. vim authorized_keys

3. 将本地的ssh公钥复制到authorized_keys中

或者在公钥的目录执行:ssh-copy-id root@ip 直接就给传送过去了

---

export PATH=$PATH:/usr/local/node/bin

git config --global credential.helper store

```

###### IP:

- 使用net-tools:

```

// 是直接更改IP地址

$ sudo ifconfig eth1 10.0.0.1/24

$ sudo ifconfig eth1 up

```

- 使用iproute2:

```

// 是添加一个IP地址,相当于这个机器上的多个IP地址可以用

$ sudo ip addr add 10.0.0.1/24 dev eth1

$ sudo ip link set up eth1

```

###### port:

```

netstat -nupl (UDP类型的端口)

netstat -ntpl (TCP类型的端口)

netstat -anp 显示系统端口使用情况

sudo fuser -k -n tcp 80 强杀端口

npm install node-sass --unsafe-perm=true --allow-root 全局安全权限被拒安装

- a 表示所有

- n 表示不查询dns (显示ip,可以加速操作)

- t 表示tcp协议

- u 表示udp协议

- p 表示查询占用的程序

- l 表示查询正在监听的程序

---

ss - antpl

netstat -ntlp //查看当前所有tcp端口·

netstat -ntulp |grep 80 //查看所有80端口使用情况·

netstat -an | grep 3306 //查看所有3306端口使用情况·

netstat -lanp //查看一台服务器上面哪些服务及端口

ps -ef |grep mysqld //查看一个服务有几个端口。比如要查看mysqld

netstat -pnt |grep :3306 |wc //查看某一端口的连接数量,比如3306端口

netstat -anp |grep 3306 //查看某一端口的连接客户端IP 比如3306端口

netstat -an //查看网络端口

lsof -i :port,使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。

```

###### 重启:

```

ps -ef |grep 'config.jar'|grep -v grep | awk '{print $2}' |xargs kill -9

nohup java -Xmx64m -Xss256k -jar config.jar > /dev/null 2>&1 &

// 后面那个dev/null 表示不输出日志;因为生产环境中这个日志文件会越来越大

java -jar springboot jar --spring.profiles.active=dev

nohup java -Xms512m -Xmx8g -Xmn512m -Xss512k -server -XX:+HeapDumpOnOutOfMemoryError -jar smp-bill-controller-1.0-SNAPSHOT.jar --spring.profiles.active=test > /dev/null 2>&1 &

```

###### rpm:

```

rpm 常用命令

1.安装一个包

# rpm -ivh

2.升级一个包

# rpm -Uvh

3.卸载一个包

# rpm -e

如果遇到依赖,无法删除,使用 rpm -e --nodeps <包的名字> 不检查依赖,直接删除rpm包。

4.查询一个包是否被安装

# rpm -q < rpm package name>

5.得到被安装的包的信息

# rpm -qi < rpm package name>

tar -cvjpf etc.tar.bz2 /etc  //-c为创建一个打包文件,相应的-f后面接创建的文件的名称,使用了.tar.bz2后缀,-j标志使用bzip2压缩,最后面为具体的操作对象/etc目录

tar -cvf file.tar file(先写压缩后的名字,再写要压缩的文件)

eg:

1. 杀掉进程 kill -9 mysqld

2. 查询是否还有安装 rpm -qa|grep -i mysql

3. 用命令卸载 yum -y remove

3.5 yum -y remove mysql-community-client-5.6.38-2.el7.x86_64

4. 卸载不掉用rpm -ev

```

###### redis

```

1. 安装redis编译的c环境,yum install gcc-c++

2. 将redis-2.6.16.tar.gz上传到Linux系统中

3. 解压到/usr/local下 tar -xvf redis-2.6.16.tar.gz -C /usr/local

4. 进入redis-2.6.16目录 使用make命令编译redis

5. 在redis-2.6.16目录中 使用make PREFIX=/usr/local/redis install命令安装 redis到/usr/local/redis中

6. 拷贝redis-2.6.16中的redis.conf到安装目录redis中

7. 启动redis 在bin下执行命令redis-server redis.conf

8. 如需远程连接redis,需配置redis端口6379在linux防火墙中开发

/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

/etc/rc.d/init.d/iptables save

9. 将redis.conf文件中的daemonize从false修改成true表示后台启动

```

- 10 .若要远程连接的话

- 1.<code>bind 127.0.0.1改为 #bind 127.0.0.1</code>

- 2.<code>protected-mode yes 改为 protected-mode no</code>

- 11 .授权登录

- 1.将<code>#requirepass foobared</code>后者设为自己的密码再重新启动服务端

- 2.客户端的连接:

- 1.<code>./redis-cli -h 127.0.0.1 -p 6379 -a war3sxkcs</code>

- 2.常规./redis-cli启动后,再<code>auth war3sxkcs</code>同样进入了授权模式

###### MySQL

- 解决centos7使用yum安装mysql 下载速度慢的问题

```

1、首先备份系统自带yum源配置文件/etc/yum.repos.d/CentOS-Base.repo

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下载ailiyun的yum源配置文件到/etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3、运行yum makecache生成缓存

yum makecache

4、yum -y update 就能看到阿里的镜像了

```

```

CentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql,但是CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。

1.下载mysql的repo源[repo.mysql.com ||https://dev.mysql.com/downloads/repo/yum]

$ wget http://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm

2.安装rpm包

$ sudo repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm

安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。

3.安装mysql

$ sudo yum install mysql-server

根据提示安装就可以了,不过安装完成后没有密码,需要重置密码

4.重置mysql密码

$ mysql -u root

登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘

(2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:

$ sudo chown -R root:root /var/lib/mysql

重启mysql服务

$ service mysqld restart

接下来登录重置密码:

$ mysql -u root //直接回车进入mysql控制台

mysql > use mysql;

mysql > update user set password=password('war3sxkcs') where user='root';

(如果是5.7之后的版本的话,则没有password字段了,更改为:

update user set authentication_string=password('war3sxkcs') where user='root' ;

)

mysql > grant all privileges on . to 'root'@'%' identified by 'war3sxkcs' with grant option; //开启远程可连接

mysql > flush privileges;

mysql > exit;

---

8.0+的安装

wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

rpm -ivh mysql80-community-release-el7-1.noarch.rpm

yum install mysql-server

service mysqld status

sudo grep 'temporary password' /var/log/mysqld.log

mysql -uroot -p

ALTER USER 'root'@'localhost' IDENTIFIED BY 'War3sxkcs?';

CREATE USER 'root'@'%' IDENTIFIED BY 'War3sxkcs?';

GRANT ALL ON . TO 'root'@'%';

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'War3sxkcs?';

flush privileges;

This will require that passwords contain at least one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters.

---

另外,如果远程连接的时候报plugin caching_sha2_password could not be loaded这个错误,可以尝试修改密码加密插件:

mysql> alter user 'root'@'%' identified with mysql_native_password by 'War3sxkcs?';

查看mysql的安装

rpm -qa|grep -i mysql

停止/卸载mysql

rpm -e --noscripts MySQL-client-5.5.25a-1.rhel5

rpm -ev mysql-community-libs-5.7.21-1.el7.x86_64 --nodeps

yum remove mysql*

find / -name mysql

#在win上配置的mysql配置密码

set password for root@localhost = password('war3sxkcs');

```

###### wifi

```

nmcli dev wifi list

```

###### CentOS 源更新

若将<code>/etc/yum.repos.d</code>下全部清除的话或损坏的话

- yum clean all (先清除一遍)

- 下载新源<code>http://mirror.centos.org/centos/7.5.1804/os/x86_64/Packages/centos-release-7-5.1804.el7.centos.x86_64.rpm</code>

- 安装这个源: rpm -Uvh 源 -- force

- 置到缓存: yum makecache

###### firewall

```

Centos 7 firewall 命令:

0. 安装

yum install -y firewalld

yum install -y firewall-config

1. 查看firewall服务状态

systemctl status firewalld

2. 查看firewall运行状态

firewall-cmd --state

3、开启、重启、关闭、firewalld.service服务

service firewalld start

service firewalld restart

service firewalld stop

4、查看防火墙规则

firewall-cmd --list-all

5、查看已经开放的端口:

firewall-cmd --list-ports

6、查询具体端口是否开放

firewall-cmd --query-port=8080/tcp

7、开放80端口

① firewall-cmd --permanent --add-port=80/tcp

② firewall-cmd --zone=public --add-port=80/tcp --permanent

8、 移除端口

firewall-cmd --permanent --remove-port=8080/tcp

9、重启防火墙(修改配置后要重启防火墙)

firewall-cmd --reload

命令含义:

–zone #作用域

–add-port=80/tcp #添加端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效

其他::::::::::::::::::::::::

1、直接关闭防火墙

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

2、设置 iptables service

yum -y install iptables-services

如果要修改防火墙配置,如增加防火墙端口3306

vi /etc/sysconfig/iptables

增加规则

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

保存退出后

systemctl restart iptables.service #重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

最后重启系统使设置生效即可。

systemctl start iptables.service #打开防火墙

systemctl stop iptables.service #关闭防火墙

```

###### 添加交换空间

```

dd if=/dev/zero of=/root/swap bs=1024 count=2048000

mkswap /root/swap

swapon /root/swap

```

###### Zookeeper

---

```

1、创建 /usr/local/services/zookeeper 文件夹:

mkdir -p /usr/local/services/zookeeper

2、进入到 /usr/local/services/zookeeper 目录中:

cd /usr/local/services/zookeeper

3、下载 zookeeper-3.4.9.tar.gz:

wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

4、解压缩 zookeeper-3.4.9.tar.gz:

tar -zxvf zookeeper-3.4.9.tar.gz

5、进入到 /usr/local/services/zookeeper/zookeeper-3.4.9/conf 目录中:

cd zookeeper-3.4.9/conf/

6、复制 zoo_sample.cfg 文件的并命名为为 zoo.cfg:

cp zoo_sample.cfg zoo.cfg

7、用 vim 打开 zoo.cfg 文件并修改其内容为如下:

# The number of milliseconds of each tick

# zookeeper 定义的基准时间间隔,单位:毫秒

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

# dataDir=/tmp/zookeeper

# 数据文件夹

dataDir=/usr/local/services/zookeeper/zookeeper-3.4.9/data

# 日志文件夹

dataLogDir=/usr/local/services/zookeeper/zookeeper-3.4.9/logs

# the port at which the clients will connect

# 客户端访问 zookeeper 的端口号

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1

8、保存并关闭 zoo.cfg 文件:

9、进入到 /usr/local/services/zookeeper/zookeeper-3.4.9/bin 目录中:

cd ../bin/

10、用 vim 打开 /etc/ 目录下的配置文件 profile:

vim /etc/profile

并在其尾部追加如下内容:

# idea - zookeeper-3.4.9 config start - 2016-09-08

export ZOOKEEPER_HOME=/usr/local/services/zookeeper/zookeeper-3.4.9/

export PATH=$ZOOKEEPER_HOME/bin:$PATH

export PATH

# idea - zookeeper-3.4.9 config start - 2016-09-08

11、使 /etc/ 目录下的 profile 文件即可生效:

source /etc/profile

12、启动 zookeeper 服务:

zkServer.sh start

如打印如下信息则表明启动成功:

ZooKeeper JMX enabled by default

Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

13、查询 zookeeper 状态:

zkServer.sh status

14、关闭 zookeeper 服务:

zkServer.sh stop

如打印如下信息则表明成功关闭:

ZooKeeper JMX enabled by default

Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg

Stopping zookeeper ... STOPPED

15、重启 zookeeper 服务:

zkServer.sh restart

如打印如下信息则表明重启成功:

ZooKeeper JMX enabled by default

Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg

ZooKeeper JMX enabled by default

Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg

Stopping zookeeper ... STOPPED

ZooKeeper JMX enabled by default

Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

```

###### Kafka

---

```

1、将包下载到相关的目录,然后解压Zookeeper到指定目录;

#cd /opt;

#tar -zxvf kafka_2.10-0.10.1.1.tgz;

2、配置日志:进入到/opt/kafka_2.10-0.10.1.1目录创建日志目录;

#cd /opt/kafka_2.10-0.10.1.1;

#mkdir logs;

3、修改kafka配置文件;

进入到/opt/kafka_2.10-0.10.1.1/config目录,修改server.properties

#cd /opt/kafka_2.10-0.10.1.1/config;

#vi server.properties #编辑修改相应的参数

broker.id=0

port=9092 #端口号

host.name=127.0.0.1 #服务器IP地址,修改为自己的服务器IP

log.dirs=/opt/kafka_2.10-0.10.1.1/logs #日志存放路径,上面创建的目录

zookeeper.connect=localhost:2181 #zookeeper地址和端口,单机配置部署,localhost:2181

#:wq! #保存退出

4、启动Zookeeper:

Kafka支持内置的Zookeeper和引用外部的Zookeeper,本文使用外部的Zookeeper。

启动Zookeeper可以参考前面文章: Linux下Zookeeper的(单机)安装与简单测试。

5、Kafka操作。

(1)、启动kafka命令:

#cd /opt/kafka_2.10-0.10.1.1/bin;

# ./kafka-server-start.sh /opt/kafka_2.10-0.10.1.1/config/server.properties &;

(2)、停止kafka命令:

# ./kafka-server-stop.sh

(3)、创建Topic:(创建一个名为test的topic,只有一个副本,一个分区。)

#./kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic test

(4)、列出所有Topic:

#./kafka-topics.sh -list -zookeeper 127.0.0.1:2181

(5)、启动Producer并发送消息:

#./kafka-console-producer.sh --broker-list localhost:9092 --topic test

(输入相应的消息,eg:hello kafka;按Ctrl+C结束)

(6)、启动Consumer并接收消息:

#./kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test --from-beginning

kafka进程总是在启动一段时间后自动停止:解决

bin/kafka-server-start.sh -daemon ./config/server.properties

```

###### ELK:

- elasticsearch : <code>9200</code>

- tar 解压;

- 修改/config/jvm.options 中的内存为100M

- bin / sh elasticsearch

- 安装IK分词器

- elasticsearch和kibana启动过程的问题

- [x] 1.elasticsearch和kibana 不能外界访问?

```

将 elasticsearch和kibana 中的config文件夹中各自的配置文件中的 **.host ="lcoalhost"全改为 "0.0.0.0" 即可不绑定本地地址,可以外界访问

```

- [x] 2.elasticSearch启动报错"max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]"

```

编辑 /etc/security/limits.conf,追加以下内容;

* soft nofile 65536

* hard nofile 65536

此文件修改后需要重新登录用户,才会生效

```

- [x] 2.elasticSearch启动报错"max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]"

```

编辑 /etc/sysctl.conf,追加以下内容:

vm.max_map_count=655360

保存后,执行:

sysctl -p

重新启动

或者-------------------

# 改变设置

sysctl -w vm.max_map_count=262144

# 使之立即生效

sysctl -p

```

```

1.download or compile

- optional 1 - download pre-build package from here: https://github.com/medcl/elasticsearch-analysis-ik/releases

unzip plugin to folder your-es-root/plugins/

- optional 2 - use elasticsearch-plugin to install ( version > v5.5.1 ):

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.3/elasticsearch-analysis-ik-6.2.3.zip

2.restart elasticsearch

Quick Example

1.create a index

curl -XPUT http://localhost:9200/index

2.create a mapping

curl -XPOST http://localhost:9200/index/fulltext/_mapping -H 'Content-Type:application/json' -d'

{

"properties": {

"content": {

"type": "text",

"analyzer": "ik_max_word",

"search_analyzer": "ik_max_word"

}

}

}'

```

如果启动kibana报错

```

Login is currently disabled. Administrators should consult the Kibana logs f

解决方案:

在kibana.yml 中加入 xpack.security.enabled: false

```

- kibana: <code>5601</code>

- tar 解压;

- sh kibana

- logstash : <code>9600</code>

- tar 解压;

- 修改/config/jvm.options 中的内存为100M

- bin/logstash -e 'input { stdin { } } output { stdout {} }'

```

启动命令:

cd bin

./logstash -e 'input { stdin { } } output { stdout {} }'

```

- 如果出现以下代码表示启动成功:

```

Sending Logstash's logs to /home/rzxes/logstash-5.3.1/logs which is now configured via log4j2.properties

[2017-05-16T10:27:36,957][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/home/rzxes/logstash-5.3.1/data/queue"}

[2017-05-16T10:27:37,041][INFO ][logstash.agent ] No persistent UUID file found. Generating new UUID {:uuid=>"c987803c-9b18-4395-bbee-a83a90e6ea60", :path=>"/home/rzxes/logstash-5.3.1/data/uuid"}

[2017-05-16T10:27:37,581][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>1, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>125}

[2017-05-16T10:27:37,682][INFO ][logstash.pipeline ] Pipeline main started

The stdin plugin is now waiting for input:

[2017-05-16T10:27:37,886][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}

```

- Logstash连接mysql作为数据源,ES作为数据输出端:

- 在Logstash的根目录新建文件xxx.conf;eg:test.conf;里面的内容为:

```

input {

stdin {

}

jdbc {

# 数据库地址 端口 数据库名

jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/mamabuy-trade"

# 数据库用户名

jdbc_user => "root"

# 数据库密码

jdbc_password => "war3sxkcs"

# mysql java驱动地址

jdbc_driver_library => "/usr/local/software/mysql-connector-java-5.1.44.jar"

jdbc_driver_class => "com.mysql.jdbc.Driver"

jdbc_paging_enabled => "true"

jdbc_page_size => "100000"

# sql 语句文件,也可以直接写SQL,如statement => "select * from table1"

statement_filepath => "/usr/local/elk/logstash/test.sql"

schedule => "* "

type => "jdbc"

}

}

output {

stdout {

codec => json_lines

}

elasticsearch {

hosts => "127.0.0.1:9200"

index => "test-1" #索引名称

document_type => "form" #type名称

document_id => "%{id}" #id必须是待查询的数据表的序列字段

}

}

```

- 并在logstash的根目录下新建文件<code>test.sql</code>;

- <code>test.sql</code>文件里面的内容为一条查询sql语句,eg:

```

1. eg:

select * from table1

2. 初次启动用全量同步:

select id,category_id,brand_id,spu_name,price,status from t_product

3. 下次启动用增量同步

select id,category_id,brand_id,spu_name,price,status from t_product where update_time > :sql_lastvalue

```

- 注意:<code>test.conf</code>和<code>test.sql</code>两个文件都在logstash的根目录下

- 此时再启动logstash:

```

bin/logstash -f test.conf

```

![image](https://sxk.s3.didiyunapi.com/pic/elk/1.jpg)

- 此时mysql中(test.conf配置)的数据库已经连接,test.sql里面的sql语句被执行;logstash从mysql里面查询值返回到ElasticSearch可以在kibana中可视化出来

##### Nginx

---

1.安装gcc gcc-c++(如新环境,未安装请先安装)

```

$ yum install -y gcc gcc-c++

```

2.安装PCRE库

```

$ cd /usr/local/

$ wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz

$ tar -zxvf pcre-8.36.tar.gz

$ cd pcre-8.36

$ ./configure

$ make && make install

或者:yum install -y pcre pcre-devel

```

3.安装SSL库

```

$ cd /usr/local/

$ wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz

$ tar -zxvf openssl-1.0.1j.tar.gz

$ cd openssl-1.0.1j

$ ./config

$ make && make install

或者:yum install -y openssl openssl-devel

```

4.安装zlib库存

```

$ cd /usr/local/

$ wget http://zlib.net/zlib-1.2.11.tar.gz

$ tar -zxvf zlib-1.2.11.tar.gz

$ ./configure

$ make && make install

或者:yum install -y zlib zlib-devel

```

5.安装nginx

```

$ cd /usr/local/

$ wget -c https://nginx.org/download/nginx-1.10.1.tar.gz

$ tar -zxvf nginx-1.10.0.tar.gz

$ cd nginx-1.10.0

$ 建议:./configure

$ 不建议(要使用ssl就使用这个命令,否则就上面那个命令):./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module

(注: --with-http_ssl_module:这个不加后面在nginx.conf配置ssl:on后,启动会报nginx: [emerg] unknown directive "ssl" in /opt/nginx/conf/nginx.conf 异常)

$ make && make install

报错:./configure: error: the HTTP gzip module requires the zlib library

在–prefix后面接以下命令:

--with-pcre=/usr/local/pcre-8.36 指的是pcre-8.36 的源码路径。--with-zlib=/usr/local/zlib-1.2.8 指的是zlib-1.2.8 的源码路径。

```

5.5 Nginx开机启动

- 如果用yum install命令安装的,yum命令会自动创建nginx.service文件

```

systemctl enable nginx.service

```

- 用源码编译安装的,要手动创建nginx.service服务文件

```

vi /lib/systemd/system/nginx.service

```

```

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s quit

PrivateTmp=true

[Install]

WantedBy=multi-user.target

```

```

设置开机启动

systemctl enable nginx.service

```

6.Nginx 配置多域名,配置多个conf 文件

```

1. 在nginx安装目录...../conf下,新建 vhost 文件夹。与nginx.conf同路径了。

2. 在vhost创建你需要的多个 *.conf 的文件 ,如 video.haile.com.conf ,命名规则大多以域名的方式来命名文件。

3. 编辑 conf 文件,把我们平常放在 nginx.conf 里的 server{...} 段复制过来直接粘贴到 conf 里。

4. 在 nginx.conf 的 http{...} 段中加入 include E:/nginx-1.8.1/vhosts/*.conf; 注:这里 include 需要用到全路径,且文件后缀是用 conf

```

eg:

```

- 子

server {

listen 80;

server_name sitemain.chainexcloud.net;

root index.html;

location / {

proxy_http_version 1.1;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Cookie $http_cookie;

proxy_set_header Upgrade $http_upgrade;

proxy_pass http://127.0.0.1:6013;

}

}

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

- 主

#user nginx;

#user nobody;

user root;

worker_processes 4;

error_log /var/log/nginx/error.log warn;

pid /var/run/nginx.pid;

events {

worker_connections 1024;

}

http {

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;

types_hash_max_size 2048;

keepalive_timeout 65;

#gzip on;

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

(win下要绝对路径: include E:/plugins/nginx-1.13.6/conf/vhost/*.conf; )

}

```

###### SSL

```

upstream smallkk {

server 127.0.0.1:8080;

}

server {

listen 80;

server_name www.s-name.com;

rewrite ^(.*) https://$host$1 permanent;

}

server {

listen 443 ssl;

server_name www.s-name.com;

ssl on;

ssl_certificate 1_s-name.com_bundle.crt;

ssl_certificate_key 2_s-name.com.key;

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

ssl_prefer_server_ciphers on;

location / {

root html;

index index.html index.htm;

proxy_pass http://smallkk;

}

}

```

###### SSL证书生成

- 1、首先确保机器上安装了openssl和openssl-devel

```

yum install openssl

yum install openssl-devel

```

- 2、生成证书

```

① 进入一个目录来生成证书 例如:

cd /etc/nginx/

② 创建服务器私钥,命令会让你输入一个口令:

openssl genrsa -des3 -out server.key 1024

③ 创建签名请求的证书(CSR):

openssl req -new -key server.key -out server.csr

④ 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:

cp server.key server.key.org

openssl rsa -in server.key.org -out server.key

⑤ 最后标记证书使用上述私钥和CSR:

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

```

7.使用

```

0.测试配置文件

./nginx –t

1.启动

./nginx -c /usr/local/nginx-1.10.1/conf/nginx.conf

2.重启

./nginx –s reload

3.停止

./nginx –s stop

4.强制关闭

pkill nginx

```

###### 配置:

```

Server

接收请求的服务器需要将不同的请求按规则转发到不同的后端服务器上,在 nginx 中我们可以通过构建虚拟主机(server)的概念来将这些不同的服务配置隔离。

server {

listen 80;

server_name localhost;

root html;

index index.html index.htm;

}

例如我们笔戈玩下的两个子项目 passport 和 wan 就可以通过在 nginx 的配置文件中配置两个 server,servername 分别为 passport.bigertech.comwan.bigertech.com。这样的话不同的 url 请求就会对应到 nginx 相应的设置,转发到不同的后端服务器上。

这里的 listen 指监听端口,server_name 用来指定IP或域名,多个域名对应统一规则可以空格分开,index 用于设定访问的默认首页地址,root 指令用于指定虚拟主机的网页跟目录,这个地方可以是相对地址也可以是绝对地址。

通常情况下我们可以在 nginx.conf 中配置多个server,对不同的请求进行设置。就像这样:

server {

listen 80;

server_name host1;

root html;

index index.html

index.htm;

}

server {

listen 80;

server_name host2;

root /data/www/html;

index index.html index.htm;

}

但是当 server 超过2个时,建议将不同对虚拟主机的配置放在另一个文件中,然后通过在主配置文件 nginx.conf 加上 include 指令包含进来。更便于管理。

include vhosts/*.conf;

就可以把vhosts的文件都包含进去啦。

Localtion

每个 url 请求都会对应的一个服务,nginx 进行处理转发或者是本地的一个文件路径,或者是其他服务器的一个服务路径。而这个路径的匹配是通过 location 来进行的。我们可以将 server 当做对应一个域名进行的配置,而 location 是在一个域名下对更精细的路径进行配置。

以上面的例子,可以将root和index指令放到一个location中,那么只有在匹配到这个location时才会访问root后的内容:

location / {

root /data/www/host2;

index index.html index.htm;

}

location 匹配规则

~ 波浪线表示执行一个正则匹配,区分大小写

~* 表示执行一个正则匹配,不区分大小写

^~ ^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录

= 进行普通字符精确匹配

匹配例子:

location = / {

# 只匹配"/". [ configuration A ]

}

location / {

# 匹配任何请求,因为所有请求都是以"/"开始 # 但是更长字符匹配或 者正则表达式匹配会优先匹配 [ configuration B ]

}

location ^~ /images/ {

# 匹配任何以 /images/ 开始的请求,并停止匹配 其它

location [ configuration C ]

}

location ~* .(gif|jpg|jpeg)$ {

# 匹配以 gif, jpg, or jpeg结尾的请求.

# 但是所有 /images/ 目录的请求将由 [Configuration C]处理.

[ configuration D ]

}

请求:/ -> 符合configuration A

/documents/document.html -> 符合configuration B

/images/1.gif -> 符合configuration C

/documents/1.jpg ->符合 configuration D

静态文件映射

访问文件的配置主要有 root 和 aliasp’s 两个指令。这两个指令的区别容易弄混:

alias

alias后跟的指定目录是准确的,并且末尾必须加 /。

location /c/ {

alias /a/;

}

root

root后跟的指定目录是上级目录,并且该上级目录下要含有和location后指定名称的同名目录才行。

location /c/ {

root /a/;

}

如果你需要将这个目录展开,在这个location的末尾加上「autoindex on; 」就可以了

转发

配置起来很简单比如我要将所有的请求到转移到真正提供服务的一台机器的 8001 端口,只要这样:

location / {

proxy_pass 172.16.1.1:8001;

}

这样访问host时,就都被转发到 172.16.1.1的8001端口去了。

负载均衡

upstream myserver; {

ip_hash;

server 172.16.1.1:8001;

server 172.16.1.2:8002;

server 172.16.1.3;

server 172.16.1.4;

}

location / {

proxy_pass http://myserver;

}

我们在 upstream 中指定了一组机器,并将这个组命名为 myserver,这样在 proxypass 中只要将请求转移到 myserver 这个 upstream 中我们就实现了在四台机器的反向代理加负载均衡。其中的 ip_hash 指明了我们均衡的方式是按照用户的 ip 地址进行分配。另外还有轮询、指定权重轮询、fair、url_hash几种调度算法。

总结

以上是最简单的通过 nginx 实现静态文件转发、反向代理和负载均衡的配置。在 nginx 中所有的功能都是通过模块来实现的,比如当我们配置 upstream 时是用 upstream 模块,而 server 和 location 是在 http core 模块,其他的还有流控的 limt 模块,邮件的 mail 模块,https 的 ssl 模块。他们的配置都是类似的可以再 nginx 的模块文档中找到详细的配置说明。

```

---

###### Run Dashboard

```

<component name="RunDashboard">

<option name="configurationTypes">

<set>

<option value="SpringBootApplicationConfigurationType" />

</set>

</option>

<option name="ruleStates">

<list>

<RuleState>

<option name="name" value="ConfigurationTypeDashboardGroupingRule" />

</RuleState>

<RuleState>

<option name="name" value="StatusDashboardGroupingRule" />

</RuleState>

</list>

</option>

<option name="contentProportion" value="0.2102981" />

</component>

```

---

###### MongoDB

- 1.创建yum源文件:

```

vim /etc/yum.repos.d/mongodb-org-4.0.repo

```

文件内容:

```

[mongodb-org-4.0]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

```

- 2.安装

```

sudo yum install -y mongodb-org

```

- 3.完成后

- 查看mongo安装位置 whereis mongod

- 查看修改配置文件 : vim /etc/mongod.conf

- 4.启动MongoDB

```

启动 mongodb :systemctl start mongod.service

停止 mongodb :systemctl stop mongod.service

```

- 5.查看MongoDB启动状态

```

systemctl status mongod.service

```

- 6.设置为开机启动

```

systemctl enable mongod.service

```

- 7.启动Mongo shell

```

命令:mongo

查看数据库:show dbs

```

- 8.设置mongodb远程访问:

```

编辑mongod.conf注释bindIp,并重启mongodb.

vim /etc/mongod.conf

```

- 9.重启MongoDB

```

重启mongodb:systemctl restart mongod.service

```

---

###### RabbitMQ

- 1 .安装 er_lang

- 2 .配置ERLANG_HOME的环境变量,指向erlang的安装目录,同时将%ERLANG_HOME%\bin加入到Path中

- 3 .安装RabbitMQ

- 启动命令:

```

1. rabbitmq-plugins enable rabbitmq_management

如果出现错误:重启一下,再次重新执行上面的命令。

如果还不行:

2. 首先在命令行输入:rabbitmq-service stop,

3. 接着输入rabbitmq-service remove,

4. 再接着输入rabbitmq-service install,

5. 接着输入rabbitmq-service start,

6. 最后重新输入rabbitmq-plugins enable rabbitmq_management

```

- <code>http://localhost:15672</code>&nbsp;输入用户名:guest,密码:guest

---

###### Gitlab

- 1.Install and configure the necessary dependencies

```

# SSH授权与防火墙相关

sudo yum install -y curl policycoreutils-python openssh-server

sudo systemctl enable sshd

sudo systemctl start sshd

sudo firewall-cmd --permanent --add-service=http

sudo systemctl reload firewalld

#邮件发送功能相关

sudo yum install postfix

sudo systemctl enable postfix

sudo systemctl start postfix

```

- 2.Add the GitLab package repository and install the package

```

#添加gitlab包到本地仓库

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

#开始安装,并配置一个实例域名进行访问

sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee

```

- 3.更改密码,用root用户登录

- 4.配置邮箱、订阅之类的什么东东..

- 5.启动和关闭

```

# Start all GitLab components

sudo gitlab-ctl start

# Stop all GitLab components

sudo gitlab-ctl stop

# Restart all GitLab components

sudo gitlab-ctl restart

```

- 6.此时已经可以从外界访问gitlab(可能会在/etc/hosts中配置下gitlabdemo.com)

- 7.获取更改gitLab初始化密码

```

1. 切换目录:cd /opt/gitlab/bin

2.执行 :sudo gitlab-rails console production 命令 开始初始化密码

3.在irb(main):001:0>后面通过u=User.where(id:1).first来查找与切换账号(User.all 可以查看所有用户)

4.通过u.password='12345678'设置密码为12345678

5.通过u.password_confirmation='12345678' 再次确认密码

6.通过 u.save!进行保存(切记切记 后面的 !)

```

- others.一点儿git命令

```

删除本地分支:git branch -d 分支名(remotes/origin/分支名)

强制删本地:git branch -D 分支名

删除远程分支:git push origin --delete 分支名(remotes/origin/分支名)

```

###### 找到JDK的默认安装路径方式

- 1.rpm 安装的路径默认在<code>/usr/java/jdk1.8.0_181-amd64</code>;

- 2.寻找方式:

```

1. whereis java

===>

java: /usr/bin/java /usr/share/man/man1/java.1

上面是Java的执行文件的路径

2. ls -lrt /usr/bin/java

===>

/usr/bin/java -> /etc/alternatives/java

这是找到这个执行文件的软连接的路径 ,然后这并不是真正的目的地,还有一层软链接,那么就继续找

3. ls -lrt /etc/alternatives/java

===>

/etc/alternatives/java -> /usr/java/jdk1.8.0_181-amd64/jre/bin/java

于是,就找到了这个真正的路径..

```

- 3.变量配置实例:

```

export PATH=$PATH:/usr/local/node/bin

---

export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64

export PATH=$PATH:$JAVA_HOME/bin

---

export MAVEN_HOME=/usr/local/maven

export PATH=$MAVEN_HOME/bin:$PATH

---

export ZOOKEEPER_HOME=/usr/local/zookeeper

export PATH=$PATH:$ZOOKEEPER_HOME=/bin:$JAVA_HOME/bin

```

##### 权限

###### RWX => 1 1 1 = 4 2 1

- 9种基本权限分别是:<code>user[宿主]</code>,<code>group</code>,<code>other</code>的顺序;

- eg: <code>d rwx r-x r-x </code>

- 其中<code>d</code>表示这是一个文件夹;用户的权限是<code>rwx</code>,中间是组的权限<code>r-x</code>,后面是Other的权限<code>r-x</code>;

- rwx r-x r-x

- 111 101 101

- 7 5 5

###### UGO权限流程

- 对某个文件的操作 (根据process的用户提示)

- 判断是否有<code>owner</code>权限;

- Y 如果有的话,则直接拥有owner权限

- N 如果没有<code>owner</code>权限的话判断是否是<code>Group</code>成员即是否有<code>Group</code>的权限

- Y 如果有的话,则就是<code>Group</code>权限

- N 如果没有的话,那就是<code>Other</code>权限

###### 服务器内部通联

```

#!/bin/bash

ssh-keygen -t rsa -P ''

ssh-copy-id -i 192.168.255.56

ssh-copy-id -i 192.168.255.55

ssh-copy-id -i 192.168.255.54

ssh-copy-id -i 192.168.255.53

```

###### Linux上面保存Git的账号密码

```

# 保存本地仓库的账号

git config --local credential.helper store

# 保存git全局账号

git config --global credential.helper store

2、执行一般git命令,clone、pull等。输入账号密码,命令执行完成后,即保存了账号密码。下次执行git命令不会要求再次输入。

注意:如果第一次输入账号密码是错的,一定要在下次执行一般git命令前,先执行保存命令以重新接受新的账号密码。

```

0

评论区