nginx使用详情

╰+攻爆jí腚メ 2022-05-22 07:57 275阅读 0赞

nginx是什么?

  1. nginx是一个高性能的http和反向代理服务器。其特点是:占用内存小,并发能力强。

nginx有什么优点?

  1. 占用内存小,并发能力强。在连接高并发的情况下,nginxapache服务器不错的替代品。能够支持高达50000个并发连接数的响应。它采用的是epoll and kqueue模型
  2. nginx完全由C语言从头写成,不论是系统资源开销还是cpu使用效率都很优秀。
  3. nginx安装非常简单,配置文件非常简洁,bug少。nginx的启动特别容易,并且几乎可以做到7\*24不间断运行,即使运行数个月也不需要重新启动。

nginx常用功能

  1. 1.反向代理
  2. 2.负载均衡
  3. nginx提供的负载均衡主要是 内置策略和扩展策略。内置策略为轮询,加权轮询,Ip Hash。扩展策略就是用户自己定义的策略。
  4. Ip Hash算法,对客户端请求的Ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以在一定程度上解决session不共享的问题。
  5. 3.web缓存
  6. nginx可以对不同的文件做不同的缓存,配置比较灵活,主要用于对FastCGI的动态程序进行缓存。

nginx配置文件结构

  1. nginx是由配置文件中指定的指令控制模块组成。指令可分为**简单指定和块指定**。
  2. 简单指令是有空格分隔的名称和参数组成,并以(;)结尾
  3. 块指令具有与简单指令相同的结构,但不是以分号结尾,而是以大括号包围的一组附加指定结尾。如果块指令的大括号内部可以有其他指令,则称这个块指令为上下文(比如:eventshttpserverlocation
  4. 配置文件中,被放置在任何上下文之外的指令都被认为是主上下文,eventshttp指令在主上下文中,serverhttp中,location又在server中。
  5. ... #全局块
  6. events { #events块
  7. worker_connections 1024;
  8. }
  9. http { #http块
  10. ... #http全局块
  11. server { #server块
  12. ... #server全局块
  13. location / { #location块
  14. try_files $uri $uri/ /index.html;
  15. root html;
  16. index index.html index.htm;
  17. }
  18. }
  19. server {
  20. listen 443 ;
  21. server_name oss.damaiiot.com;
  22. ssl on;
  23. root /;
  24. location / {
  25. root /;
  26. proxy_pass http://damai-oss.oss-cn-hangzhou.aliyuncs.com/;
  27. }
  28. }
  29. ... #http全局块
  30. }
  31. 详解:
  32. 1.全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成的worker process进程数。
  33. 2.events块:配置一些nginx服务器 与用户的网络连接。有每个进程的最大连接数,选取哪种时间驱动模型处理连接请求,是否允许同时接受多个网络连接,开启多个网络连接序列化等。
  34. 3.http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,连接超时,单连接请求数等。
  35. 4.server块:配置虚拟主机的相关参数
  36. 5.location块:配置请求的路由,以及各种页面的处理情况。
  37. 说明:
  38. $remote\_addr $http\_x\_forward\_for 用以记录客户端的ip地址
  39. $remote\_user 用来记录客户端用户名称
  40. $time\_local 用来记录访问的时间和时区
  41. $request 用来记录请求的urlhttp协议
  42. $status 用来记录请求状态,成功是200
  43. $body\_bytes\_sent 记录发送给客户端文件主体内容大小
  44. $http\_referer 用来记录从那个页面链接访问过来
  45. $http\_user\_agent 记录客户端浏览器的相关信息

location匹配

demo

rewrite重写

demo

upstream

demo

其他

  1. nginx有一个主进程(Master)和几个工作进程(Worker).主进程的主要目的是读取和评估配置,并维护工作进程。工作进程对请求进行处理。nginx采用了基于事件模型和依赖于操作系统的机制来有效的在工作进程之间分配请求。
  2. 工作进程的数量可在配置文件中定义,并且可以针对给定的配置进行修改,或者自动调整到可用cpu内核的数量。
  3. 如果有几个匹配上location的块指定,nginx将选择具有最长前缀的location块。
  4. 惊群现象:一个网络连接到来,多个睡眠进程同时被唤醒,但只有一个进程能获得连接,这样会影响系统的性能。

部分摘自:Nginx 使用手册

发表评论

表情:
评论列表 (有 0 条评论,275人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Flutter ShaderMask 使用详情

    > 志在巅峰的攀登者,不会陶醉在沿途的某个脚印之中,在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会

    相关 Lombok使用示例详情

    简介 Lombok是一个可以通过注解来帮助我们简化消除一些必须有但显得很臃肿的Java代码的一种工具,通过使用对应的注解,可以在编译源码的时候动态添加源码。 例如在实体