Tengine

Docker容器的Tengine实践

岁酱吖の 提交于 2019-12-02 16:16:33
作为目前最火的应用, Docker 确实存在着其独到之处,无论是程序猿还是运维都应该听说过 Docker 的大名,Docker 已经走过了许多的坑,应该说是完全能承载开发使用和运维监控,这款工具能帮助我们高效的打包、发布和运行承载着应用程序的容器系统。而且收集日志、帮助 App 的快速开发都有很大作用。 容器和虚拟机,经常是被拿出来对比的两款产品,实际上两者有着根本的差别,虚拟机是完全模拟了一台真实计算机,在上面运行的系统可能或者不可能知道自己运行在虚拟化环境下,并且虚拟机承载了将用户指令转换为特权指令的功能,所以虚拟机非常复杂,但是很完备,而 Docker 则完全不同。Docker 使用主机自身的 Linux 内核,然后从镜像中产生磁盘目录和软件,所有的进程都运行在主机上,如果有兴趣的话完全可以 ps aux 查询一下,就能发现在 Docker 中运行的进程,只不过 Docker 对其做了如同 chroot 差不多概念的封装。 Docker 真正用法 在 Docker 发展的早期,由于 busybox 等轻量化镜像不完备,所以各大发行版的缩减瘦身镜像得到了更多的使用,特别是由于 Docker 本身是在 Ubuntu 环境下开发的,所以 Ubuntu 和 Debian 在很多镜像中作为基镜像,以此作为基础产生目标镜像。但是随着在实践中的使用,其弊端也暴露出来了,就是太过于重量化

Tengine初体验——ubuntu安装tengine

江枫思渺然 提交于 2019-12-02 06:40:39
最近团队在搞前端创新,准备引入一些新技术,在同事发的邮件中,看到了淘宝基于nginx开发的静态服务器——Tengine。在“one company”的理念下,公司静态服务器很有可能从独角兽切换到Tengine。现在提前研究下。 对前端而言,Tengine能带来什么? * 合并多个CSS、JavaScript文件的访问请求变成一个请求; * 强制GZip压缩; 以上2点对一个前端来说,就已经很有吸引了,不是么? Tengine在2011年底,已经成为一个开源项目。更多介绍可以参考下官网。 官网传送门:http://tengine.taobao.org/index_cn.html 本人的机器是ubuntu,所以下面的安装步骤就是ubuntu的安装步骤了。 1.安装tegine编译库 gcc, zlib1g-dev, libpcre3, libpcre3-dev这些库文件是必须的,会没办法编译tegine ubuntu安装命令: apt-get install gcc libpcre3 libpcre3-dev zlib1g-dev 2.获取tegine,可以通过git或直接下载tar包 (1)克隆源代码:Git clone https: https://github.com/taobao/tengine ~/tengine (2)安装包地址:http://tengine.taobao

CentOS6.5安装TEngine(Nginx)

对着背影说爱祢 提交于 2019-12-02 06:40:29
要点,先安装编译器、pcre库、openssl库 1.安装编译器,输入命令 yum install gcc yum install gcc-c++ 2.安装pcre库 yum install pcre-devel 3.安装openssl库 yum install openssl-devel 1.下载TEngine,tengine-1.5.2.tar.gz,放到目录/home/tengine下 2.输入命令tar zxvf tengine-1.5.2.tar.gz 3.进入解压目录tengine-1.5.2,输入命令./configure --prefix=/home/tengine/tengine15 --with-http_ssl_module (指定安装目录、安装ssl模块) 4.编译安装,输入命令, make make install 5.启动,进入tengine15,输入命令./sbin/nginx -s start(停止用stop) 6.测试是否成功,浏览器输入http://localhost,或者http://IP(注意要开放80端口) chown root nginx chmod u+s nginx user apps; worker_processes auto; worker_rlimit_nofile 65535; events { worker

制作Debian风格的Tengine deb包

