Nginx配置

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。Nginx配置,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

验证配置是否正确: nginx -t

查看Nginx的版本号:nginx -V

启动Nginx:start nginx

重启Nginx:nginx -s reload

快速停止或关闭Nginx:nginx -s stop

正常停止或关闭Nginx:nginx -s quit

配置文件修改重装载命令:nginx -s reload

1. nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
Nginx专为性能优化而开发,性能是其重要的考量,实现上非常注重效率,能经受高负载的考验,能支持高达50000个并发连接数

2. Nginx的作用

1: 静态服务器:
    在我们前后端分离的项目中 我们的前端项目开发完毕之后,也是需要发布到一个服务器上,供用户访问  此时
    就需要用到nginx   
    
2: 虚拟主机:
        我们一个服务器可以模拟多个虚拟主机,虽然访问的链接不同,但是都表示一个主机 所以访问的内容是一致的
        
3: 反向代理:
        nginx可以作为反向代理服务器,客户端发送http请求,访问的是nginx这个反向代理服务器,反向代理服务器nginx会选择目标服务器,最终完成请求,获取数据 
​
4: 负载均衡: 
        我们部署应用,项目运行在tomcat上 一个tomcat的并发访问默认200 手动调并发数量 最多600-700的并发 
        当我们用户量比较大的时候 我们的项目要占用不同的端口部署多个,目的起到请求分流的效果,减轻服务器        的压力,此时就需要负载均衡
        

3. window下的安装

3.1. 下载

Nginx配置

3.2直接解压

Nginx配置

3.3. 双击启动

进入解压目录,双击即可启动,此时可能页面一闪而过

Nginx配置

3.4. 浏览器访问

http://localhost 

4. 静态资源服务器

nginx做静态资源服务器配置的方式有很多 

4.1. 放在nginx中

当我们访问http://localhost时 浏览器会出现一个页面  这个页面 就是nginx解压目录中的html文件夹中的index.html  
既然能够显示这个index.html  我们可以把我们的页面也放到这个目录下,此时就能访问 

4.1. 部署流程

4.1.1.放入静态资源

Nginx配置

4.1.2.重启nginx

nginx -s reload

Nginx配置

4.1.3.浏览器访问

Nginx配置

4.1.4. 修改首页

问题描述: 
    1: 默认加载index.html  为什么默认加载index.html 
    2: 不想加载index.html  我想进入加载其他的页面 或者我的首页就不叫index.html
  • 修改配置文件

Nginx配置

 代理访问:( 很有可能404 , 就是代理路径 proxy_pass 末尾带不带/的问题, 好像本地不需要代/ , 互联网需要带 /)

https://www.qq.com/

Nginx配置

4.2. 放到nginx外

部署静态资源除了放在nginx解压目录中之外 还可以放到电脑上的任何一个地方 然后通过配置的访问 指定到这个位置

4.2.1. 部署流程

  • 修改配置文件

Nginx配置

  • 浏览器访问

Nginx配置

5. nginx配置文件

nginx的配置文件名字叫 nginx.conf  在解压目录下的config目录 

5.1. 配置文件组成部分

第一部分:全局块
    主要会设置一些影响Nginx 服务器整体运行的配置指令
第二部分:Events块
    worker_connections  1024;表示每个 worker process 支持的最大连接数
第三部分:Http块      
    这是Nginx服务配置中最频繁的部分,代理、缓存和日志定义等绝不多数功能和第三方模块的配置都在这里。需要    注意的是:http 块也可以包括http全局块、server块。server 块又包含全局server块和localtion块。

5.2. 配置文件的结构

main:    # 全局配置,对全局生效
    events:  # 配置影响 Nginx 服务器或与用户的网络连接
    http:   # 配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置
       upstream:   # 配置后端服务器具体地址,负载均衡配置不可或缺的部分
       server : #配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块
       server
         location: # server 块可以包含多个 location 块,location 指令用于匹配 uri
         location 

