Nginx的安装

简介: Nginx的安装

1.Nginx的应用


1.1 Nginx作为web服务器


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


1.2 反向代理


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

20200314141104676.png

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 安装之前的准备工作


上传文件到指定位置

20200724154726450.png

解压文件

tar -zxvf tengine-2.1.0.tar.gz

安装依赖

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

12.png

编译安装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 

123.png

启动脚本

service nginx start

此时直接启动脚本会报错,提示工作目录不存在

1234.png

创建一个工作目录就可以了

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

再次启动Nginx

service nginx start

提示启动成功

12345.png

查看Nginx的进程

ps -ef | grep nginx

123455.png

测试Nginx是否启动成功


打开浏览器,输入ip地址。不用输入端口号,Nginx默认是80端口

2.png

到这里,Nginx的安装已经完成了。


下面的是拓展


将tengine加入到启动服务中

chkconfig --add nginx

查看是否添加成功

chkconfig --list nginx

3.png

设置开机启动

chkconfig nginx on

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

service nginx start
service nginx stop
service nginx reload (重启)


相关文章
|
3天前
|
应用服务中间件 PHP nginx
Mac安装Nginx
Mac安装Nginx
10 2
Mac安装Nginx
|
23天前
|
应用服务中间件 Linux 网络安全
|
4天前
|
应用服务中间件 Linux nginx
在CentOS上使用源码包安装Nginx、以及手动启动Nginx的步骤过程
这篇文章介绍了在CentOS系统上使用Nginx源码包进行安装和配置的详细步骤,包括源码包的获取、解压、配置、编译、安装、启动验证以及注意事项。
16 0
在CentOS上使用源码包安装Nginx、以及手动启动Nginx的步骤过程
|
7天前
|
应用服务中间件 网络安全 nginx
运维专题.Docker+Nginx服务器的SSL证书安装
运维专题.Docker+Nginx服务器的SSL证书安装
19 3
|
12天前
|
JavaScript 应用服务中间件 nginx
Windows安装hexo并配置nginx
Windows安装hexo并配置nginx
|
18天前
|
应用服务中间件 Shell 网络安全
nginx安装提示 libssl.so.3: cannot open shared object file: No
【8月更文挑战第1天】### 原因 未将安装的ssl中的`libssl.so.3`链接到`/usr/lib`导致缺失。 ### 解决方案 1. 检查openssl是否已安装,若为低版本则需重装。 ```sh whereis openssl
90 6
|
4天前
|
关系型数据库 MySQL 应用服务中间件
在Ubuntu 16.04上使用Nginx安装和保护phpMyAdmin的方法
在Ubuntu 16.04上使用Nginx安装和保护phpMyAdmin的方法
10 0
|
4天前
|
关系型数据库 Linux 应用服务中间件
如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin
如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin
6 0
|
4天前
|
关系型数据库 应用服务中间件 数据库
如何安装和配置 Django 与 Postgres、Nginx 和 Gunicorn
如何安装和配置 Django 与 Postgres、Nginx 和 Gunicorn
7 0
|
5天前
|
Ubuntu 应用服务中间件 nginx
Ubuntu 安装 Nginx
Ubuntu 安装 Nginx
11 0