Nginx 简介

好久没写博客了,之前一都是用OneNote来记录所学的,今天记录一下之前的学习的Nginx,Nginx是在我学习完Spring框架学习的,这几天重新整理下笔记

在这篇博客中,主要介绍了Nginx的主要功能,和配置文件nginx.conf 的重要性,

 

一.  简介

  • Nginx (engine x) 是一个高性能的Web服务器和反向代理服务器,也可以作为邮件代理服务器;

        

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器;

正向代理类似一个跳板机,代理访问外部资源。比如:我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器,它能访问那个我不能访问的网站,于是我先连上代理服务器,告诉它我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我;

  • Nginx 是由俄罗斯人 Igor Sysoev 采用C语言开发编写的,第一个公开版本0.1.0发布于2004年10月4日;
  • Nginx 特点是占有内存少,并发处理能力强,以高性能、低系统资源消耗而闻名,Nginx官方测试为5万并发请求;
  • 与Nginx同类型的Web服务器还有Apache、Lighttpd(音同lighty)、Tengine(阿里巴巴的) 等;

Nginx 的并发处理能力在同类型的Web服务器中表现极好(Apache、Lighttpd),在全世界范围内大量的网站使用了Nginx,国内互联网中也大量使用了Nginx,比如:淘宝、新浪、搜狐、网易、美团等;

  • Nginx是免费开源的,同时Nginx也有收费的商业版本,商业版本提供了性能优化、宕机等紧急问题处理等技术支持和服务;

 

 

 

二.   环境搭建

  • 下载:

          官方网站:http://nginx.org

 下载nginx-1.14.0.tar.gz的源代码文件:wget http://nginx.org/download/nginx-1.14.0.tar.gz

 

  • 安装

Nginx 简介_第1张图片

 

  • 启动,关闭配置检查

 

启动nginx执行命令:

 

1、普通启动:

 

切换到nginx安装目录的sbin目录下,执行: ./nginx

 

 

2、通过配置文件启动:

 

./nginx -C /usr/local/nginx/conf/nginx.conf

 

/usr/local/nginx/sbin/nginx -C /usr/local/nginx/conf/nginx.conf(其中-c是指定配置文件)

 

   

3、检查Nginx是否启动:

     通过查看进程: ps -ef| grep nginx

 

      nginx体系结构由master进程和其worker进程组成:

 

      master进程读取配置文件,并维护worker进程,而worker进程则对请求进行实际处理:

 

 

关闭

Nginx的关闭有多种方式:

1、优雅关闭Nginx:

找出nginx的进程号: ps -ef| grep nginx

执行命令: kill -QUIT主pid

其中pid是主进程号的pid (master process),其他为子进程pid (workerprocess)

 

2、快速关闭Nginx:

找出nginx的进程号: ps -ef| grep nginx

kill-TERM主pid

 

3、重启Nginx:

./nginx -s reload

 

Nginx 简介_第2张图片

 

 

 

三.   配置文件

 

核心配置文件, Nginx.conf   三部分组成

基本配置,events,http配置(基本配置,server配置)

 

 

四.    Nginx的主要用途

 

静态服务器

负载均衡

静态代理

虚拟主机

 

 

 

五.  静态服务器

Nginx是一个 http的web 服务器 ,可以将服务器上 的 静态文件(HTML,图片)

通过http协议返回给浏览器客户端

Nginx 简介_第3张图片

 

 

 

 六.   负载均衡

 

            1.  概述:

在网站创立初期,我们一般都使用单台机器对外提供集中式服务;

 

但是随着业务量的增大,我们一台服务器不够用,此时就会把多台机器组成一个集群对外提供服务;

 

但是,我们网站对外提供的访问入口通常只有一一个,比如

www.web.com;

 

那么当用户在浏览器输入

www.web.com进行访问的时候,如何将用户的请求分发到集群中不同的机器上呢,这就是负载均衡要做的事情;

 

负载均衡通常是指将请求"均匀”分摊到集群中多个服务器节点上执行,这里的均匀是指在一个比较大的统计范围内是基本均匀的,并不是完全均匀;

 

 

 

 2.    负载均衡的实现方式:

 

