- Linux 配置Nginx反向代理教程和说明 07-06
- CentOS安装nginx 07-05
- 阿里云CDN高级技术专家阙寒:Tengine直播最佳 07-06
- Redis与分布式锁详解 07-05
- Reddit 如何统计每个帖子的浏览量 07-05
- 负载均衡session共享的三种处理方法 07-06
- 尚学堂百战程序员:java和php的一些区别 07-04
- 为什么创业初期技术团队使用PHP是最好的开发语言? 07-04
- php 超级实用的SQLite3类 07-05
- PHP学习笔记简记 07-04
Linux 配置Nginx反向代理教程和说明
发布者: PHPYuan | 发布时间:2018-07-06前言Nginx是一款轻量级的Web 服务器/反向代理服务器。其特点是占有内存少,并发能力强。这里将Nginx的配置教程记录分享一下。
那么什么是反向代理呢,反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
部署教程部署环境:
3台CentOS 7.4 服务器,其中一台是nginx反向代理服务器,另外两台是web服务器。
nginx反向代理服务器:
主机名:groupe-nginx-0707,IP:192.168.1.167/24
web服务器:
主机名:groupe-nginx-0707-web1,IP:192.168.1.18
主机名:groupe-nginx-0707-web2,IP:192.168.1.217
先进行两台web服务器的配置:
[root@groupe-nginx-0707-web2 ~]# yum -y install httpd
[root@groupe-nginx-0707-web2 html]# echo "w
CentOS安装nginx
发布者: PHPYuan | 发布时间:2018-07-05CentOS版本: CentOS Linux release 7.4.1708 (Core)Nginx版本: 1.5.0
一、安装nginx所需环境
1、gcc安装 GNU Compiler Collection:GNU编译器套件
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有 gcc 环境,则需要安装.安装命令:yum install gcc-c++2、PCRE pcre-devel安装
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括perl兼容的正则表达式库.nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre 库,pcre-devel是使用pcre开发的一个二次开发库,nginx也需要此库.安装命令:yum install -y pcre pcre-devel3、zlib安装
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在 Centos上安装zlib库.安装命令:yum install -y zlib zlib-devel4、OpenSSL安装
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及阿里云CDN高级技术专家阙寒:Tengine直播最佳实践
发布者: PHPYuan | 发布时间:2018-07-06在上周刚落幕的开源人盛会IT人也迎来了开源盛会LinuxCon + ContainerCon + CloudOpen中国(简称LC3)大会上,阿里云CDN团队的高级技术专家阙寒(花名),为大家分享CDN在使用Tengine构建直播系统的一些实践。
Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,提供更强大的流量负载均衡能力、全站HTTPS服务、安全防攻击、链路追踪等众多高级特性。团队的核心成员来自于淘宝、搜狗等互联网企业,从2011年12月开始,Tengine成为一个开源项目,团队在积极地开发和维护着它,最终目标是打造一个高效、稳定、安全、易用的Web平台。
阙寒分享的题目为Tengine直播最佳实践,整个分享分为三个部分,第一部分是对直播整体介绍和音视频知识普及,第二部分是系统软件的架构,第三部分是和服务质量相关的内容。以下为分享内容全文。
在分享的最初,阙寒简单介绍了阿里云直播的整体解决方案,覆盖了推流端、直播中心、CDN分发网络和播放端。推流端一般是通过DNS调度后访问就近的CDN节点,将直播流推到边缘节点,经过边缘节点加速后经过直播中心,在直播中心进行转码、截图、录制、水印、切片等直播处理,播放的时候也是先经过DNS调度,访问就近的边缘节点,当节点MISS的情况下,会访问
Redis与分布式锁详解
发布者: PHPYuan | 发布时间:2018-07-05前言
分布式锁一般有三种实现方式:
1. 数据库乐观锁;
2. 基于Redis的分布式锁;
3. 基于ZooKeeper的分布式锁。本篇将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇将详细介绍如何正确地实现Redis分布式锁。
可靠性
首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:
互斥性。在任意时刻,只有一个客户端能持有锁。不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。解铃还须系铃人。加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了。代码实现
组件依赖
首先我们要通过Maven引入Jedis开源组件,在pom.xml文件加入下面的代码:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
&
Reddit 如何统计每个帖子的浏览量
发布者: PHPYuan | 发布时间:2018-07-05之前没听过也没了解过 HyperLogLog,通过翻译这篇文章正好简单学习下。欢迎指正错误~
我们想要更好的向用户展示 Reddit 的规模。为了这一点,投票和评论数是一个帖子最重要的指标。然而,在 Reddit 上有相当多的用户只浏览内容,既不投票也不评论。所以我们想要建立一个能够计算一个帖子浏览数的系统。这一数字会被展示给帖子的创作者和版主,以便他们更好的了解某个帖子的活跃程度。
在这篇博客中,我们将讨论我们是如何实现超大数据量的计数。
计数机制
<负载均衡session共享的三种处理方法
发布者: PHPYuan | 发布时间:2018-07-06百度百科给出的解释是:负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。直白点就是,首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。从而提高性能,和吞吐量;但是负载均衡有一个问题就是不同的服务器间进行session共享问题的处理;肯定不可能每分配到一个服务上让用户进行一次登录,这样的用户体验会是极差的;
负载均衡采用的是使用nginx进行反向代理,进行分配流量,nginx的安装和使用:
1,下载Nginx的安装包,http://download.csdn.net/download/qq_34125349/10115583
2,
1.打开conf打开nginx.conf进行配置负载均衡
upstream localhost {
server localhost:8080 weight=1;
server localhost:18080 weight=1;
}
3.修改 Nginx 端口号不与 T
尚学堂百战程序员:java和php的一些区别
发布者: PHPYuan | 发布时间:2018-07-04编程范式:
Java:纯面向对象的语言,有人说过:Java中一切皆对象!当然咯,人们都忘了Java的八种基本数据类型:int、double、boolean、byte、float、 long、short、char。但是念在每个Java每个基本数据类型都有包装类(int的包装类是Integer)的基础上,就姑且认为一切是对象吧。
PHP:即使用可面向对象的方式编程,又可使用面向过程的方式。这种两种编程范式结合的语言代表了计算机语言以后的一个发展趋势,在Scala、Golang、Python中都有体现。
java和PHP的发展空间对比
安卓势头很猛,但手机安装app数量有限,推广难,也是app面临的最大挑战,好在安卓只有JAVA可以做,除此之外就是HTML5了。
中国人口占全球人口19.7%,中国网民占全球网民22.4%,中国网站数量占全球网站数量的0.5%,网站的可发展空间可
为什么创业初期技术团队使用PHP是最好的开发语言?
发布者: PHPYuan | 发布时间:2018-07-04互联网技术飞速发展,各种技术开发语言应运而生。主流的语言有java、C++、asp.net、php等,这么多开发语言的存在,为什么创业初期技术团队使用PHP是最好的开发语言?
1、创业初期团队需要工作效率
php市场上开源的代码很多,这样可以提升很大的工作效率。程序员在遇到难点后可以及时找到解决方案,所以站在效率上php开发非常高。
总结:效率高
2、php代码占内存小
很小的内存占有量,是大家极致的追求。php开发出来的网站或者软件打开速度高,浏览体验佳。
总结:内存小
3、php程序员需求量大
目前市场上有许多外包公司,开发网站、app等产品,大多数程序员使用的开发语言就是php,站在找工作的角度上,php容易就业。
总结:就业需求大
所以,我认为创业初期技术团队使用PHP是最好的开发语言。
php 超级实用的SQLite3类
发布者: PHPYuan | 发布时间:2018-07-05突如其来的代码!!!
class SQLite
{
function __construct($file)
{
try
{
$this->connection=new PDO('sqlite:'.$file);
}
catch(PDOException $e)
{
try
{
$this->connection=new PDO('sqlite2:'.$file);
}
catch(PDOException $e)
{
exit('error!');
}
}
}
function __destruct()
{
$this->connection=null;
}
function query($sql) //直接运行SQL,可用于更新、删除数据
{
return $this->connection->query($sql);
}
function
PHP学习笔记简记
发布者: PHPYuan | 发布时间:2018-07-04共8种数据类型
4种标量类型
布尔型、整型、浮点型和字符串型
2种复合类型
数组和对象
2种特殊类型
资源和null
字符串单引号和双引号的区别
字符串双引号输出变量会替换成实际数值,单引号输出变量按普通字符串输出。
另外,对应转义字符的使用,单引号输出只要注意“ ’ ”写为“ \’ ”即可,双引号输出还有注意“ " ”、“ $ ”等
单引号执行效率更高,双引号要耗费时间解析变量和转义字符。
数组是一组类型相同是数据集合;
定义数组方法:
$array = ('value1', 'value2', 'value3'…)
或
$array[key] = value
或
$array = array(key1 => value1, key2 => value2…)
资源又叫做句柄,保存到外部资源的一个引用,资源是通过专门的函数来建立和使用的;
在使用资源时,系统会自动启用垃圾回收机制,所以资源很少需要手动释放。
null不区分大小写,所以null和NULL效果一样;
空值有三种情况:还没有被赋任何值、被
