关于EDM邮件涉及的MX记录、A记录和反向解析 本文主要描述:关于EDM邮件涉及的MX记录、A记录和反向解析 涉及到mx记录,mx记录查询,mx记录设置,查看mx记录,mx记录指向,怎么设置mx记录, 背景知识: 什么是MX记录? 用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。例如,当收件人为“user@mydomain.com”时, 系统将对“mydomain.com”进行DNS中的MX记录解析。如果MX记录存在,系统就根据MX记录的优先级, 将邮件转发到与该MX相应的邮件服务器上。 什么是正向解析? 比如你在万网注册的域名, www.55tuan.com ,在万网登录后域名管理界面上增加了一个MX记录,指向邮件服务器121.11.24.146。这就叫正向解析。 什么是A记录? A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置域名的子域名。 什么是反向解析? DNS服务器里有两个区域,“正向查找区域”和“反向查找区域”,反向查找区域即IP反向解析,它的作用就是通过查询IP地址的PTR记录来得到该IP地址指向的域名。 举例,用 info@news.gaopeng.com 作为发件人给用户邮箱 a@163.com 发邮件。网易的邮件服务器接到这封邮件,就会查看邮件头。邮件头里会显示这封邮件是由哪个IP地址发出来的,如: Received: from mta406.us.news.gaopeng.com(mta406.us.news.gaopeng.com [208.50.56.68]) 那么208.50.56.68就是发送邮件的SMTP服务器IP地址。然后根据这个IP地址进行反向解析,如果反向解析到这个IP所对应的域名确实是 mta406.us.news.gaopeng.com,那么就接受这封邮件。如果反向解析发现这个IP没有对应到 news.gaopeng.com ,那么就拒绝这封邮件。 注1:反向解析的域名的A记录一定要指向该IP。 注2:反向解析跟域名注册商无关,是给你分配IP地址的IDC机房做的。所以有时候会存在费用问题。 反向解析的过程在Windows下可以模拟为: 命令行:nslookup -qt=ptr 输入你要查的IP地址,如下所示: > 208.50.56.68 非权威应答: 68.56.50.208.in-addr.arpa name = mta406.us.news.gaopeng.com 什么是SPF记录: 全称是Sender Policy Framework,即发信者策略架构,通常直接称为SPF。 SPF是为了防范垃圾邮件而提出来的一种DNS记录类型,它是一种TXT类型的记录,它用于登记某个域名拥有的用来外发邮件的所有IP地址。 举例,还是用nslookup查看美团的SPF记录: C:\>nslookup > set type=txt > meituan.com 非权威应答: meituan.com text = "v=spf1 ip4:58.83.134.224/27 ip4:59.151.43.32/27 ip4:211.151.229.32/27 i p4:211.151.229.64/26ip4:211.151.229.128/28 ip4:173.45.234.162 ip4:173.45.238.15 5 ip4:72.14.188.19include:aspmx.googlemail.com -all" 检查您的域名的MX解析记录设置是否正确的步骤如下 可以:在运行中输入cmd回车,打开命令提示符,输入nslookup -q=mx mydomain.com便可检查MX记录是否生效。 也可: 1) 在Windows系统中点击"开始"菜单→"运行"→"输入cmd"(Windows98系统为command),打开windows系统的MS-DOS界面。输入"nslookup"命令,进入域名解析界面。 2) 输入" set q=mx "回车,进入MX记录查询状态 输入您公司邮件服务器的主域名,即为用户邮件地址的"@"之后的部分 如:hichina.com等 本文以hiChina.com为例返回如下大致信息(蓝色部分为注释): > hichina.com Server: 218.106.248.21 --这是当前所使用的DNS主机名 Address: 218.106.248.21#53 --这是当前所使用DNS主机地址 Non-authoritative answer: hichina.com mail exchanger = 10 mx.hichina.com. --这是china.com的MX记录指向的主机名 3) 规范的MX记录应当由主域解析出一个主机名(本例中是mx.hichina.com),再由此主机名解析出一个或多个IP地址(本例中是221.122.57.45)。 4) 注意:域名解析修改和添加只是在域名提供商的个别DNS上修改,其他人所使用的DNS服务器未必和您申请域名解析的DNS服务器相同,因此当您的域名添加或者修改后,只有等DNS服务器之间资料同步后才能看到正确的解析结果。万网的解析记录设置完毕后的生效时间为60分钟。其它服务器一般解析生效时间在同一个地区的同步可能需要几小时,全国DNS同步可能需要1-2天,全球DNS同步可能需要更长时间,因此域名解析更改后无法立刻生效。 随手笔记 2017-05-21 评论 1919 次浏览
apache的ab命令压测 apache的ab命令压测: 2.在学习使用ab命令之前,首先要了解压力测试的几个概念:(自己可以上网查下具体的概念) 吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。 计算公式:总请求数 / 处理完成这些请求数所花费的时间,即 Request per second = Complete requests / Time taken for tests 并发连接数(The number of concurrent connections) 概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。 并发用户数(The number of concurrent users,Concurrency Level) 概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。 用户平均请求等待时间(Time per request) 计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即 Time per request = Time taken for tests /( Complete requests / Concurrency Level) 服务器平均请求等待时间(Time per request: across all concurrent requests) 计算公式:处理完成所有请求数所花费的时间 / 总请求数,即 Time taken for / testsComplete requests 可以看到,它是吞吐率的倒数。 同时,它也=用户平均请求等待时间/并发用户数,即 Time per request / Concurrency Level 3.ab工具的介绍 ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。 安装: 1.公司应该有程序员吧,可以安装一个wamp或者phpstudy,这样apache服务器和mysql数据库都有了,一举多得 文件位置:打开你安装的apache的位置:找到 bin文件夹下面的ab.exe 在该文件夹下打开命令行,输入 ab.exe -help 对上面的Options做下解释吧: -n即requests,用于指定压力测试总共的执行次数。 -c即concurrency,用于指定压力测试的并发数。 -t即timelimit,等待响应的最大时间(单位:秒)。 -b即windowsize,TCP发送/接收的缓冲大小(单位:字节)。 -p即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。 -u即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。 -T即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。 -v即verbosity,指定打印帮助信息的冗余级别。 -w以HTML表格形式打印结果。 -i使用HEAD请求代替GET请求。 -x插入字符串作为table标签的属性。 -y插入字符串作为tr标签的属性。 -z插入字符串作为td标签的属性。 -C添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。 -H添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。 -A添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。 -P添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。 -X指定使用的代理服务器和端口号,例如:"126.10.10.3:88"。 -V打印版本号并退出。 -k使用HTTP的KeepAlive特性。 -d不显示百分比。 -S不显示预估和警告信息。 -g输出结果信息到gnuplot格式的文件中。 -e输出结果信息到CSV格式的文件中。 -r指定接收到错误信息时不退出程序。 -h显示用法信息,其实就是ab -help。 4.实际测试: 5.分析上面的压测结果: Server Software: Apache/2.2.25 (服务器软件名称及版本信息) Server Hostname: www.xxx.com(服务器主机名) Server Port: 80 (服务器端口) Document Path: /lol (供测试的URL路径) Document Length: 0 bytes (供测试的URL返回的文档大小) Concurrency Level: 100 (并发数) Time taken for tests: 0.800 seconds (压力测试消耗的总时间) Complete requests: 100 (压力测试的的总次数) Failed requests: 0 (失败的请求数) Total transferred: 16342 bytes (传输的总数据量) HTML transferred: 0 bytes (HTML文档的总数据量) Requests per second: 125.03 [#/sec] (mean) (平均每秒的请求数) Time per request: 799.805 [ms] (mean) (所有并发用户(这里是100)都请求一次的平均时间) Time per request: 7.998 [ms] (mean, across all concurrent requests) (单个用户请求一次的平均时间) Transfer rate: 19.95 [Kbytes/sec] received (传输速率,单位:KB/s) 在上面的测试中,我们设置的压力测试总次数以及并发数并没有让服务器感觉到什么「压力」,现在我们再来看一个「压力山大」的执行命令:ab -n 1000 -c 100 localhost/index.php,这个时候apache就直接罢工——拒绝访问了: D:\study\Apache\bin>ab -n 100 -c100 http://www.xxx.com/lol; This is ApacheBench, Version 2.3 <$Revision: 1748469 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ 在上面的压力测试中,Apache使用的是默认配置,并没有经过任何优化措施处理。实际上,Apache在经过配置优化 后,只要服务器硬件够用,Apache服务器是能够撑起1000的并发量的。 随手笔记 2017-04-25 评论 1958 次浏览
关于find命令的小折腾 昨天晚上写的脚本,今天搞了一天没有弄清楚执行的目录为什么不对,在群里和一些朋友讨论了半天,对我的语法严谨性做了批判,同时对我的变量调用不清晰做了一些指导,名称要简单直接,但是我在脚本里的目的是为了让备份后的东西看起来简单直接,如果代码里的东西简单直接了,后期的维护就比较难做,不过有一些建议我还是要听取的,代码的整洁性必须要有,不仅仅是让自己看懂,对于操作的目的也应该简单的标识,对于复合的脚本采用函数包装,模块化操作,方便维护的同时保持代码的可读性。 总之就是受教了,find命令在操作对象前应加目录,如果是已经cd到该目录则find ./目标地址/文件 -type……如果没有cd到该目录则写入完整目录。 随手笔记 2017-03-25 评论 1970 次浏览
网站建构简介 架构的设计要考虑今后的扩容和升级,架构的设计绝不是一成不变的。 架构的升级完全是个人的经验,经验是什么?经验就是去经历别人的笑话。 下面就以10万PV的网站作为示例来讲一讲: 对于一个网站来讲,访问量有IP和PV之分。 IP指的是有多少个IP访问到站点 PV指的是所有点开的页面,即每个IP对应的是一个人,而这个人可能会点开很多的子链接,这些子链接就是PV。PV才代表一个服务器的压力。 一般来说,我们运维讲的访问量指的是高峰时期的访问量,而不是一天的访问量。这样才具有实际意义。 在架构之中,MySQL是大爷,它越是清闲所支持的访问量越大,目前没有代替MySQL的方法,MYSQL的性能不是很好,在数据库搜索的时候尽量避免跨库,跨表大数据搜索。 缓存是有效解决数据库压力的方式。 主从数据库备份:从数据库不能更改,它所有的数据只有一个来源,从主数据库备份。也就是说,网页的数据不能只接写到从数据库里面,而是写到主数据库里面,但是从数据库能够被读取。 如果访问量过大,我们可以搭建从服务器集群。这就是做MySQL优化的核心思想——读写分离。 CND:内容分发,不需要自己搭建,大的运营商都有提供。因为南北网络的问题,最早解决不同区域访问速度,在北京、上海等主要城市各搭建一组服务器,这是被迫这么做的,因为要提升用户的体验。 这时候各大运营商看到了商机,于是运营商将服务器租出去,但是这样有一定的局限性,这些服务器上只能放一些静态的东西,图片、动画等。 在网站的架构中,静态的东西一定要单独存放,不要放入数据库中,以减轻数据库的压力,在数据库中只有动态的数据,这叫做动静分离,即需要放在数据库中才放,但是这都是概念,真正实现起来很困难。 DB连接池:一般来说对数据的一次完整的操作为打开数据库-->执行查找数据-->关闭数据库-->返回查询结果。这是一个非常消耗资源的过程,但是DB连接池解决了打开、关闭数据库的消耗,DB连接池会事先打开很多数据库,在有进程请求时,DB连接池就将已经打开的数据库分配过去,使用完之后进程不需要关闭还给DB连接池,即DB连接池作为数据库的入口管理。 对服务器来说,一般都有RAID卡,会导致无法识别U盘无法识别,一般使用光盘。 GHOST刻录工具,一块硬盘作为主盘,其他硬盘作为从盘进行刻录。Ghost应当在PE中启动,否则不能完成刻录。对于一个装有系统的用盘来说,只有系统安装的分区会被激活,在我们刻录的时候结束时要将从盘移除,否则重启会造成系统的错乱。 随手笔记 2017-01-09 评论 1675 次浏览
Shell中判断字符串是否为数字的6种方法 ## 方法1 a=1234;echo “$a”|[ -n “`sed -n‘/^[0-9][0-9]*$/p’`” ] && echo string a is numbers 第一个-n是shell的测试标志,对后面的串”`sed -n ‘/^[0-9][0-9]*$/p’`”进行测试,如果非空,则结果为真。 sed默认会显示所有输入行信息的,sed 的“-n”选项是让sed不要显示,而只显示我们所需要的内容:即后面的表达式所匹配的行,这是通过表达式中加入“p”命令来实现的。 /^[0-9][0-9]*$/他的含义是匹配至少由一位数字构成的行 ## 方法2, 可以,不过不是bash实现的,是使用了grep的正则 #if grep ‘^[[:digit:]]*$’<<< "$1";then # echo "$1 is number." #else # echo'no.' #fi ## 方法3 #if [ "$1" -gt 0 ] 2>/dev/null ;then # echo “$1 is number.” #else # echo ‘no.’ #fi ## 方法4,case #case “$1” in # [1-9][0-9]*) # echo “$1 is number.” # ;; # *) # ;; #esac ## 方法5,awk #echo $1| awk‘{print($0~/^[-]?([0-9])+[.]?([0-9])+$/)?”number”:”string”}’ ## 方法5,awk #if [ -n “$(echo $1| sed -n“/^[0-9]\+$/p”)” ];then # echo “$1 is number.” #else # echo ‘no.’ #fi ## 方法6,expr expr $1 “+” 10 &> /dev/null if [ $? -eq 0 ];then echo “$1 is number” else echo “$1 not number” fi 随手笔记 2017-01-06 评论 1751 次浏览
echo语法加亮规则 echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。 linux的echo命令,在shell编程中极为常用, 在终端下打印变量value的时 候也是常常用到的, 因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段 文字,一般起到一个提示的作用。 echo(选项)(参数) 选项 -e:激活转义字符。使用-e选项时,若字符串中出现以下字符, 则特别加以处理,而不会将它当成一般文字输出: \a 发出警告声; \b 删除前一个字符; \c 最后不加上换行符号; \f 换行但光标仍旧停留在原来的位置; \n 换行且光标移至行首; \r 光标移至行首,但不换行; \t 插入tab; \v 与\f相同; \\ 插入\字符; \nnn 插入nnn(八进制)所代表的ASCII字符; 参数 变量: 指定要打印的变量。 用echo命令打印带有色彩的文字: 文字色: echo -e"\e[1;31mThis is red text\e[0m" This is red text \e[1;31m 将颜色设置为红色 \e[0m 将颜色重新置回 颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33, 蓝色=34,洋红=35,青色=36,白色=37 背景色: echo -e "\e[1;42mGreed Background\e[0m" Greed Background 颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43, 蓝色=44,洋红=45,青色=46,白色=47 文字闪动: echo -e"\033[37;31;5mMySQL ServerStop...\033[39;49;0m" 红色数字处还有其他数字参数:0 关闭所有属性、 1 设置高亮度(加粗)、4 下划线、5 闪烁、7 反显、8 消隐 随手笔记 2017-01-03 评论 1632 次浏览