nginx 学习笔记(二)nginx 配置相关
来源:互联网 发布:湖南联通网络客服电话 编辑:程序博客网 时间:2024/05/17 02:32
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中的rewrite
- nginx学习(二)基本配置
- Nginx学习笔记1—Nginx(Win32) 配置详解
- Nginx学习笔记1—Nginx(Win32) 配置详解
- Nginx学习笔记(一):nginx的安装和配置
- 4.nginx学习笔记:nginx配置虚拟主机
- nginx配置(二)
- nginx 源码学习笔记(二)
- Nginx学习笔记(二):配置文件
- nginx 学习笔记(二) --- 调试
- 【学习笔记】nginx 配置补充
- nginx 相关配置
- C语言键盘方向键的读入
- 多线程之指令重排
- JAVA AES加密/解密
- R实战-一次性读取多个表格
- bootstrap图片的响应式布局,盒子居中
- nginx 学习笔记(二)nginx 配置相关
- mathematica关于ForAll和Implies的使用
- (0001) JDBC直连MYSQL
- JAVA设计模式之抽象工厂模式
- 配置Tomcat-8.5.15 JVM内存参数
- c++ builder 中的 XMLDocument 类详解(6)
- java.lang.IllegalArgumentException: Invalid character found in method name
- BZOJ 1176 Mokia
- 编程基础(二)