推广 热搜: 分享  好处  经典  是什么意思  改变  还是  阅读  语文  说话  财报 

nginx详解(概念、Linux安装、配置、应用)

   日期:2024-11-19     作者:sic0574    caijiyuan   评论:0    移动:http://sicmodule.glev.cn/mobile/news/856.html
核心提示:1.nginx是什么 百度百科看百度百科的解释,第一句话就是错的。“Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器

1.nginx是什么

百度百科

nginx详解(概念、Linux安装、配置、应用)

nginx详解(概念、Linux安装、配置、应用)

看百度百科的解释,第一句话就是错的。“Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器”,从语法来看,去掉形容词就是:Nginx是服务器,nginx怎么会是服务器呢,nginx只是一个工具,一个中间件,可以用来做反向代理,做什么反向代理?做web服务器的反向代理。这句话是有语病的,典型的句式杂糅(两个句子塞在一句话中表达,导致表述不清,会误导初学者。后面的解释也不准确(“Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器”,起码不够通俗,绕来绕去 基于此做一点补充

Nginx是一个中间件。由一个俄罗斯人开发(2004年,开发背景是解决C10k问题(10000并发量,随着nginx的不断迭代,现在主要用来做反向代理和负载均衡,由于nginx配置简单、占用内存少、并发能力强等优点广受欢迎,据统计,世界范围内的web网站,平均2个就有一个使用了nginx,充分证明了nginx的优秀和重要。

2.概念

2.1.什么是正向代理

理解反向代理不得不说正向代理,正向代理通过代理服务器屏蔽用户信息的过程。其特点是:目标服务器不知道请求用户的信息,比如请求IP。 总结发现,通过简单分类,这里面涉及到三种类型的机器,分别是:用户机器、代理机器、目标服务机器

我们上网的一般过程是,客户端发出请求,服务器接收、处理请求并做出响应,客户端接收响应展示给用户。仿佛不需要代理了,这个理解是对的,那么什么场景会用到正向代理

比如国内用户需要访问google,但是由于政策原因没有开通防火墙,国内用户访问不了google,这时还需要访问google的资源,怎样实现?可以通过在用户和google之间增加一台服务器,这台服务器开通google的防火墙,用它来接收用户的请求,并将请求转发给google,goolge接收请求响应给代理服务器,代理服务器再响应给用户。

这个过程中google不知道真实的用户信息,只知道代理服务器的请求信息(比如ip等,通过代理服务器屏蔽用户信息的过程就是正向代理

2.3.什么是反向代理

理解了正向代理后,就好理解反向代理了。反向代理通过代理屏蔽目标服务的过程。其特点是:用户不知道真实的目标服务。 反向代理的场景

一个tomcat处理500个并发,这时并发量有5000,需要搭建10个tomcat集群。这10个集群就代表10个服务,用户通过访问代理服务器,代理服务器再把请求转发给10个服务中的某一个。

对用户来说,请求的是代理服务,用户不知道代理服务会将请求下发给集群服务中具体服务。通过代理服务屏蔽真实服务的过程就是反向代理。

2.4.什么是负载均衡

通过nginx反向代理了10个服务,高并发的用户请求按什么策略下发给这10服务。使每一台机器都能饱和工作的过程就是负载均衡。

 

3.nginx的使用

3.1 安装nginx

直接下载nginx tar包,地址:https://nginx.org/en/download.html

 
3.2.Nginx配置

Nginx配置,在/usr/local/nginx/conf(nginx安装目录)下的nginx.conf

 

上述配置中的events、http、server、location、upstream等属于配置项块。而 worker_processes 、worker_connections、include、listen 属于配置项块中的属性。其中server块嵌套于http块,其可以直接继承访问Http块当中的参数。

配置块名称开头用大口号包裹其对应属性属性基于空格切分属性名与属性值,属性值可能有多个项,都以空格进行切分,如:access_log logs/host.access.log main参数其配置在块名称与大括号间,其值如果有多个也是通过空格进行拆

:如果配置项值中包括语法符号,比如空格符,那么需要使用单引号或双引号括住配置项值,否则Nginx会报语法错误。eg

 

4.ngin的应用

4.1.配置一个静态WEB服务

创建一个站点目录:mkdir -p /home/zyz/soft/web/app1 放入一个静态文件:index.html 配置nginx.conf

 

访问规则如下

 

or

 

防问规则如下

 
4.2.下载限速
 
4.3 IP黑白名单
 

eg:

 

在http模块中引入配置文件: include ip.black;

nginx详解(概念、Linux安装、配置、应用)

4.4 nginx配置负载均衡

通过proxy_pass 可以把请求代理至后端服务,但是为了实现更高的负载及性能, 我们的后端服务通常是多个, 这个是时候可以通过upstream 模块实现负载均衡。

 

upstream 相关参数: server 反向服务地址加端口 weight 权重 max_fails 失败多少次 认为主机已挂掉则,踢出 fail_timeout 踢出后重新探测时间,在单位周期为fail_timeout设置的时间,中达到max_fails次数,这个周期次数内,如果后端同一个节点不可用,那么接将把节点标记为不可用,并等待下一个周期(同样时常为fail_timeout)再一次去请求,判断是否连接是否成功。如果成功,将恢复之前的轮询方式,如果不可用将在下一个周期(fail_timeout)再试一次。 backup 备用服务,Nginx默认判断失败节点状态以connect refuse和timeout状态为准,不以HTTP错误状态进行判断失败,所有非备机都宕机或者不可用的情况下,就只能使用带backup标准的备机。 max_conns 允许最大连接数 ll+weight: 轮询加权重 (默认) ip_hash : 基于Hash 计算 ,用于保持session 一至性,不与backup一起使用 url_hash: 静态资源缓存,节约存储,加快速度(第三方least_conn :最少链接(第三方least_time :最小的响应时间,计算节点平均响应时间,然后取响应最快的那个,分配更高权重(第三方

eg:

本文地址:http://sicmodule.glev.cn/news/856.html    歌乐夫 http://sicmodule.glev.cn/ , 查看更多
 
标签: 配置
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2023001713号