热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2nginx安装

1,nginx简介:•Nginx(enginex)是一个高性能的HTTP和反向代理服务器,也是一个IMAPPOP3SMTP代理服务器。•第一个公开版本0.1.0发

 1, nginx简介: 

•Nginx("engine x") 是一个高性能的HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP 代理服务器。
•第一个公开版本0.1.0发布于2004年10月4日。
•其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名
•官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定

目前在使用nginx的网站有: ali, tudou, 京东, 爱奇艺, 网易, 蘑菇街, tencent, letv, 360, sina等

 1), 负载均衡

2), 动静分离

2, nginx和apache相比优缺点: 

1、nginx相对于apache的优点:轻量级,同样起web 服务,比apache 占用更少的内存及资源抗并发,nginx处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单社区活跃,各种高性能模块出品迅速啊
–2.apache 相对于nginx的优点:rewrite ,比nginx的rewrite 强大模块超多,基本想到的都可以找到少bug ,nginx的bug 相对较多
–3、Nginx 配置简洁, Apache 复杂
–4、最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程

3, 再次我们用的是alibaba加强的Tengine

原版nginx安装可参见nginx分类下的博客, 安装nginx

Tengine是nginx的加强版,封装版,淘宝开源
–官网http://tengine.taobao.org/
–动态模块加载(DSO)支持。加入一个模块不再需要重新编译整个Tengine;
–支持SO_REUSEPORT选项,建连性能提升为官方nginx的三倍;
–支持SPDY v3协议,自动检测同一端口的SPDY请求和HTTP请求;
–流式上传到HTTP后端服务器或FastCGI服务器,大量减少机器的I/O压力;
–更加强大的负载均衡能力,包括一致性hash模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析upstream中出现的域名;
–输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;
–支持设置proxy、memcached、fastcgi、scgi、uwsgi在后端失败时的重试次数
–动态脚本语言Lua支持。扩展功能非常高效简单;
–支持管道(pipe)和syslog(本地和远端)形式的日志以及日志抽样;
–支持按指定关键字(域名,url等)收集Tengine运行状态;
–组合多个CSS、Javascript文件的访问请求变成一个请求;
–自动去除空白字符和注释从而减小页面的体积
–…….

 

安装: 

下载: 

http://tengine.taobao.org/download/tengine-2.2.2.tar.gz

1), 安装依赖

yum groupinstall Development tools
yum install openssl
-devel pcre-devel zlib-devel

2), 上传文件到 /usr/opt/ 目录下, 并解压

tar -zxvf tengine-2.1.0.tar.gz

3), 配置编译信息

./configure \--prefix=/opt/soft/tengine-2.1.0/ \--error-log-path=/var/log/nginx/error.log \--http-log-path=/var/log/nginx/access.log \--pid-path=/var/run/nginx/nginx.pid \--lock-path=/var/lock/nginx.lock \--with-http_ssl_module \--with-http_flv_module \--with-http_stub_status_module \--with-http_gzip_static_module \--http-client-body-temp-path=/var/tmp/nginx/client/ \--http-proxy-temp-path=/var/tmp/nginx/proxy/ \--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \--http-scgi-temp-path=/var/tmp/nginx/scgi \--with-pcre

4), make && make install

上一步不成功生成不了makefile文件, , , 

5), 此时开放防火墙端口, 已经可以直接访问: 

http://192.168.208.101

6), 为了更便捷的启动nginx, 将nginx加入服务项中: 

vim /etc/init.d/nginx

#!/bin/bash
#
# chkconfig:
- 85 15
# description: nginx
is a World Wide Web server. It is used to serve
# Source function library.
.
/etc/rc.d/init.d/functions# Source networking configuration.
.
/etc/sysconfig/network# Check that networking is up.
[
"$NETWORKING" = "no" ] && exit 0nginx="/opt/soft/tengine-2.1.0/sbin/nginx"
prog
=$(basename $nginx)NGINX_CONF_FILE="/opt/soft/tengine-2.1.0/conf/nginx.conf"#[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginxlockfile=/var/lock/subsys/nginx#make_dirs() {
# # make required directories
# user
=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
# options
=`$nginx -V 2>&1 | grep 'configure arguments:'`
#
for opt in $options; do
#
if [ `echo $opt | grep '.*-temp-path'` ]; then
# value
=`echo $opt | cut -d "=" -f 2`
#
if [ ! -d "$value" ]; then
# # echo
"creating" $value
# mkdir
-p $value && chown -R $user $value
# fi
# fi
# done
#}start() {[
-x $nginx ] || exit 5[ -f $NGINX_CONF_FILE ] || exit 6
# make_dirsecho
-n $"Starting $prog: "daemon $nginx -c $NGINX_CONF_FILEretval=$?echo[ $retval -eq 0 ] && touch $lockfilereturn $retval
}stop() {echo
-n $"Stopping $prog: "killproc $prog -QUITretval=$?echo[ $retval -eq 0 ] && rm -f $lockfilereturn $retval
}restart() {configtest
|| return $?stopsleep 1start
}reload() {configtest
|| return $?echo -n $"Reloading $prog: "
#
-HUP是nginx平滑重启参数 killproc $nginx -HUPRETVAL=$?echo
}force_reload() {restart
}configtest() {$nginx
-t -c $NGINX_CONF_FILE
}rh_status() {status $prog
}rh_status_q() {rh_status
>/dev/null 2>&1
}
case "$1" instart)rh_status_q && exit 0$1;;stop)rh_status_q || exit 0$1;;restart|configtest)$1;;reload)rh_status_q || exit 7$1;;force-reload)force_reload;;status)rh_status;;condrestart|try-restart)rh_status_q || exit 0;;*)echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"exit 2
esac

注意修改nginx和配置文件为自己的路径

7), 更改文件执行权

# 修改文件执行权限
chmod
+x nginx
# chmod
751 nginx#添加文件到系统服务中
chkconfig -
-add nginx
#查看是否添加成功
chkconfig
--list nginx

service nginx start | stop | reload

  

会有个错误, 只需要

mkdir -p /var/tmp/nginx/client

 

 

系列来自尚学堂极限班

 



推荐阅读
author-avatar
暗蓝语依_431
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有