Nginx集群租场原理详解
Nginx集群组成
组成要素:VIP:给分发器的一个虚IP分发器:nginx数据服务器:web服务器
nginx集群原理
在Nginx集群中Nginx扮演的角色是:分发器。任务:接受请求、分发请求、响应请求。功能模块:ngx_http_upstream_module:基于应用层(七层)分发模块ngx_stream_core_module:基于传输层(四层)分发模块(1.9开始提供该功能)
nginx集群的实质
nginx 默认支持分发 他有一个自带模块 叫upstream 这就是nginx的分发模块,也就是说nginx分发是一个组合体 将什么组合在一起呢
虚拟主机+反向代理+upstream,在这个组合中
虚拟主机:负责接受和响应请求。
反向代理:带领用户去数据服务器拿数据。
upstream:告诉nginx去哪个数据服务器拿数据。
数据包走向
用户发起请求
虚拟主机接受用户请求
虚拟主机去找反向代理(问反向代理去哪拿数据)
反向代理让去找upstream
upstream告诉一个数据服务器IP
Nginx去找数据服务器,并发起用户的请求
数据服务器接受请求并处理请求 ...
Docker容器管理保姆级全操作实战案例
docker容器查看-ps命令
显示本地容器列表,但是默认不显示关闭的容器,只显示运行中的容器,除非加上命令选项 -a
用法:docker ps [-a 显示所有容器,默认只显示运行的]
123root@mnqz ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES8f4c3f823843 centos "/bin/bash" 3 seconds ago Exited(0) 3 seconds ago centos7_6
容器详细信息-inspect命令
显示容器的详细信息
用法:docker inspect [容器名称或者ID]
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737 ...
Linux特殊权限的设置和查看
linux基本权限只是规定了所有者、属组、其他人三种用户的权限,如果希望对文件或文件夹做一些特殊的权限设置呢?比如:
设置属组继承权限为执行文件设置临时超管执行权限公共文件夹中的文件谁建立谁删除这些任务基本权限就解决不聊了,需要解决这个问题得靠特殊权限。
特殊权限的介绍
之前我们提到了特殊权限有三个,这三个特殊权限是在可执行程序运行时影响操作权限的,它们分别是SUID,SGID,sticky-bit位
特殊权限
说明
SUID
当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。任意存取该文件拥有者能使用的全部系统资源。如果所有者是 root 的话,那么执行人就有超级用户的特权了。
SGID
当一个设置了SGID 位的可执行文件运行时,该文件将具有所属组的特权,任意存取整个组所能使用的系统资源;若一个目录设置了SGID,则所有被复制到这个目录下的文件,其所属的组都会被重设为和这个目录一样,除非在复制文件时保留文件属性,才能保留原来所属的群组设置。
stickybit
对一个文件设置了st ...
Linux网卡配置文件中的关键参数说明
网络配置文件
/etc/NetworkManager/NetworkManager.conf
NetworkManager服务配置文件,如果没有特殊需求不建议调整,如果需要调整的话,调整之前备份,调整完成重新启动服务
/etc/sysconfig/network-scripts/ifcfg-xx网卡配置文件
123456789101112131415161718192021#网卡配置文件中的关键参数cat /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet" #网卡类型BOOTPROTO="dhcp" #IP获取方式,dhcp/static(none)DEFROUTE="yes" #是否设置为IPV4默认路由NAME="ens33" #连接名称UUID="b5ecf570-543c-4da7-b082-bdc073b56acb" #网卡识别号DEVIC ...
Linux中逻辑卷LVM详细介绍
在分区的时候,每个分区应该分多大是令人头疼的,而且随着长时间的运行,分区不管你分多大,都会被数据给占满。当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。
虽然现在有很多动态调整磁盘的工具可以使用,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解决问题。
因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。那么我们可以通过逻辑盘卷管理(LVM,Logical Volume Manager)的方式来非常完美的实现这一功能。
解决思路:将所有可用存储汇集成池,当池中某个分区空间不够时就会从池中继续划分空间给分区,池中空间不够就可以通过加硬盘的方式来解决。
逻辑卷介绍
逻辑卷(LVM):它是Linux环境下对磁盘分区进行管理的一种机制,它是建立在物理存储设备之上的一个抽象层,优点在于灵活管理。特点:1、动态在线扩 ...
MySQL常用数学函数用法介绍
MySQL函数,是一种控制流程函数,属于数据库用语言。
MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。
数学函数-函数概述
MySQL函数是MySQL数据库提供的内部函数。这些内部函数可以帮助用户更加方便的处理表中的数据。
数学函数是MySQL中常用的一类函数。主要用于处理数字,包括整型、浮点数等。
常用数学函数-abs
abs(X):返回X的绝对值
1234567mysql> select abs(-32);+----------+| abs(-32) |+----------+| 32 |+----------+1 行于数据集 (0.03 秒)
常用数学函数-amodbs
MOD(N,M)或%:返回N被M除的余数。
123456789101112131415mysql> select mod(15,7);+-----------+| mod(15,7) |+-----------+| 1 |+---- ...
MySQL常用日期时间函数用法介绍
MySQL函数,是一种控制流程函数,属于数据库用语言。
MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。
日期和时间函数-函数概述
日期和时间函数是MySQL中常用的一类函数。主要用于处理日期时间。
日期和时间函数-curdate
CURDATE()或CURRENT_DATE():返回当前日期
123456789101112131415mysql> select curdate();+------------+| curdate() |+------------+| 2012-01-13 |+------------+1 行于数据集 (0.01 秒)mysql> select current_date();+----------------+| current_date() |+----------------+| 2012-01-13 |+----------------+1 行于数据集 (0.01 秒)
日期和时间函数-c ...
MySQL中的分页limit介绍应用及实战案例
在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能-limit。
limit概述
Limit是限制的意思,所以limit的作用就是限制查询记录的条数。
limit语法
12格式:select */字段列表 from 数据库表名 [limit offset,length];
说明:
offset:起始行数,从 0 开始计数,如果省略,默认就是 0
length: 返回的行数
limit应用
案例:
查询学生信息表中前5条记录
123456789101112#offset可以省略,省略时,从0开始mysql> select * from students limit 5;+------+--------+------+------+---------+------+------------+-----------------+| sid | sname | sex | age | english | math | entertime | remark |+--- ...
Linux中Cgroups资源限制框架的介绍及实际应用
Cgroups是什么?
Cgroups是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memory,IO等等)的机制。最初由google的工程师提出,后来被整合进Linux内核。Cgroups也是LXC为实现虚拟化所使用的资源管理手段,可以说没有cgroups就没有LXC。
Cgroups可以做什么?
Cgroups最初的目标是为资源管理提供的一个统一的框架,既整合现有的cpuset等子系统,也为未来开发新的子系统提供接口。现在的cgroups适用于多种应用场景,从单个进程的资源控制,到实现操作系统层次的虚拟化(OS Level Virtualization)。Cgroups提供了一下功能:
限制进程组可以使用的资源数量(Resource limiting )。比如:memory子系统可以为进程组设定一个memory使用上限,一旦进程组使用的内存达到限额再申请内存,就会出发OOM(out of memory)。进程组的优先级控制(Prioritization )。比如:可以使用 ...
CC BY-NC-SA 4.0知识共享许可证的使用方法
CC BY-SA 4.0 License
CC BY-SA 4.0 全称为 Creative Commons Attribution-ShareAlike 4.0 International Public License(知识共享 版权归属-相同方式共享 4.0 国际 公共许可证),简称为 CC BY-SA 4.0。
适用范围
本许可证适用于自由文化作品,包括但不限于网站、图像、视频、博客、电子文档、书籍、数据集等。
您可以自由地:
共享 — 通过任何媒介和任何形式复制、转载本作品。
改编 — 在任意用途下合成、转换和改造本作品,甚至是商业性的。
只要您遵循许可证条款,版权方就不能收回您的这些权利。依据下列条款:
注明版权归属 — 您必须附上原始作品的来源及本许可证的链接,同时说明是否修改了原始作品。您可以用任何合理的方式来注明原始作品的版权归属,但是不得以任何方式表明版权方认可您或您的使用。
相同方式共享 — 若您改编了原始作品,则您必须使用和原始作品相同的许可证来分发您的衍生作品。
不得附加限制 — 您不得使用任何法律条款或技术措施,在法律上限制别人做许可证准许的任何事情。声 ...
巧妙通过Shell脚本判断服务器某个端口是否为OPEN状态
案例需求
判断计算机某个端口是否为OPEN状态,且能正常访问
脚本应用场景
服务监控脚本+监控平台
手动监控
解决问题
实时掌握服务的运行状态,及时处理问题。
脚本思路
1、使用telnet命令连接远端机器的远端端口
2、接收连接反馈并分析结果
3、分析文件内容
4、打印结果
实现代码
1234567891011121314151617181920212223242526272829#!/bin/bash#Description:#Author: www.mnqz.com#Created Time:#监控一个服务端口#maintemp_file=`mktemp port_status.XXX`#1、判断依赖命令telnet是否存在[ ! -x /usr/bin/telnet ]&&echo "telnet: not found command"&& exit 1#2、测试端口 $1 IP $2 port( telnet $1 $2 <<EOFquitEOF) &>$temp_file#3、分 ...
CSS3语法规范学习总结
行内样式表
行内样式表(内联样式表)是在元素标签内部的style属性中设定CSS样式。
行内样式表由于书写繁琐,没有体现结构与表现相分离的思想,只适合于修改简单的样式,不推荐大量使用。
12/*CSS的注释写法*/<div style="color: red; font-size:12px; ">码农浅知-高质量码农编程学习笔记</div>
内部样式表
内部样式表(内嵌样式表)是将所有的CSS代码抽取出来,单独放到一个style标签中,写到html页面内部。
style标签理论上可放在html的任何位置,但通常放在head标签中。
内部样式表也没有实现结构与表现的完全分离,推荐在练习时使用。
12345678910111213<head> <meta charset="UTF-8"> <title>Title</title> <style> div { color: red; ...