硬件负载均衡

比如F5、深信服、Array 等;

优点是有厂商专业的技术服务团队提供支持,性能稳定;缺点是费用昂贵,对于规模较小的网络应用成本太高

 

软件负载均衡。

比如Nginx、LVS、HAProxy 等;优点是免费开源,成本低廉;

 

 

                 

  3.    Nginx的负载均衡

 

通过nginx 的Nginx.conf  文件进行配置可实现

 

Nginx 简介_第4张图片

 

 

 

 

  • 配置的步骤:

            

     

      配置如下: (配置2步即可)

 

      1、在http模块加上: (举例)

      upstream   www.myweb.com {

 

      server 127 .0.0.1:9 100 weight=3  ;

      server 127.0.0.1:9200 weight=1;

 

      }

      其中weight= 1表示权重,用于后端服务器性能不均的情况,访问比率约等于权重之比,权重越大访问机会越多;

 

      upstream是配置nginx与后端服务器负载均衡非常重要的一个模块,并且它还能对后端的服务器的健康状态进行检查,若后端服务器中的一台发生故障,则前端的请求不会转发到该故障的机器;

 

      2、在server模块里添加: (举例)

      location /myweb {

 

              proxy_ pass http://www.myweb.com;

      }

 

      其中   www.myweb.com 字符串要和   upstream后面的字符串相等;

 

 

  • 常用的负载均衡策略:

 

Nginx 简介_第5张图片

 

         

  • 负载均衡的其他配置:

           

upstream backserver {

        server 127.0.0.1:9100;

         server 127.0.0.1:9200 backup; (其它所有的非backup机器down的时候,才请求backup机器)

}

             

upstream backserver {

      server 127.0.0.1:9100;

      server 127.0.0.1:9200 down; (down表示当前的server是down状态,不参与负载均衡)

}

 

 

七.  静态代理

 

                把所有静态资源的访问改为访问nginx,而不是访问tomcat,因为nginx更擅长于静态资源的处理,

                性能更好,效率更    高;

 

      所以在实际应用中,我们将静态资源比如图片、css、html、js等交给nginx处理,而不是由tomcat处理;

 

Nginx 简介_第6张图片

 

 

通过配置  Nginx.conf   即可完成

在配置文件中 添加静态资源的location 

 

方式一:

 

#当访问静态资源,则从linux服务器/opt/static目录下获取(举例)

location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3    

    |wma)$ {

    root /opt/static;

}

 

 

Nginx 简介_第7张图片

 

放置静态资源的目录,要注意一下目录权限问题,如果权限不足,给目录赋予权限;

 

方式二:

 

通过在nginx.conf配置文件中配置静态资源所在目录实现,比如:

location ~ .*/(css|js|img|images|image) {

      root /opt/static;

}

 

我们将静态资源放入 /opt/static 目录下,然后用户访问时由nginx返回这些静态资源;

 

 

八.  动静分离

 

Nginx的负载均衡和静态代理结合在一起, 我们可以实现动静分离,这是实际应用中常见的一-种场景:

动态资源,如jsp由tomca域其他web服务器完成:

静态资源,如图片、css、js等由nginx服务 器完成;它们各司其职,专注于做自2擅长的事情;

动静分离充分利用了它们各自的优势,从而达到更高效合理的架构;

 

Nginx 简介_第8张图片

 

      

         步骤:

 

Nginx 简介_第9张图片

 

 

 

九.  虚拟主机

虚拟主机,就是把一台物理服务器划分成多个”虚拟”的服务器,这样我们的一台物理服务器就可以当做多个服务器来使用,从而可以配置多个网站;

 

      Nginx提供虚拟主机的功能,就是为了让我们不需要安装多个Nginx,就可以运行多个网站:

 

      Nginx下,一个server标签就是一个虚拟主机;

 

      nginx的虚拟主机就是通过nginx.conf中server节点指定的,想要设置多个虚拟主机,配置多个server节点即可;

 

      配置虚拟主机通过有下面两种方式:

 

    

    

Nginx 简介_第10张图片

      

 

        示例:

 

Nginx 简介_第11张图片

 

你可能感兴趣的:(nginx,服务器)