6. 虚拟主机

我们一个服务器可以模拟多个虚拟主机,虽然访问的链接不同,但是都表示一个主机 所以访问的内容是一致        的,nginx的一个server标签就是一个虚拟主机  我们配置多个server标签就可以代表多个主机

6.1. 域名解析

6.2. 配置虚拟主机

1.配置多个server

Nginx配置

2.添加域名映射

C:\Windows\System32\drivers\etc\hosts文件

Nginx配置

3.重启测试

Nginx配置

7. 反向代理服务器

7.1. 正向代理

概念: Nginx代理客户端来访问互联网。典型代表:翻墙。
特点: 客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户      端;正向代理模式隐藏了真实客户端信息。

7.2. 反向代理

概念: Nginx作为反向代理服务器接收来自客户端的请求,并将请求转发给后端的真实服务器集群中的一台。
      典型代表:负载均衡
      
特点: 主要用于服务器进群分布式部署的情况下,隐藏了服务器的真实信息

Nginx配置

7.3. 反向代理配置

1.新建springboot工程,启动

Nginx配置

2.配置反向代理

Nginx配置

3.nginx重启测试

Nginx配置

8. 负载均衡

场景: 当一个应用占用不同的端口启动多次的情况下, 每个端口的应用都包含所有的功能,在高并发的情况下 做到分流效果,此时客户端的一个请求过来,到底这个请求要去哪个服务器中访问,此时面临了一个一对多的关系,此时需要负载均衡算法

8.1. 配置负载均衡

1.启动多个springBoot工程

2.配置负载均衡

Nginx配置

8.2轮训策略演示

通过测试 默认是轮训  
除了轮训还有其他的负载均衡策略 
比如: 
1.加权轮询:
2.ip_hash: 
每个请求按照IP的hash结果分配,同一个IP客户端访问一个固定的后端服务器。
优点:可以保证来自同一个IP的请求,被打到固定的机器上,可以解决session的问题。  

3.url_hash
按访问url的hash结果来分配请求,相同url固定转发到同一个后端服务器进行处理。 

8.3. 参数了解

任何负载均衡策略都可以携带参数 

1: down:当前服务器暂不参与负载;
2: weight:权重,值越大,服务器的负载量越大;
3: max_fails:允许请求失败的次数,默认为1;
4: fail_timeout:max_fails次失败后暂停的时间;
5: backup:备份机,只有其他所有的非backup机器down或者忙时才会请求backup机器。

9. Linux安装nginx

第一步:

安装需要的插件
​
yum -y install gcc-c++
​
yum -y install zlib zlib-devel openssl openssl-devel 
​
yum -y install patch

第二步:

新建目录
 mkdir  /opt/nginx 
​
进入目录
    cd /opt/nginx 

第三步:

上传nginx的包 

第四步:

解压 
 tar -zxvf nginx-1.14.2.tar.gz 

第五步:

进入解压目录 
 cd nginx-1.14.2
​
执行命令 
    ./configure  (注意这个命令可以携带参数)

第六步:

执行make指令  
 make  
 
执行安装指令 
    make install
 

第七步:

默认的安装的目录: /usr/local 目录下的nginx  
    
进入安装目录 
    cd /usr/local/nginx 

第八步:

//进去sbin目录 
cd  sbin  
​
启动nginx  
 ./nginx 

第九步:测试

10. Linux使用

和win使用类似

11. 拓展内容

11.1. 面试题一

nginx能够并发处理5万请求,请问nginx 请求处理机制是如何的?  

11.1.1. 相关知识储备

一个nginx可以并发处理多个请求,就证明了nginx和客户端是一对多的关系 , 也就是说nginx服务器有能力同时给多个客户端提供服务, 一般来说,能够完成并行处理的方式大概有如下几种 
​
第一种: 多进程的方式 
第二种: 多线程的方式 
第三种: 异步的方式 

