nginx简单介绍
Nginx的负载均衡策略可以分两大类:内置策略和扩展侧略:
内置策略包括:轮询,加权轮询,IP hash
扩展策略是:url hash ,fair
nginx.conf文件结构
1)全局块:
通常配置一运行nginx的组,用户,允许生成的work process数,PID的存放路径
2)events块
支持使用的网络事件模型,每个workprocess可以同时支持的最大连接数
3)http块
包含server块,每个server块又包含location块。
可以在http块中配置包括文件的引入,MIME-Type定义,是否使用sendfile传输文件
4)server块
和虚拟主机相连接,每个server块相当与一台虚拟主机
5)location块
基于nginx服务器收到的请求字符串(例如server_name/uri_string),对除虚拟主机名称(也可以是IP别名)之外的字符串(例如uri_string部分进行)匹配,对特定段请求进行处理,地址定向,数据缓存和应答控制等功能都是在这一部分实现的。
如果有多个匹配就记录匹配最高的那个,然后,服务器再用localtion块的中的正则uri和请求的字符串匹配,当第一个正则匹配成功以后就结束搜索,并使用这个location块处理请求,如果正则失败就使用记录的匹配度最高的localtion块处理这个请求;
location定义的三种方式;
1)location url{} 对当前路径及路径下的所有对象都有效
2)Location =url{} 只对当前路径有效
=要求请求的字符串与uri严格匹配,如果匹配成功,就停止继续搜索;
3)Location ~url{} ~做模式匹配,区分字符大小写
4)Location ~{} 不区分字符大小写
如果uri包含正则表达式 ,就必须使用~或 ~
具体指令
1)设置网络连接的序列话化
Accpet_mutex on
设置为开启的时候,将会对nginx进程连接进行序列化,防止多个进程对连接的争抢,解决惊群现象
2)
location / {
root html; ##收到网络请求后就在指定目录下寻找请求的资源;
index index.html index.htm;#设置网站的默认首页
}
3)Nginx.conf配置内容
**********************全局模块*******************
user nginx nginx; #配置用户和组
#user nobody;
worker_processes 1; #配置运行nginx生成的worker process数
#error_log logs/error.log; #配置nginx进程生成的对错误日志的解析
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid; #进程pid的文件的存放路径
**********事件模块********************************
events {
use epoll; #配置事件驱动模型
worker_connections 1024; #配置最大的连接数
}
****************http,server,location模块*********
http {
include mime.types; #定义MIME-Type
default_type application/octet-stream;
sendfile on; #允许使用sendfile方式传输
keepalive_timeout 65; ###配置连接超时间件
server {
listen 80;
server_name localhost;
#access_log logs/host.access.log main;#配置请求日志的存放路径
location / {
root html; #配置请求服务资源的根目录
index index.html index.htm;##设置网站的默认首页
}