Nginx入门

一、基本概念:

  • 反向代理
  • 负载均衡
  • 动静分离
  • 高可用

二、下载安装

  1. Windows环境官网直接下载安装:nginx.org/en/download…
  2. Linux下Nginx的安装(centOS):
  • 安装nginx前的环境准备,需要安装以下相关依赖:pcre、openssl、zlib

安装步骤:

1.安装gcc gcc-c++(新环境下需要安装gcc)

 $ yum install -y gcc gcc-c++

2.安装pcre

`$ cd /usr/local/`

`$ wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz`

`$ tar -zxvf pcre-8.36.tar.gz`

`$ cd pcre-8.36`

`$ ./configure  #检查工作`

`$ make && make install  #编译安装`

`$ pcre-config --version   #查看版本号`
复制代码

 
3.安装openSSL库

`$ cd /usr/local/`

`$ wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz`

`$ tar -zxvf openssl-1.0.1j.tar.gz`

`$ cd openssl-1.0.1j`

`$ ./config`

`$ make && make install`
复制代码

 
4.安装zlib库存

`$ cd /usr/local/`

`$ wget http://zlib.net/zlib-1.2.11.tar.gz`

`$ tar -zxvf zlib-1.2.11.tar.gz`

`$ ./configure`

`$ make && make install`
复制代码

注释:openssl和zlib可以一步下载:

yum-y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
复制代码
  • 安装Nginx:
1.下载安装包
2.解压缩
3.进入解压缩目录,执行 ./configure
4.make && make install

$ cd /usr/local/
$ wget http://nginx.org/download/nginx-1.8.0.tar.gz
$ tar -zxvf nginx-1.8.0.tar.gz
$ cd nginx-1.8.0
$ ./configure
$ make && make install
复制代码

三、Nginx常用命令:

进入/nginx/sbin目录
查看版本命令:./nginx -v
启动命令:./nginx
关闭命令:./nginx -s stop
重新加载配置文件:./nginx -s reload
复制代码

四、开放防火墙端口:

`查看开放的端口:`
firewall-cmd --list-all

`设置开放的端口号`
firewall-cmd --add-service=http -permanent
firewall-cmd --add-port=80/tcp -permanent

`重启防火墙`
firewall-cmd -reload
复制代码

五、配置文件:

配置文件主要由全局块、events块、http块组成,其中,http块又由http全局块、server块组成,一个http块可以有多个server块。

image.png

5.1反向代理配置:

案例一:

image.png

案例二:

访问http://192.168.3.70:9001/edu/直接跳转到127.0.0.1:8001

访问http://192.168.3.70:9001/gov/直接跳转到127.0.0.1:8002

image.png

5.2负载均衡

简单来说,就是一个请求由不同的tomcat进行处理,默认以轮询方式处理请求。

image.png

  • 几种常用轮询策略:
1、默认:轮询(weight=1)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
 
2.weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream myserver {
    server 192.168.3.70:8080 weight=1;
    server 192.168.3.70:8081 weight=2;
}
 
3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。后端服务器down掉,要手工down掉。
 
upstream myserver{
    ip_hash;
    server 192.168.3.70:8080;
    server 192.168.3.70:8081;
}
 
4、fair(第三方插件)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream myserver{
    fair;
    server 192.168.3.70:8080;
    server 192.168.3.70:8081;
}

5.url_hash(第三方):
  按访问URL的hash结果进行分配请求,使每个URL定向到同一个后端服务器,后端服务器为缓存时比较有效。
  在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用hash算法。
  
  upstream myserver{
    hash $request_uri;
    hash_method crc32;
    server 192.168.3.70:8080;
    server 192.168.3.70:8081;
}
复制代码
5.3.动静分离(动态资源、静态资源分开放在不同服务器上)

image.png

测试访问:http://192.168.3.70/img/01.jpg

可加入expires作为缓存,3d即三天

image.png

5.4,高可用(预防Nginx宕机,准备好Nginx备用服务器)

需要安装keepalived,相当于一个路由,它会通过脚本检测当前nginx的存活状态,如果主nginx宕机了,会自动切换到备用nginx。

注意,对外访问的是虚拟ip,虚拟ip要绑定到主用和备用nginx服务器

image.png

  • 配置高可用的准备工作:
1)需要两台服务器:192.168.3.70192.168.3.712)在两台服务器安装nginx
(3)在两台服务器安装keepalived
        yum install keepalived -y    #安装命令
      rpm -q -a keepalived       #查看是否安装成功,安装之后,在etc里面生成目录keepalived,有文件keepalived.conf,用于高可用主从配置     
        systemctl start keepalived.service     #启动keepalived命令      
        systemctl stop keepalived.service     #关闭keepalived命令
复制代码
  • MASTER和BACKUP配置:
略...
复制代码
  • keepalived配置参数解释:

2051015-20200705194223596-972825601.png

六、Nginx原理:

1.master和worker
一个master多个worker的好处:利于热部署,因为每个worker都是一个独立的进程。

如果Nginx装在windows操作系统下,就无法使用IO多路复用机制,无法使Nginx的

效率发挥到最大。worker数和CPU核心数相等是较为适宜的。
复制代码

image.png

2.连接数:work_connection:
问题一:客户端发送请求,占用了work的几个连接数

答案:2个或者4个

问题二:Nginx有一个master,四个worker,每个worker支持的最大连接数是1024,请问支持的最大并发数是多少?

答:(1)访问静态资源的最大并发数:4*1024/2

  (2)如果是http作为反向代理来说,支持的最大并发数:4*1024/4
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享