11.1.1.1. 多进程的方式

理解: 
    服务器接收到一个客户端请求时,服务器的主进程会生成一个子进程,这个子进程会和客户端连接并且进行交互,
    交互完毕之后 连接断开,这个子进程就结束了  
    
优缺点: 
    多进程方式的优点在于,设计和实现相对简单,各个子进程之间相互独立,处理客户端请求的过程彼此不受到干    扰,并且当一个子进程产生问题时,不容易将影响漫延到其他进程中,这保证了提供服务的稳定性。当子进程退出    时,其占用资源会被操作系统回收,在资源和时间上会产生一定的额外开销,因此,如果服务器接受大量并发请    求,就会对系统资源造成压力,导致系统性能下降

11.1.1.2. 多线程的方式

理解: 
    服务器每当接受到一个客户端请求时,会由服务器主进程派生一个线程出来和该客户端进行交互。
​
优缺点: 
    由于操作系统产生一个线程的开销远远小于产生一个进程的开销,所以多线程方式在很大程度上减轻了web服务器     对系统资源的要求。该方式使用线程进行任务调度,开发方面可以遵循一定的标准,这相对来说比较规范和有利于    协作。但在线程管理方面,该方式有一定的不足。多个线程位于同一个进程内,可以访问同样的内存空间,彼此之    间相互影响

11.1.1.3. 异步的方式

同步: 是指发送方发送请求后,需要等待接收到接收方发回的响应后,才接着发送下一个请求
异步: 发送方发出一个请求后,不等待接收响应这个请求,就继续发送下个请求
​
​
异步的方式也分为2种 
​
异步阻塞
异步非阻塞 
  • 异步阻塞

      发送方向接收方发送请求后,不用等待响应,可以接着进行其他工作;接收方处理请求时进行操作如果不能马上得到结果,就一直等待返回结果后,才响应发送方,期间不能进行其他工作。这种方式在实际中不使用。
  • 异步非阻塞

      发送方向接收方发送请求后,不用等待响应,可以继续其他工作;接收方处理请求时进行操作如果不能马上得到结果,也不等待,而是马上返回去做其他事情。当操作完成以后,将完成状态和结果通知接收方,接收方再响应发送方。

例如: 在超市排队付账。客户(发送方)向收款员(接收方)付款(发送请求)后在等待收款员找零的过程中,还可以做 其他事情,比如打电话、聊天等;而收款员在等待收款机处理交易(操作)的过程中可以帮助客户将商品打包, 当收款机产生结果后,收款员给客户结账(响应请求),这种方式是发送方和接收方通信效率最高的一种。

11.1.2. 面试题回答

nginx 之所以能够处理高并发的情况 主要是 nginx采用的是多线程+异步中(异步非阻塞的方式)处理web请求的。
​
流程: 
    nginx服务器启动后,会产生一个主进程(master process)和多个工作进程(worker process)(工作进程个数可以指定 例如 worker_processes 5 )。nginx服务器的所有工作进程都用于接收和处理客户端的请求。
    
    每个工作进程使用了异步非阻塞方式,可以处理多个客户端请求。当某个工作进程接收到客户端的请求以后,进行处理,如果不能立即得到结果,就去处理其他的请求而非阻塞;而客户端在此期间也无需等待响应,可以去处理其他的事情;当返回结果时,就会通知此工作进程;该进程得到通知,暂时挂起当前处理的事物,去响应客户端请求。

11.2.面试题二

Nginx的工作模式(或者问Nginx的工作原理)

11.2.1. 面试题回答

1: Nginx在启动后,会有一个master进程和多个相互独立的worker进程。
2: master进程接受来自外界的信号,向各个worker进程发送信号,每个worker进程都有可能来处理这个连接。
3: master进程能监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动启动新的worker进程。不    会造成业务的中断。

11.2.2. nginx的原理图

Nginx配置

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/192879.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!