type
status
date
slug
summary
tags
category
icon
password
一、Nginx安装及命令
1、docker安装
- 本文使用Docker进行安装Nginx
- 先将Nginx配置文件复制出来:
- 需要先创建配置文件价
- docker cp nginx: 配置文件 ./
2、安装nginx.tar
- 教程百度
- 命令
- 启动命令——在/usr/local/nginx/sbin目录下执行 ./nginx
- 关闭命令——在/usr/local/nginx/sbin目录下执行 ./nginx -sstop
- 重新加载命令——在/usr/local/nginx/sbin目录下执行 ./nginx -sreload
二、Nginx配置文件
nginx.conf 配置文件分为三部分:
1、第一部分:全局块
- 这是Nginx服务器并发处理服务的关键配置
- worker_processes值越大
- 可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约
2、第二部分:events块
- events块涉及的指令主要影响Nginx服务器与用户的网络连接
- 常用的设置包括是否开启对多work process下的网络连接进行序列化
- 是否允许同时接收多个网络连接
- 选取哪种事件驱动模型来处理连接请求
- 每个wordprocess可以同时支持的最大连接数等
上述例子就表示每个work process支持的最大连接数为1024
3、第三部分:http块
docker版nginx配置文件分两部分nginx.conf和default.conf
- Nginx服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置
- http块也可以包括http全局块、server 块。
- 一个http块可以包括多个server块,而每个server块就相当于一个虚拟主机。
- 每个server块也分为全局server块,以及可以同时包含多个locaton块。
a、全局server 块
- 最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置。
b、location 块
- 一个server块可以配置多个location块。
- 主要作用是基于Nginx服务器接收到的请求字符串(例如server_name/uri-string)。
- 对虚拟主机名称(也可以是IP别名)之外的字符串(例如前面的/uri-string)进行匹配,对特定的请求进行处理
- 地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。
c、location指令说明
该指令用于匹配URL
- = :用于不含正则表达式的uri 前,要求请求字符串与uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
- ~:用于表示uri 包含正则表达式,并且区分大小写。
- ~:用于表示uri 包含正则表达式,并且不区分大小写。
- ^~:用于不含正则表达式的uri 前,要求Nginx 服务器找到标识uri和请求字符串匹配度最高的location 后,立即使用此location处理请求,而不再使用location块中的正则uri 和请求字符串做匹配。
注意:如果uri 包含正则表达式,则必须要有~ 或者~ 标识。
三、nginx配置实例
1、反向代理实例一
使用nginx反向代理,访问www.123.com 直接跳转到127.0.0.1:8080
2、反向代理实例二
实现效果:使用nginx反向代理,根据访问的路径跳转到不同端口的服务中。
nginx监听端口为9001
访问http://127.0.0.1:9001/edu/直接跳转到127.0.0.1:8081
访问http://127.0.0.1:9001/vod/直接跳转到127.0.0.1:8082
四、负载均衡
1、配置
2、Nginx负载均衡策略
- 轮询(默认)。每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
- weight。weight代表权,重默认为1,权重越高被分配的客户端越多指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
- ip_hash。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题.
- fair(第三方)。按后端服务器的响应时间来分配请求,响应时间短的优先分配。
五、nginx动静分离
严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat处理动态页面。
通过location 指定不同的后缀名实现不同的请求转发。
1、配置文件
六、nginx原理与优化参数配置
1、master-workers机制
- 对于每个worker进程来说,独立的进程,不需要加锁。
- 一个进程退出后,其它进程还在工作,服务不会中断,master进程则很快启动新的worker进程
a、设置worker数量
每个worker的线程可以把一个cpu的性能发挥到极致。所以worker数和服务器的cpu数相等是最为适宜的。
b、连接数worker_connection
这个值是表示每个worker进程所能建立连接的最大值。
nginx能建立的最大连接数(最 大 并 发 数 量) = worker_connections * worker_processes。
七、nginx搭建高可用集群
1、Keepalived+Nginx高可用集群(主从模式)
2、Keepalived+Nginx高可用集群(双主模式)
百度教程...
- Author:Josue
- URL:https://kakarot.cc/article/NginxInstall
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!