Nginx的安装

1.Nginx的应用

1.1 Nginx作为web服务器

Nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,如perl,php等。但是不支持java。java程序只能通过与Tomcat配合完成。有报告表明,Nginx能支持高达5万的并发。

1.2 反向代理

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只
需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返
回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器
地址,隐藏了真实服务器IP地址。
在这里插入图片描述

1.3 负载均衡

客户端发送多个请求到服务器,当并发量很大的时候,可能会导致访问速度很慢,严重的时候,可能会导致服务器崩溃。我们可以集群,增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。
Nginx默认是负载均衡算法是轮询算法

1.4 动静分离

为了加快访问速度,可以把动态页面和静态页面交给不同的服务器来解析,加快解析速度。

2 Nginx的安装

只讲解Linux版的安装

2.1 Tengine的编译安装

Tengine 是nginx的加强版,封装版,淘宝开源,基于Nginx。因为原生的Nginx有很多BUG!淘宝团队封装了一下!

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

从2011年12月开始,Tengine成为一个开源项目,Tengine团队在积极地开发和维护着它。Tengine团队的核心成员来自于淘宝、搜狗等互联网企业。

2.2 安装之前的准备工作

上传文件到指定位置
在这里插入图片描述
解压文件

tar -zxvf tengine-2.1.0.tar.gz

安装依赖

yum -y install gcc openssl-devel pcre-devel zlib-devel

安装完成的结果
编译安装tengine
在tengine目录中执行以下命令
注意:此时要切换到已经解压好的目录下面

cd tengine-2.1.0

然后在该目录下执行下面的命令

 ./configure \
  --prefix=/home/apps/nginx \
  --error-log-path=/home/logs/nginx/error.log \
  --http-log-path=/home/logs/nginx/access.log \
  --pid-path=/home/apps/nginx/nginx.pid  \
  --lock-path=/home/apps/nginx/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=/home/apps/nginx/tmp/nginx/client \
  --http-proxy-temp-path=/home/apps/nginx/tmp/nginx/proxy \
  --http-fastcgi-temp-path=/home/apps/nginx/tmp/nginx/fcgi \
  --http-uwsgi-temp-path=/home/apps/nginx/tmp/nginx/uwsgi \
  --http-scgi-temp-path=/home/apps/nginx/tmp/nginx/scgi \
  --with-pcre

注意:其中/usr/local/tengine-2.1.0/为安装路径,可以提前创建该目录,配置Nginx时就是在安装目录进行配置
运行该命令即可创建

mkdir -p home/apps/nginx

执行安装命令

make && make install
2.3 为tengine准备启动文件

将Nginx设置为系统的服务 Service,这样启动Nginx就很方便,同时也可以设置开机启动

在/etc/init.d目录下,创建一个启动文件名字为 nginx。

touch /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 0
 
nginx="/opt/myapp/soft/tengine-2.1.0/sbin/nginx"
prog=$(basename $nginx)
 
NGINX_CONF_FILE="/opt/myapp/soft/tengine-2.1.0/conf/nginx.conf"
 
#[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
 
lockfile=/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_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
 
stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
 
restart() {
    configtest || return $?
    stop
    sleep 1
    start
}
 
reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
#  -HUP是nginx平滑重启参数  
    killproc $nginx -HUP
    RETVAL=$?
    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" in
    start)
        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

给脚本可执行权限

chmod 755 nginx 

在这里插入图片描述
启动脚本

service nginx start

此时直接启动脚本会报错,提示工作目录不存在
在这里插入图片描述
创建一个工作目录就可以了

mkdir -p /var/tmp/nginx/client/

再次启动Nginx

service nginx start

提示启动成功
在这里插入图片描述
查看Nginx的进程

ps -ef | grep nginx

在这里插入图片描述
测试Nginx是否启动成功
打开浏览器,输入ip地址。不用输入端口号,Nginx默认是80端口
在这里插入图片描述
到这里,Nginx的安装已经完成了。

下面的是拓展
将tengine加入到启动服务中

chkconfig --add nginx

查看是否添加成功

chkconfig --list nginx

在这里插入图片描述
设置开机启动

chkconfig nginx on

nginx启动、停止、无间断服务重启

service nginx start
service nginx stop
service nginx reload (重启)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值