跟風遠走 提交于 2019-12-02 06:39:50
前面尝试了一下tengine的动态加载模块的功能,觉得这样就有可能有大量部署的机会了,之前没用nginx是因为每次需要添加新的功能都需要重新编译一次,虽然nginx在性能上比apache好,但是如果有上百台机器部署了nginx就不好搞了,每个部门的web需求都不一样,所需要的模块也不一样,即使把所有自带模块都编译进去,但是还是会遇到一些很好的第三方模块的,现在tengine支持动态加载模块,就有希望了,一两台编译是可以接受的,大量部署tengine还是用包管理的比较好。 下面开始制作以debian6系统为基础的tengine deb包,tengine包风格还是类似于debian一般web服务器软件包的风格。 要把所有支持动态加载的模块都编译进去,需要以下包的支持: apt-get install libxml2 apt-get install libxslt1.1 apt-get install libxslt1-dev apt-get install libgd2-xpm libgd2-xpm-dev apt-get install libgeoip1 libgeoip-dev apt-get install libssl-dev apt-get install libpcre3 libpcre3-dev apt-get install libssl0.9.8 首先,在

linux 安装java 环境

痞子三分冷 提交于 2019-12-02 02:30:34
所需装的 Nginx 、jdk、mysql 汇总: jdk: http://my.oschina.net/dbxh/blog/383162 ================================== jdk ============================================================== 1、查看Linux系统中是否安装了jdk: java -version 2、卸载Java 大部分安装Java都是用rpm命令安装的,那么我们就要先用rpm -qa jdk 命令来查找Java的安装包 如上图,我们就找到了我们安装jdk的安装包,下面就来卸载jdk 使用语句:rpm -e jdk-1.7.0_75-fcs 这样jdk就卸载完成了 3、安装jdk 首先把jdk的Linux安装包上传到Linux服务器,然后执行下面的语句:rpm -ivh --prefix=/home/tomcat8/java jdk-7u75-linux-i586.rpm 如上图所示,Java成功安装到 /home/tomcat8/java目录下面,然后用 ls 命令,你会发现Java目录下面多出了一个jdk1.7.0_75文件夹,这个就是Java的安装根目录,接下来配置Java变量 第四步:配置环境变量 首先,登录tomcat8用户

lnmp、lamp、lnmpa一键安装包

风格不统一 提交于 2019-12-01 05:23:53
(Updated: 2016-8-21) 这个脚本是使用shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa(Linux、Nginx/Tengine/OpenResty、MySQL/MariaDB/Percona、PHP),适用于CentOS 5~7(包括redhat)、Debian 6~8、Ubuntu 12~16的32位和64位。 脚本特性 持续不断更新 源码编译安装,大多数源码是最新stable版,并从官方网址下载 一些安全优化 提供多个数据库版本(MySQL-5.7, MySQL-5.6, MySQL-5.5, MariaDB-10.1, MariaDB-10.0, MariaDB-5.5, Percona-5.6, Percona-5.5) 提供多个PHP版本(php-7, php-5.6, php-5.5,php-5.4,php-5.3) 提供Nginx、Tengine、OpenResty 提供多个Apache版本( Apache -2.4,Apache-2.2) 根据自己需求安装PHP缓存加速器,提供ZendOPcache、xcache、apcu、eAccelerator。及php加解密工具ionCube、ZendGuardLoader 根据自己需求安装 Pureftpd 、phpMyAdmin 根据自己需求安装memcached、redis

nginx及tengine配置

南楼画角 提交于 2019-12-01 02:27:22
最近工作需要,需要配置淘宝开发的tengine,查了一些资料。大致步骤如下: 1.首先安装tengine依赖的library pcre.jar 1.cd /usr/local/src #到指定的目录下 2.tar zxvf pcre-8.12.tar.gz 3.mkdir /usr/local/pcre #创建安装目录hotspot-cd74fab0a5e3 4.cd pcre-8.12 5. ./configure --prefix=/usr/local/pcre #配置 6.make 7.make install 2.安装tengine依赖的library openssl.jar 1.cd /usr/local/src #到指定的目录下 2.tar zxvf openssl-1.0.1c.tar.gz 3.cd openssl-1.0.1c 4. ./config --prefix=/usr/local/openssl 5.make 6.make install 2.3 安装zlib包 1.cd /usr/local/src #到指定的目录下 2.tar zxvf openssl-1.2.5.tar.gz 3.cd openssl-1.2.5 4. ./config --prefix=/usr/local/zlib 5.make 6.make install 3.安装nginx

