nginx 学习笔记(二)nginx 配置相关
2017-06-15 22:33
363 查看
nginx配置文件
nginx有大量的官方和第三方模块,而这些模块只需要简单的在nginx的配置文件中添加配置项命令即可,每个模块会解析自己感兴趣的配置项,nginx的配置文件默认在/usr/local/nginx/conf/nginx.conf配置文件大概长这样:
注释
nginx配置文件中#代表注释当前行语法
nginx的配置项语法为:配置项名 参数1 参数2 … ;某些配置项的参数可以是块,比如上面图片中的
events { worker_connections 1024; }
单位
某些模块的配置项参数是可以带有单位的这些单位分别是表示大小和时间的
表示大小的有:K或k,M或者m
表示时间的有:ms(毫秒),s(秒),m(分钟),h(小时),d(天),w(周),M(月),y(年)
变量
部分nginx模块是支持在nginx.conf配置文件中使用变量的,在nginx.conf中使用变量只需要在前面加上$即可,而是否能使用某个变量要看是否有某个模块支持这个变量。nginx的基本配置项
nginx运行时所必须的一些模块所提供的配置项称为基本配置项,具体的配置项比较多这里就不一一列举出来了,可以参考《深入理解nginx 第二版》的P34 - P40。HTTP配置项
nginx的ngx_http_core_module提供了丰富的HTTP相关的配置项,还有一些nginx变量,可以在《深入理解nginx 第二版》的P40 - P59找到。负载均衡配置
关于负载均衡可以自行百度,nginx也提供了负载均衡的功能nginx提供了三种负载平衡机制:
round-robin(轮询),在上游服务器循环着找服务器进行转发
least-connected(最小连接),也就是每次在上游服务器中找一个连接数最小的服务器进行转发
ip-hash,根据客户的的IP地址来计算hash值,再对上游服务器的个数进行取模(或者类似的操作),这样可以保证每一个客户端可以找到一个固定的上游服务器
nginx的负载均衡配置只需要在upstream块里设置上游服务器,然后在server块里配置proxy_pass,nginx支持的协议有HTTP,、HTTPS、FastCGI、uwsgi、SCGI、memcached。
如果upstream块内不设置平衡机制,那么默认会是round-robin(轮询)模式,如果要显式写上平衡机制,那么只需要添加一行least_conn;(最小请求)或者ip_hash;即可
http { upstream myapp1 { server srv1.example.com; server srv2.example.com; server srv3.example.com; } server { listen 80; location / { proxy_pass http://myapp1; } } }
此外,nginx还支持加权负载平衡,也就是说每一个上游的server都可以配置他的权重,权重越大的server被选中的概率越高,只需要在配置server时写上weight = x即可。
upstream myapp1 { server srv1.example.com weight=3; server srv2.example.com; server srv3.example.com; }
在最新的nginx版本中,ip-hash的模式和least-connected(最小连接)模式设置的方法也和上面一样。
参考文献
《深入理解Nginx:模块开发与架构解析》 陶辉 著http://nginx.org/en/docs/syntax.html
http://nginx.org/en/docs/http/load_balancing.html
相关文章推荐
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx 学习笔记(二)nginx 配置相关
- nginx学习笔记之基于端口的虚拟主机基于主机名的虚拟主机root、alias、index配置
- Maven相关内容学习笔记一:基本配置和使用
- 【saltstack学习笔记之十】使用sls安装nginx并管理nginx的配置文件
- Nginx学习笔记1—Nginx(Win32) 配置详解