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 (重启)


相关文章
|
2月前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
343 1
|
3月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
194 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
3月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
3月前
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
3月前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
269 0
Mac os 安装 nginx 教程(success)
|
3月前
|
Ubuntu 搜索推荐 应用服务中间件
Nginx安装与使用
Nginx安装与使用
|
3月前
|
负载均衡 算法 应用服务中间件
Nginx安装及配置详解
Nginx安装及配置详解
|
3月前
|
应用服务中间件 程序员 开发工具
mac下安装nginx
mac下安装nginx
|
3月前
|
应用服务中间件 Linux nginx
CentOS7安装Nginx
CentOS7安装Nginx
|
3月前
|
Ubuntu Unix 应用服务中间件
Ubuntu16.04.1 安装Nginx
Ubuntu16.04.1 安装Nginx