nginx

百万级高并发技术整体架构

我只是一个虾纸丫 提交于 2021-01-09 08:04:51
高并发是由于应用系统(如:移动APP或网站等)即页面浏览量或点击量大,单台服务器无法承载大量访问所带来的压力,因此会采用服务器硬件集群技术,用N台服务器进行分流,对于每次访问采取负载均衡策略,被分配到不同的服务器来处理请求。 负载均衡种类 一种是通过硬件来实现,常见硬件有F5,A10,NetScaler、Radware和Array等商用的负载均衡器,但是它们是比较昂贵,成本比较高。 另一种是通过软件来实现,常见的软件有LVS、Nginx、Apache等,它们是基于Linux系统并且开源的负载均衡策略。 整体架构图: 架构说明: Keepalived :是用来 检测服务器的状态,如果有一台web服务器宕机,或工作出现故障时,Keepalived将会检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。 Keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。 LVS (Linux Virtual Server):即Linux虚拟服务器,有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR),十种调度算法(rr|wrr

一个nginx服务器配置多站点

泄露秘密 提交于 2021-01-09 05:40:54
有时候你想在一台服务器上为不同的域名运行不同的站点。比如www.siteA.com作为博客,www.siteB.com作为论坛。你可以把两个域名的IP都解析到你的服务器上,但是没法在Nginx的根目录里同时运行两个不同的网站。这时候,你就需要使用虚拟目录了。假设你把博客放在”/home/user/www/blog”下,论坛放在”/home/user/www/forum”下。下面我们就开始配置了: 在Nginx配置目录下,创建一个”vhost”目录。本例假设Nginx是默认安装,配置目录在”/etc/nginx” $ sudo mkdir /etc/nginx/vhost 创建siteA的配置文件 $ sudo vi /etc/nginx/vhost/vhost_siteA.conf 输入以下配置信息 server { listen 80; # 监听端口 server_name www.siteA.com siteA.com; # 站点域名 root /home/user/www/blog; # 站点根目录 index index.html index.htm index.php; # 默认导航页 location / { # WordPress固定链接URL重写 if (!- e $request_filename) { rewrite (.*) / index.php; } }

Django项目部署

ぐ巨炮叔叔 提交于 2021-01-08 23:12:03
一、打包文件传到服务器 参考博客:https://www.cnblogs.com/wupeiqi/articles/8591782.html http://www.cnblogs.com/alex3714/p/6538374.html 示例代码下载 将本地代码打包,拷贝到服务器上。(打包: tar czvf deploy.tar deploy 解包: tar zxvf deploy.tar) mac/linux:   scp 本地文件路径 root@192.168.10.33:/data/ scp deploy.tar root@10.0.0.200:/data/ windows: filezilla https://filezilla-project.org/download.php?type=client   点点点上传 二、服务器环境准备好 安装Python3:   (http://www.cnblogs.com/wupeiqi/articles/4906230.html)    http://www.cnblogs.com/alice-bj/articles/9277961.html   1、安装gcc,用于编译Python源码     yum install gcc   2、下载源码包,https://www.python.org/ftp/python/   3

使用XHProf分析PHP性能瓶颈(二)

爱⌒轻易说出口 提交于 2021-01-08 20:29:40
上一篇文章里,我们介绍了如何基于xhprof扩展来分析PHP性能,并记录到日志里,最后使用xhprof扩展自带的UI在web里展示出来。本篇文章将讲述2个知识点: 使用xhgui代替xhprof的默认UI界面,更便于分析 使用tideways扩展替换xhprof扩展 使用更漂亮的UI: xhgui xhgui支持 XHProf , Uprofiler 或者 Tideways 扩展,也就是说,只要安装了这几种扩展中的一种即可。 本次测试中,实际使用了tideways扩展(切换为XHProf扩展后web里看不到数据,原因未知。切换为Uprofiler也没有数据。)。 xhprof虽然来自facebook但已经很久不更新,官方源已经显示This package is abandoned and no longer maintained(此包已废弃,不再维护)。tideways恰好相反,一直有商业公司在维护,并且积极的支持了PHP7。两个扩展都是开源的,综上所述我建议大家选择tideways来分析代码。 安装tideways扩展: wget https://github.com/tideways/php-xhprof-extension/archive/v4.1.5.tar.gz -O php-xhprof-extension-4.1.5.tar.gz tar xzf /php

局域网搭建YUM源

邮差的信 提交于 2021-01-08 20:24:25
先创建一个目录,作为存在rpm包的目录 mkdir /data/yumdata 拷贝ISO镜像文件中的rpm包到 /data/yumdata/ mount /dev/cdrom /mnt/ cp /mnt/Packages/*rpm /data/yumdata 小常识: 可以在/data/yumdata/下面创建子目录,然后把rpm包放到子目录下面,也可以被识别到 创建 repository createrepo /data/yumdata/ 如果rpm包有增加,需要执行 createrepo --update /data/yumdata/ 安装nginx,提供http服务 yum install epel-release yum install nginx 当然,如果无法使用yum,需要下载nginx源码包,并编译安装 配置nginx.conf,使其可以通过IP地址访问到/data/yumdata 参考配置文件: server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /data/yumdata; location / { autoindex on; //这一步必须要有,这是为了提供目录浏览 } error_page 404 /404.html; location

视频大文件分片上传(使用webuploader插件)

為{幸葍}努か 提交于 2021-01-08 19:59:31
背景 公司做网盘系统,一直在调用图片服务器的接口上传图片,以前写的,以为简单改一改就可以用 最初要求 php 上传多种视频格式,支持大文件,并可以封面截图,时长统计 问题 1、上传到阿里云服务器,13秒左右,连接被重置 2、切换到本地服务器后 413 Request Entity Too Large / nginx 第2个问题还好,一般设置一下php.ini 和 nginx.conf 文件中的上传文件大小限制即可,但却不是最佳选项,因为一个视频2G算是正常大小,因此修改上传限制到2048MB不太现实,即使修改了也会超时。 第1个问题,应该是阿里策略,不允许大文件上传,解决了第一个问题应该也会消失。 思考 首先不考虑整个文件直接上传的方案,于是搜索,发现有<b>分片上传</b>这个名词, 看了下原理,大概意思是将一个大文件按照一定尺寸进行切割,然后逐个发送到后台, 后台接收到所有的分片文件后,再组装成原文件。 遂深入,发现出自百度的 <a href="http://fex.baidu.com/webuploader/">webuploader</a> ,支持分片、并发、预览压缩、拖拽、MD5秒传等 看了几篇网上的使用案例以及官网的 getting-started.html, 总来来说网上的博客质量不高,有的浅尝辄止,有的代码缺失,有的只注重前端,有的将代码放到csdn,需要积分下载,

CentOS 6.5本地yum源、局域网离线yum仓库(断网情况下轻松安装各种依赖包)

安稳与你 提交于 2021-01-08 19:56:34
在工作中, 公司的服务器大部分都禁止连接外网的,初始化系统,测试某些产品时,往往缺一些软件或依赖包,一个个上传到机器,如此浪费时间,浪费金钱,en...yum能够自动查找并解决rpm包之间的依赖关系,需要有一个包含各种rpm软件包的repository(软件仓库),提供软件仓库的服务器习惯上成为“源”服务器,网络上有大量的源服务器,但是,由于受到网络连接速度、带宽的限制,导致软件安装耗时过长甚至失败,特别是当有大量服务器大量软件包需要升级时,更新的缓慢程序令人难以忍受,相比较而言,本地YUM源服务器最大优点在局域网的快速网络连接和稳定性,有了局域网中的yum源服务器,即便在网络连接中断的情况下,也不会影响软件升级和安装。 一、挂载本地ISO镜像方式: 1、下载yum源的DVD镜像,镜像名如下: CentOS-6.5-x86_64-bin-DVD1 2、将其宿主机的镜像挂载到linux中去: 因iso文件是宿在主机上,所有,通过vmware的文件共享,将宿主机上的iso文件挂载到/mnt/hgfs/目录下 VM--Settings--选项--共享文件夹--勾选“总是启用”点击“添加”选取本地iso文件的目录,添加后如下: 3、安装VMware Tools [root@Web-A ~]# ll /media/VMware/Tools/ 总用量 60712 -rw-r--r-- 1

shell ss命令

点点圈 提交于 2021-01-08 18:49:18
  ss命令 用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和 netstat 类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。 当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接 cat /proc/net/tcp ,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。 天下武功唯快不破。ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。 语法 ss(选项) 选项 -h:显示帮助信息; -V:显示指令版本信息; -n:不解析服务名称,以数字方式显示; -a:显示所有的套接字; -l:显示处于监听状态的套接字; -o:显示计时器信息; -m:显示套接字的内存使用情况; -p:显示使用套接字的进程信息; -i:显示内部的TCP信息; -4:只显示ipv4的套接字; -6:只显示ipv6的套接字; -t:只显示tcp套接字; -u:只显示udp套接字; -d

ss 命令

这一生的挚爱 提交于 2021-01-08 18:48:51
ss命令 用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和 netstat 类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。 当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接 cat /proc/net/tcp ,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。 天下武功唯快不破。ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。 语法 ss(选项) 选项 -h:显示帮助信息; -V:显示指令版本信息; -n:不解析服务名称,以数字方式显示; -a:显示所有的套接字; -l:显示处于监听状态的套接字; -o:显示计时器信息; -m:显示套接字的内存使用情况; -p:显示使用套接字的进程信息; -i:显示内部的TCP信息; -4:只显示ipv4的套接字; -6:只显示ipv6的套接字; -t:只显示tcp套接字; -u:只显示udp套接字; -d

Linux基础-13day-Linux系统软件管理

会有一股神秘感。 提交于 2021-01-08 08:53:46
Linu x 系统软件管理 1 、 Linux 进程管理 在计算机中,数据的存储位置一般有两种:硬盘和内存。数据存储在硬盘中交文件,存储在内存中叫进程。对硬盘中数据进行操作时,我们要知道文件名称,对内存中数据进行操作时,需要知道进程号。 硬盘中文件与内存中进程之间的关系:在执行或处理硬盘中数据时,系统需要加载到内存中执行,文件的数据被加载到内存后,就变成了进程。 2 、进程查看 2.1 ps 命令 描述: 查看系统所有进程(静态显示)。 用法: ps [参数] 主要参数: 名称 说明 a 显示当前终端下所有进程信息 u 使用以用户为主的格式输出进程信息 x 显示当前用户所有终端下进程信息 -e 显示所有进程信息,环境变量 -f 使用完整格式显示进程信息 -r 显示正在运行的进程 -l 长格式显示 au 显示较详细信息 aux 显示包含其他使用者的详细的进程信息 最常用 :ps -ef / pe aux ( 1)ps -ef [root@test ~]# ps -ef 显示信息说明: UID PID PPID C STIME TTY TIME CMD 用户ID 进程ID 父进程ID 进程占用CPU百分比 进程启动时间 进程在哪个终端上运行。 该进程实际使用CPU运行的时间 命令名称及参数 TTY值:若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。 (2) ps