Centos7
基本命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| who 登录日志 who am i 当前登录用户 ifconfig 查看ip地址 clear 清屏 sed -n '5,10p' filename 查看指定文件5到10行
rpm 安装 rpm -ivh * 安装某软件(ivh显示安装进度) tar 解压 tar -zxvf * 使用gz解压显示进度
ps -ef 查看进程 ps -ef | grep redis 查看redis的进程
systemctl status/stop/disable firewalld.service 防火墙
|
网络配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
[root@localhost network-scripts] TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="dhcp" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="6d1accaa-7419-498a-9551-a473c183b8f4" DEVICE="ens33" ONBOOT="yes" IPADDR="192.168.45.128" PREFIX="24" GATEWAY="192.168.45.2" IPV6_PRIVACY="no"
|
常用配置
Jdk1.8
1.解压
1
| tar -zxvf jdk-8u144-linux-x64.tar.gz
|
2.环境配置

在.bash_profile
或者/etc/profile
中配置
1 2
| export JAVA_HOME=/root/envs/jdk1.8.0_144 export PATH=$JAVA_HOME/bin:$PATH
|
执行source .bash_profile
使环境变量生效
Tomcat 9.0.37
解压安装即可
Nginx
安装
- 首先安装
zlib-devel-1.2.7-17.el7.x86_64.rpm

解压pcre-8.38.tar.gz
1
| tar -zxvf pcre-8.38.tar.gz -C /www/server
|
安装pcre-8.38.tar.gz
1 2 3
| cd ~/envs/pcre-8.38/ ./configure make && make install
|




安装
1 2 3
| cd ~/envs/nginx-1.15.6/ ./configure make && make install
|
跟上面一样
1 2
| cd /usr/local/nginx/sbin/ ./nginx
|

启动成功
测试:http://192.168.45.111/

反向代理&&负载均衡(Load Balance)
1 2
| cd /usr/local/nginx/conf vi nginx.conf
|
配置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| upstream local.this52.cn{ server 192.168.45.112:8080; server 192.168.45.113:8080; }
server { listen 80; server_name localhost; location / { proxy_pass http://local.this52.cn; } }
upstream tomcatserver { server 192.168.45.122:8080 ; server 192.168.45.123:8080 ; } server { listen 80; server_name localhost;
location / { proxy_pass http://tomcatserver; }
|
location路径映射
1 2 3 4 5 6 7
| location ~ /xx { } location ~* /xx{ }
|
动静分离
动态资源代理
1 2 3
| location / { proxy_pass 路径; }
|
静态资源代理
1 2 3 4 5 6 7 8
| location / { root 静态资源路径; index 默认访问路径下的资源; autoindex on; autoindex_exact_size off; autoindex_localtime on; charset utf-8; }
|
集群
解决单点故障,避免nginx宕机
使用keepalived监听nginx状况
使用haproxy,提供虚拟路径,接受用户请求
yum源
1 2 3
| sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
sudo yum install nginx
|
1 2 3 4 5 6
| proxy_pass http://abc.com; proxy_set_header Host $host;#保留代理之前的host proxy_set_header X-Real-IP $remote_addr;#保留代理之前的真实客户端ip proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;#在多级代理的情况下,记录每次代理之前的客户端真实ip proxy_redirect default;#指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
|
反向代理静态资源404
1 2 3 4
| # 单独处理 location ~ .*\.(js|css)$ { proxy_pass http://149.28.31.159:65432; }
|
问题
1 2 3 4 5 6 7
| # nginx转发请求异常的解决办法 failed (13: Permission denied) while connecting to upstream
# 两种方法 1. 开启httpd网络连接 执行 setsebool httpd_can_network_connect=1 (重启后失效) setsebool -P httpd_can_network_connect 1 (重启后保留) 2. 修改nginx.conf中user nginx为 user root
|

MySQL5.7安装(基于Centos7)
1.安装Yum Repo
1 2 3 4 5 6 7 8
| wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum localinstall -y mysql57-community-release-el7-9.noarch.rpm
yum localinstall -y https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
|
检查yum源是否安装成功
1
| yum repolist enabled | grep "mysql.*-community.*"
|

2.安装MySQL
1 2 3 4 5 6 7 8
| yum install -y mysql-community-server
# 启动 systemctl start mysqld
# 开机自启 systemctl enable mysqld # 查看状态
|

查看密码
1
| grep 'temporary password' /var/log/mysqld.log
|

登录mysql -uroot -pqLqMjAj3q2-J
修改密码
1 2 3 4 5 6
| mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
# 默认不能设置简单密码,更改全局策略 set global validate_password_policy=0; set global validate_password_length=1;
|
3.其他配置
1 2 3 4 5 6 7 8
| # 配置字符集 编辑/etc/my.cnf,在[mysqld]配置 character-set-server=utf8
# 开启远程控制 grant all privileges on *.* to root@"root" identified by "root";
flush privileges; #刷新
|
5.卸载MySQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| rpm -qa |grep -i mysql # 查看mysql安装的依赖 # 卸载 yum remove mysql...
# 查找mysql相关目录 find / -name mysql # 删除 rm -rf
# 删除/etc/my.cnf rm -rf /etc/my.cnf
# 删除/var/log/mysqld.log rm -rf /var/log/mysqld.log
|
MySql5.7主从复制(基于Docker)
1.安装
这里使用Docker创建三个个mysql容器
架构划分
192.168.56.10:3306 master
节点
192.168.56.10:3307 slave
节点
192.168.56.10:3308 slave
节点
1 2 3 4 5 6 7 8 9 10 11
| docker pull mysql:5.7
docker run -d -p3306:3306 -v /home/mysql/master-conf:/etc/mysql/conf.d -v /home/mysql/master-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql-master ef08065b0a30
docker run -d -p3307:3306 -v /home/mysql/slave1-conf:/etc/mysql/conf.d -v /home/mysql/slave1-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql-slave1 ef08065b0a30
docker run -d -p3308:3306 -v /home/mysql/slave2-conf:/etc/mysql/conf.d -v /home/mysql/slave2-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql-slave2 ef08065b0a30
|

容器ok,卷挂载ok
2.测试连接

连接ok!
3.配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| vim master-conf/my.cnf
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql
symbolic-links=0
server-id=1 log-bin=mysql-bin log-slave-updates slave-skip-errors=all
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| vim slave1-conf/my.cnf
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql
symbolic-links=0
server-id=2 log-bin=mysql-bin log-slave-updates slave-skip-errors=all
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| vim slave1-conf/my.cnf
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql
symbolic-links=0
server-id=3 log-bin=mysql-bin log-slave-updates slave-skip-errors=all
|
重启mysql容器
1
| docker restart CONTAINER_ID
|
查看配置是否生效
1
| SHOW VARIABLES like 'server_id';
|

slave节点也都ok
登录master查看状态

登录slave节点设置对应master
1 2 3 4 5 6
| change master to master_host='172.17.0.4', master_user='root', master_password='root', master_log_file='mysql-bin.000001', master_log_pos=154;
|
开启/关闭从节点
登录slave查看状态
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| mysql> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 172.17.0.4 Master_User: root Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 154 Relay_Log_File: 3fb4da57e759-relay-bin.000004 Relay_Log_Pos: 320 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes
|
4.测试主从复制

master创建表和数据库后slave节点都同步过去了
MySql读写分离