Home >
  • 【理论】Nginx的内置变量和作用

    从网上找到的关于Nginx 内置变量的相关解释,工作中会经常用到,在此记录下。 Nginx的内置变量: $args, 请求中的参数; $is_args, 如果已经设置$args,则该变量的值为“?”,否则为“”。 $content_length, HTTP请求信息头里的"Content-Length"; $content_type, 请求信息头里的"Content-Type"; $document_root, 针对当前请求所属的root指令设置的根目录路径; $document_uri, 与$uri相同; $host, 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名; $limit_rate, 对连接速率的限制; $request_method, ...
    阅读全文 →
  • 【理论】Nginx “upstream”模块详解和各负载均衡模式对比测试

    二手攻城狮  /
     / 应用服务
    负载均衡配置格式: 通常多个应用实例来做负载均衡是优化资源利用、最大化吞吐量、减少延迟、确保容错配置。Nginx可以通过不同的部署方案作为非常有效的HTTP负载均衡器,代理流量到后端服务器组。 首先,你得通过upstream设定后端服务器,这个指令放在http块里,分组里的服务器通过指令server配置,服务器可以写成IP地址与端口、域名、UNIX套接字(socket)等方式,其中如果域名可以被解析为多个地址,则这些地址都作为backend,下面是一个例子: upstream backend { server www.ceshi.com; server 145.223...
    阅读全文 →
  • 【工作】指定Tomcat的初始化内存和JDK版本

    写在前面: 有时候有些Tomcat程序运行时需要指定的JDK版本和初始化内存大小,而有些系统自带的JDK版本太低,无法满足需求,所以我们需要更改Tomcat的配置文件,指定这些参数。 配置方法: 配置方法很简单,就是在Tomcat的启动脚本中修改和添加相关参数即可,下面是Linux上修改的方法。 # vim /opt/apache-tomcat-7.0.28/bin/catalina.sh 添加如下内容: #指定tomcat使用的jdk版本(先安装好) export JAVA_HOME=/opt/jdk1.7.0_76 #指定初始化内存大小为1G,最大为2G export JAVA_OPTS="-server -Xms1G -Xmx2G -X...
    阅读全文 →
  • 【工作】解决Nginx访问日志中报favicon.ico文件404错误

    二手攻城狮  /
     / 工作记录, 应用服务
    报错现象: 经常会在Nginx虚拟主机的访问日志里有"GET /favicon.ico HTTP/1.1" 404 288 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)"这样的报错,但是又不影响访问,决定解决这个报错问题。 favicon.ico的作用: 一般用于作为缩略的网站标志,它显示在浏览器的地址栏、浏览器标签上或者在收藏夹上(如下图),是展示网站个性的缩略logo标志,也可以说是网站头像,目前主要的浏览器都支持favicon.ico,一般访问网站时候会自动搜寻网站下的/favicon.ico 文件(如果在网页上没有特别指明...
    阅读全文 →
  • 【理论】HTTP状态码大全

    1xx – 信息提示 从100到199范围的HTTP状态码是信息报告码。基于各种原因考虑,大多数情况下我们 是很少看见这些代码的。首先,如果一个浏览器尝试访问一个网站,而网站返回这些代码时,它们往往都不会显示在屏幕上。它们只是浏览器使引用的内部码。另 外,这些代码不常见的另外一个原因是起初HTTP标准不允许使用这一范围的状态码。就其本身而言,它们也一直没有被广泛地使用。 状态代码 状态信息 含义 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新) 101 Switching Pro...
    阅读全文 →
  • 【工作】Nginx限制IP并发连接数和请求数的研究

    二手攻城狮  /
     / 工作记录, 应用服务
    写在前面: 公司最近需要对某个虚拟主机进行用户并发链接限制,具体需求是当某个IP超过指定的链接数时,返回服务繁忙的提醒页面。 实现过程: Nginx限制IP连接数使用的是ngx_http_limit_conn_module模块,可以通过这个模块的中“limit_conn_zone”和“limit_conn”两个参数实现。   Nginx限制请求数使用的是ngx_http_limit_req_module模块,可以通过这个模块中“limit_req_zone”和“limit_req”两个参数实现。 ngx_http_limit_conn_module模块研究: limit_conn_zone: 功能:用于定义一个zone,该zome将会被用于存储会话...
    阅读全文 →
  • 【理论】Nginx连接数、请求数限制应用详解

    需求 秒杀、抢购并发限制、队列缓冲 下载带宽限制 防止攻击 nginx连接数限制模块 说明:nginx有很多模块、模块下面又分很多指令,下面就说说limit_conn_zone和limit_conn两指令 1、limit_conn_zone 语法: Syntax: limit_conn_zone key zone=name:size; Default: — Context: http nginx配置分为三个段:http、server、location,大概格式如下: http { server { listen 80; server_name www.tomener.com tomener.com; location / { ro...
    阅读全文 →
  • 【工作】实现Nginx每天自动切割日志功能

    写在前面: 由于公司网站之前没有做过日志切割,造成Nginx日志文件不断增长达到了几百G,现在要监控访问日志,这么大的日志分析起来非常不方便,所以现在需要每天把Nginx日志文件切割,然后以时间命名备份起来,方法如下: 方法一: 写脚本放到定时任务中,每天零点把旧的日志移动到备份目录中,并对nginx进程发送USR1信号使其重新生成日志并写入数据,然后删除60天之前的备份。   创建备份目录,并编写脚本: # mkdir -p /opt/nginx-1.9.3/logs/logs_bak # vi /opt/nginx-1.9.3/sbin/cut_nginx_log.sh   #!/bin/b...
    阅读全文 →
  • 【基础】Linux 开启telnet远程登录服务

    1.首先检查服务器是否安装telnet-server软件 # rpm -qa telnet-server 2.如果没有安装可以使用yum或者下载rpm包安装 # yum install telnet-server 3.开启telnet服务 # vim /etc/xinetd.d/telnet disable         = yes  改成--------> disable         = no 4.重启xinetd服务 # service xinetd restart 5.远程登录查看是否成功 [[email protected] ~]# telnet 172.16.20.227 Trying 172.16.20.227... Connected to 172.16.20.227. Escape character is '^]'. CentOS release 6.7 (Final) Kernel 2.6.32-573.el6.x86_...
    阅读全文 →
  • 【工作】解决服务器重启后bond网卡无法正常通信

    写在前面: 之前另外一个事业部刚成立时候没有运维,他们业务的所有服务器都由我们这边来安装配置,后来他们有自己的运维后,服务器和权限逐步移交过去了,但是最近那边运维反应我们之前装的一台服务器重启后,Web服务不能正常访问,希望帮忙查下问题。 问题描述: 这台服务器是他们前端Web服务器,上面配置的外网地址,现在现象是网站无法正常访问,通过telnet 80端口发现有时候成功有时候不成功。 解决过程: 经过排查防火墙等配置,发现没有问题,根据现象查看网卡配置,发现其中一个网卡的MAC地址跟bond的MA...
    阅读全文 →
  • 【工作】Zabbix 高可用架构的实现

    写在前面: 此文是之前公司领导让研究下zabbix的高可用时,在测试环境做的搭建笔记,后来因为一些原因推迟上线了,再后来离职了,毕竟是花费时间研究了,记录下以供参考和指点。 一、架构设计及环境规划: 架构设计图: 架构设计说明: 1. 基础架构为LAMP环境,采用keepalived实现zabbix服务器高可用,保证主server的mysql或者httpd宕掉后能切换到从server 2、数据库做主主同步,保证两边服务器数据的一致性,实现数据库的高可用。 3、采用unison同步软件保证不管修改那台服务器配置,zabbix配置目录及web目录内...
    阅读全文 →
  • 【工作】解决Linux系统使用unzip解压后中文名乱码问题

    写在前面: 之前的一些工作遇到的问题都是以笔记的形式记录,现在开了博客后,打算把之前觉得有用的笔记放到博客上,帮助别人的同时,自己没事还能温故知新一下,一举两得。 问题现象: 如文章标题所说,Linux系统使用unzip解压zip软件包后,中文名乱码   问题原因: 此问题是由于zip格式的缺陷,zip文件格式中没有字段标志出文件名的编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,由于zip文件中没有声明其编码,所以 linux上的unzip一般以默认编码UTF8解压,因此,导致这些zip文件在Linux下解压时出...
    阅读全文 →
  • 【实战】MySQL数据库的优化

    我们究竟应该如何对MySQL数据库进行优化?下面我就从MySQL对硬件的选择、MySQL的安装、my.cnf的优化、MySQL如何进行架构设计及数据切分等方面来说明这个问题。 服务器物理硬件的优化 在挑选硬件服务器时,我们应该从下面几个方面着重对MySQL服务器的硬件配置进行优化,也就是说将项目中的资金着重投入到如下几处: 1、磁盘寻道能力(磁盘I/O),我们现在用的都是SAS15000转的硬盘,用6快这样的硬盘作RAID1+0。MySQL每一秒钟都在进行大量、复杂的查询操作,对磁盘的读写量可想而知,所以,通常认为磁盘I/O是约制MyS...
    阅读全文 →
  • 【理论】关于TCP/IP传输层的知识点

    java_mzd  /
     / 基础知识
    关于TCP/IP传输层的20个问题: 1. 传输层的主要功能是什么? 2. 传输层如何区分不同应用程序的数据流? 3. 传输层有哪些协议? 4. 什么是UDP协议? 5. 为什么有了UDP,还需要TCP? 6. 什么是TCP协议? 7. 怎么理解协议和程序? 8. TCP是否真的有链接? 9. 链接是如何建立的(逻辑上)? 10. 所谓的建立TCP链接开销很大,具体是指什么? 11. 三次握手的目的是什么? 12. TCP如何提供可靠性? 13. 什么是预期确认?什么是肯定确认与重新传输?哪些情况会重传? 14. TCP中,序列号和应答号有哪些作用? ...
    阅读全文 →
  • 【工作】MySQL MHA+Atlas读写分离集群搭建详细记录

    二手攻城狮  /
     / 工作记录, 数据存储
    写在前面: 1.对于MySQL读写分离的实现,很早之前在看一些技术书和文章时候都了解过,但是系统的搭建和研究并没有。而目前公司得数据库架构基本是主主模式,考虑到今后数据访问量的提升,正好最近工作不是太忙,可以空出一些时间,决定仔细研究下MySQL读写分离集群的搭建。 2.本文可以说原创也可以说不是,因为是结合了很多网上的文档和文章编写出来的,而说原创的话,是因为所有的过程都是自己研究并记录的,包括对网上的一些文章中没有解决的问题和一些写的错误的地方都进行了改善和记录。当然本文也有很多不完...
    阅读全文 →
  • 【案例】唯品会NoSQL平台自动化发展及运维经验分享

    作者:赵新宇  /
     / 企业案例, 数据存储
    整个分享的提纲大概是这样一个过程:前半部主要围绕自动化运维进行介绍,后半部围绕Twemproxy改造及负载均衡相关,最后分享两个不好排查的运维问题。 在介绍自动化运维之前先看一下我们目前的平台背景。目前我们托管的业务主要是MC和Redis、中间层以及load balance服务。从图中可以看到,2015年上半年的增长超过了过去几年的积累,其中14年下半年的增长也占前几年积累的一半。全部的NoSQL实例已经接近3000,绝大多数业务是Redis.   整个一年里规模翻了3倍,业务的快速发展,导致运维DBA疲于奔命,持续重复...
    阅读全文 →
  • 【工作】Tomcat参数配置错误导致CPU使用率飙升至好几百

    二手攻城狮  /
     / 工作记录, 应用服务
    问题描述: 线上环境的das项目的 full gc 频繁, 且导致 cpu 飙至好几百,如下图: 解决办法: 通过dump 文件分析,org.apache.coyote.http11.InternalOutputBuffer  81个对象占用 48%内存,   根据经验定位为tomcat参数没配置好,在tomcat的server.xml文件中删除下面参数: maxPostSize="10485760" maxHttpHeaderSize="10485760"   重启tomcat服务后,问题解决。   参数说明: maxPostSize:Tomcat 默认的post参数的最大大小为2M, 当超过时将会出错,可以配置maxPostSize参数来改变大小。”0” 表示不限制大小...
    阅读全文 →
  • 【案例】 魅族多机房部署方案

    何伟  /
     / 企业案例, 技术思维
    我们为什么要做多机房部署 对于阿里投资魅族大家都知道了,魅族也放开了手机从原来的小而美,真正走向大众需求,屏幕也从15:9走向了16:9,这也带来了业务的高速增长,用户量暴增,应用商店日PV达到了2.5亿、在线音乐达到了2.3亿、同步数据量也达到了300亿条记录。    面对关键业务量的暴增,单机房扩展困难,同时还面临着单机房无法容灾的问题,所谓技术再强,扛不住挖掘机,因此多机房部署迫在眉睫。 技术挑战 多机房面临的挑战   想要部署多机房,面临着数据一致性难以保障、跨机房专线昂贵、无保障、流量怎么...
    阅读全文 →
  • 【案例】大数据量下,58同城mysql实践

    微信号:架构师之路  /
     / 企业案例, 数据存储
    WOT(World Of Tech)2015,互联网运维与开发者大会将在北京举行,会上58同城将分享《大数据量下,58同城mysql实战》的主题,干货分享抢先看。 零、分享提纲 1)基本概念 2)常见问题及解决思路 3)拆库实战 4)拆库后业务实战 5)总结 一、基本概念 二、大数据量下,mysql常见问题及解决思路 1)常见问题 如何保证可用性? 各色各异的读写比,怎么办? 如何做无缝倒库,加字段,扩容? 数据量大,怎么解决? 2)解决思路 2.1)可用性解决思路:复制 读库可用性 从库复制多个,例如:1主2从 从库挂了读主库,例...
    阅读全文 →