最近的项目准备上APP,考虑到高可用跟负载均衡,前期并发量不大,能撑起来千人访问即可,我决定在应用服务器前面放置Nginx来实现,通过了解,决定使用淘宝优化的Nginx-Tengine版本,经过查询发现这个版本并没有提供Windows的版本,那就用Linux的呗,起个虚拟器,下载Tengine,安装Tengine的时候发现它还依赖于其他的包,都安装上吧,网上安装的文档一大把,搜了下大同小异,按照步骤装之,发现报错,查了下,发现是安装命令什么的都不对,真是服了,果然是天下文章一大抄啊,都没有自己实践过就Copy过来了。
这些安装包回头我会打包放到网盘供大家下载。
先把这几个文件下载下来 PCRE OPENSSL Zlib jemalloc
安装PCRE:
进入到PCRE的目录,执行./configure 编译得到的反馈是configure: error: You need a C++ compiler for C++ support.
那先装C++的编译器好了,命令:yum install -y gcc gcc-c++ ,悲催的网络啊,还是不行,下载GCC的安装包继续
将镜像挂载上去
ls -l /dev/cdrom |grep cd 这个
创建挂载文件夹,将iso文件挂载到/mnt/cdrom文件夹
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
然后进入Packages后
ls *gcc*,发现了gcc-c++的安装包,安装之,又出错,有依赖,先安装依赖包
安装
rpm -ivh libstdc++-devel-4.8.5-4.el7.x86_64.rpm
rpm -ivh gcc-c++-4.8.5-4.el7.x86_64.rpm
安装成功,回过头来再编译
编译成功,真不容易,make && make install安装,成功,PCRE安装完成。
查看pcre是否成功安装
rpm -qa pcre
华丽的分隔符********************
安装OPENSSL
网上说执行./configure的都是没有操作过的,安装说明看read me文件在Install文件中,内容如下:
To install OpenSSL, you will need:执行./config
* make
* Perl 5
* an ANSI C compiler
* a development environment in form of development libraries and C
header files
* a supported Unix operating system
Quick Start
-----------
If you want to just get on with it, do:
$ ./config
$ make
$ make test
$ make install
按照文件的操作执行OK,接着装下一个
华丽的分隔符********************
安装ZLIB,执行命令:
./configure
make&&make install
执行成功。
华丽的分隔符********************
安装jemalloc
下载的文件是jemalloc-3.6.0.tar.bz2,查了下应该使用tar -jxvf命令解压,执行,又悲催的报错了
错误关键词 tar: bzip2:无法 exec: 没有那个文件或目录
搜下,如何解决,说可以直接yum安装解决,但是可恨的网络啊。
yum install -y bzip2 试试吧,居然成功了
华丽的分隔符********************
Tengine的安装
tar -xzvf解压,然后执行命令
./configure --prefix=/usr/local/nginx --user=root --group=root --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.2 --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.40 --with-jemalloc
make&&make install
然后执行nginx -c /usr/local/nginx/conf/nginx.conf 不行,提示 -bash: nginx: 未找到命令还有什么libjemalloc.3.so什么的找不到文件,搜了下找不到原因,安装jemalloc的时候提示了很多警告,怀疑与警告有关,重装之,问题仍在,看来问题跟jemalloc无关,查看Tengine的命令怀疑与未指定jemalloc的路径有关,指定路径试一次。
./configure --prefix=/usr/local/nginx --user=root --group=root --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.2 --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.40 --with-jemalloc=/usr/local/src/jemalloc-3.6.0安装完成后执行,执行成功,看来这次是成功安装了。
make&&make install
启动:/usr/local/nginx/sbin/nginx所使用的安装包下载地址,建议大家还是尽量去官网下载最新版本的 链接: http://pan.baidu.com/s/1c19H9Fa 密码: p9f2
关闭:/usr/local/nginx/sbin/nginx -s stop
下一个目标,把Tengine设置成系统服务,开机启动。