Nginx 实战-第一章 nginx 介绍与安装部署

1.常见webserver介绍

Apache 和Tomcat

Apache和Nginx

Tomcat和jetty

jboss、tomcat、jetty

总结

2.nginx官网和版本介绍

3.nginx功能介绍

4.nginx安装和部署

4.1 Nginx安装 – yum安装

4.2 Nginx安装 – 源码安装

4.2.1 nginx源码安装

4.2.2 nginx 启动与停止

4.3 服务管理脚本


1.常见webserver介绍

1.1 常见服务器如apache 、tomcat、jetty、jboss、netty

我们可以到这个网站(https://w3techs.com/technologies/overview/web_server/all)上面查看每个服务器的使用情况:

Nginx 实战-第一章 nginx 介绍与安装部署_第1张图片

nginx发展非常快,apache还是老牌厂商。下面我们看一下这几个比较:

Apache 和Tomcat

相同:都是HTTP服务器
不同:apache本身只有http服务器功能,只能处理静态请求,如果要处理动态请求
需要配置好脚本程序或应用程序处理,比如php或servlet容器(tomcat)
tomcat两种请求都可以处理,但是静态请求处理慢,一般处理jsp请求
1.独立servlet模式、默认模式,静态请求也有tomcat完成
2.进程内servlet,用web插件在web服务器内部开一个jvm运行servlet容器
3.进程外servlet,用web插件与web服务器通信,速度比2慢,扩展性好

Apache和Nginx

都是HTTP服务器,不同在于nginx资源占用极低、稳定性高,十分适合处理静态请求
所以一般会用Nginx作前端服务器,处理高并发的静态请求
Apache负责后台,转发php、cgi、perl等动态解析

Tomcat和jetty

相同:都是servlet容器和http服务器,内核都一样
不同:jetty更加轻量,而且支持jsp、.net和php全系列

jboss、tomcat、jetty

jboss是一个EJB容器,通常集成了tomcat或jetty负责servlet请求

总结

一般Web请求用apache、nginx或lighttpd中的一种
servlet容器用tomcat或jetty
Ejb容器用jboss

2.nginx官网和版本介绍

  • Nginx诞生 2004年10月发布,俄国人Igor Sysoev开发,
  • rambler.ru Nginx官网、版本 nginx.org  1.14.0稳定版 国内分支Tengine(http://tengine.taobao.org/)

3.nginx功能介绍

Nginx功能介绍 Http服务、反向代理、负载均衡、邮件代理、缓存加速、SSL、flv/mp4流媒体

  • 正向代理:某些情况下,代理我们用户去访问服务器,需要用户手动的设置代理服务器的ip和端口号。
  • 反向代理:是用来代理服务器的,代理我们要访问的目标服务器。代理服务器接受请求,然后将请求转发给内部网络的服务器(集群化),并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。Nginx在反向代理上,提供灵活的功能,可以根据不同的正则采用不同的转发策略。
  • 负载均衡:多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。Nginx可使用的负载均衡策略有:轮询(默认)、权重、ip_hash、url_hash(第三方)、fair(第三方)
  • Nginx提供的动静分离是指把动态请求和静态请求分离开,合适的服务器处理相应的请求,使整个服务器系统的性能、效率更高。Nginx可以根据配置对不同的请求做不同转发,这是动态分离的基础。静态请求对应的静态资源可以直接放在Nginx上做缓冲,更好的做法是放在相应的缓冲服务器上。动态请求由相应的后端服务器处理。

4.nginx安装和部署

4.1 Nginx安装 – yum安装

  • vi /etc/yum.repos.d/nginx.repo
  • https://coding.net/u/aminglinux/p/nginx/git/blob/master/2z/nginx.repo
  • yum install -y nginx systemctl start/stop/restart/reload
  • nginx 测试:浏览器访问或者curl访问 检查服务进程:ps aux |grep nginx 检查端口监听:netstat -lnp |grep ‘:80’ 有防火墙,
  • 需加规则iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  • nginx -V查看版本以及各个目录、参数

4.2 Nginx安装 – 源码安装

4.2.1 nginx源码安装

下面是一个简单的安装过程,具体过程我就不演示了,这个应该不会太难。

  • wget http://nginx.org/download/nginx-1.14.0.
  • tar.gz tar zxf nginx-1.14.0.tar.gz
  • cd nginx-1.14.0;
  • ./configure --prefix=/usr/local/nginx
  • make && make install

4.2.2 nginx 启动与停止

/usr/local/nginx/sbin/nginx  //启动

pkill nginx //杀死nginx进程,停止nginx服务

/usr/local/nginx/sbin/nginx -t //检测配置文件语法错误

/usr/local/nginx/sbin/nginx -s reload//重载配置

4.3 服务管理脚本

#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings

NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"

start() 
{
    echo -n $"Starting $prog: "
    mkdir -p /dev/shm/nginx_temp
    daemon $NGINX_SBIN -c $NGINX_CONF
    RETVAL=$?
    echo
    return $RETVAL
}

stop() 
{
    echo -n $"Stopping $prog: "
    killproc -p $NGINX_PID $NGINX_SBIN -TERM
    rm -rf /dev/shm/nginx_temp
    RETVAL=$?
    echo
    return $RETVAL
}

reload()
{
    echo -n $"Reloading $prog: "
    killproc -p $NGINX_PID $NGINX_SBIN -HUP
    RETVAL=$?
    echo
    return $RETVAL
}

restart()
{
    stop
    start
}

configtest()
{
    $NGINX_SBIN -c $NGINX_CONF -t
    return 0
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  reload)
        reload
        ;;
  restart)
        restart
        ;;
  configtest)
        configtest
        ;;
  *)
        echo $"Usage: $0 {start|stop|reload|restart|configtest}"
        RETVAL=1
esac

exit $RETVAL

 

 

 

 

 

 

 

 

你可能感兴趣的:(linux,运维学习笔记,nginx实战)