nginx相关配置及理论总结

1:Nginx是一款轻量级、高性能、开源免费的httpd服务器、反向代理服务器、缓存服务器

 

2:Nginx的I/O模型   支持I/O复用   epoll模型(事件驱动),异步非阻塞(AIO)

 

3:Nginx的主要结构模块

①核心模块  core

②httpd模块   ngx_httpd

③代理模块    ngx_http_proxy

④集群模块    ngx_http_upstream

⑤fastcgi模块  ngx_http_fastcgi    (nginx基于fastcgi勾连动态页面的程序的9000端口)

 

4:Nginx不支持DSO机制,但Nginx支持平滑升级

 

 

5:Nginx支持pcre正则表达式,重定向的功能异常强大

 

 

6:Nginx由主控进程生成工作进程(数量有CPU核心数决定)

 

 

7:Nginx的各个功能配置剖析

①:全局配置端   main

②:事件配置端  event

③:http配置端

 

主要的httpd和代理的功能配置在http上下文

 

 

8:http上下文对应的功能配置与详解

①:httpd的配置,其下级上下文为server {}   location{}    支持if{}

httpd上下文配置全局网页服务   

server{}上下文配置虚拟主机的相关设置,默认第一虚拟主机即为中心主机

location{}上下文,映射本地文件系统和URL的映射关系

 

rewrite重定向:可以基于正则表达式做重定向

rewrite URL URL flag

例如:rewrite ^/xxx/(.*)$ /xxx/$1 break;

 

location和本地文件系统的映射关系的优先级和配置

location = /uri {

}

location ~ /uri {

}

location ~* /uri {

}

location ^~ /uri {

}

location  /uri {

}

location  / {

}

注意:URI中的左侧的/是相对文件系统路径右侧的/而言的

例如:

location /aaa {

root “/www/html”

}

意味着   资源路径为文件系统的/www/html/aaa里

 

路径别名:alias /xxx “/xxx”

例如:  location /bbb {

                 alias “/aaa”   代表

若访问/bbb即为文件系统的/aaa内的资源

 

 

代理功能

基于proxy模块,注意:一般添加在location上下文中

例如:   location /URI{

                 proxy_pass URL;        注意:URI右侧和下方URL右侧保持一致

             }                                  代理结果为URL/URI

 

 

正则表达式代理

例如     location ~* \.(xxx|xxx|xxx)$ {

                 proxy_pass URL;       #注意:URL右侧不能接任何URI,否则语法错误

                                                #同时若有其他匹配location,需先进行此location#匹配,再兼容其他location匹配。

}

 

fastcgi代理   在location配置段中配置fastcgi区域

    注意:需基于fastcgi_pass的代理方法进行代理,并同时需要将网页根路径勾连fastcgi的配置变量,若勾连动态页面程序,一般需要安装管理fastcgi  9000端口的fpm服务(php-fpm)

    例如:location ~ \.(.php|jsp|asp) {

                   root “/xxx/xxx”;

                   fastcgi_pass URL;

                   fastcgi_params SCRIPT_FILENAME  /xxx/xxx$fastcgi_script_name;

                   include fastcgi_params

      }

 

Nginx负载均衡集群配置,需要基于集群的upstream模块,由粘性工具proxy_pass来进行代理

在http配置上下文中配置upstream容器,配合location上下文中的粘性工具proxy_pass来完成负载均衡。同时可以结合调度算法。例如:

    upstream Name {

        [ip_hash|sticky|xxx;]   注意:若要使用sticky模块实现基于cookie方式来保持会话,需通过编译新版本Nginx手段,额外加入此模块。

        server  backend_server1 [ max_fail=x time_out=xxx weight=x [down]];

        server  backend_server2 [ max_fail=x time_out=xxx weight=x [down]];

        [server backup xxx.xxx.xxx.xxx]

}

location /URI {

    proxy_pass http://Name;

}

 

 

Nginx的代理缓存

注意:代理服务器的缓存是将上游upstream_server服务器中静态资源,以KV对存储方式缓存代理服务器本地,以hash码来进行定位索引

         Nginx是一款不错的缓存代理服务器,但功能和性能不如squid和varnish

静态资源缓存的优先级:浏览器缓存---代理服务缓存---原始服务器缓存---直接调用原始存储

如何在Nginx内设置代理缓存   在http配置段中定义   proxy_cache_path PATH levels=levels keys_zone=name:size [interactive=time] [max_size=#k|M|G]

例如:proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;

在对应的代理的location中进行调用缓存,并同时可以使用相关代理缓存的额外属性设置。例如:

 

注意:若缓存过期,应及时通知更新缓存,若未过期,需要更新缓存,必须修建代理缓存

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值