玩转 Nginx 之:使用 Lua 扩展 Nginx 功能

巧了我就是萌 提交于 2019-11-30 08:33:08
1、Nginx 简介 Nginx 作为一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。其流行度越来越高,应用也越来越广泛,常见的应用有:网页服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器,高并发大流量站点常用来做接入层的负载均衡,还有非常常见的用法是作为日志采集服务器等。 Nginx 整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。其中模块化设计是nginx的一大卖点,甚至http服务器核心功能也是一个模块。要注意的是:nginx的模块是静态的,添加和删除模块都要对nginx进行重新编译,这一点与Apache的动态模块完全不同。不过后来淘宝做了二次开发开源的 tengine 是支持 官方所有的 HTTP 模块动态加载而不必重新编译 Nginx,除非是第三方模块才需要重新编译。因此,在生产环境中,推荐用淘宝开源的 tengine,本文也以 tengine 作为示例。 虽然 Nginx 有如此强大的性能以及众多的三方模块支持,但每次重新编译以及寻找三方模块对生产环境来说还是不可接受的,幸运的是,Nginx 它是支持客户自己 Lua 脚本编程扩展相应的功能的,而且可以热加载,这就给生产环境带来了无限可能。比如我现在想要直接用Nginx + redis 做反爬虫和频率限制,Nginx + Kafka

Mac下升级openssl安装tengine

大兔子大兔子 提交于 2019-11-29 21:05:08
几天前将系统升级到10.10.3,不知道怎么就卡的一B,插上移动硬盘wifi连不上(重装之后依然),开机慢得难以接受。 打算周末,来次彻底的格盘重装。果然,原来的那种顺滑又回来了。 开始折腾,装JDK,MYSQL,tomcat,idea ...... 正要编译nginx的时候 突然飘来一股@红薯的香味,立马想到了OSC了, OSC用的是tengine呢 ,恩,思想要跟上 得向高大上的OSC看齐 立马,rm -rf nginx 开始折腾tengine,顺便把openssl升级一把 升级Mac的openssl 1.终端下 openssl version 查看版本,隐约记得是0.9.8 2.sudo rm -rf /usr/bin/openssl 删除自带的openssl 3.下载最新的 openssl ,这里我下载的是 OpenSSL 1.0.2a.tar.gz 4.解压之,进入openssl-1.0.2a 5. ./config --prefix=/usr/local/openssl 指定安装目录 会报下面的警告 从警告信息看是啥玩意儿64位 32位。。。。。。在5秒内可以按Ctrl-C abort 嗯哼。abort是啥意思咧,咱小学毕业没学过这个高大上的词啊,百度翻译下呗 哦,原来是堕胎的意思啊 !嗯 懂了 不行,流产不吉利,不能这么搞 等待执行完成,这个警告怎么办呢??? 6

Tengine 如何查找 server 块

淺唱寂寞╮ 提交于 2019-11-29 09:03:12
概述 本文的目标读者是Tengine/Nginx 研发或者运维同学,如果自己对这块逻辑非常清楚,那可以略过,如果在配置或者开发 Tengine/Nginx 过程中,有如下疑问的同学,本文或许能解答你多年的疑惑: 请求到达匹配的是哪个 server 块? 为啥明明配置了 server 块,还是没有生效? 没有这个域名的 server 块,请求到底使用了哪个 server 块? 要自己去匹配 server 块的话,该从哪里入手? …… 等等此类 server 块有关的问题,在使用 Tengine 时可能经常有遇到,在配置的 server 块较少时,比较容易识别出,但在 CDN 或者云平台接入层这种场景下,配置的 server 块一般都非常多,少的有几十上百个,多的成千上万个都有可能,所以了解 Tengine 如何查找 server 块非常有利于日常问题排查。 配置 先来看看几个配置: server { listen 10.101.192.91:80 default_server; listen 80 default_server; listen 8080 default_server; server_name www.aa.com; default_type text/plain; location / { return 200 "default-server: $server