nginx笔记

目录

一、服务启动命令

二、Nginx入门

2.1.运行原理

2.2.Nginx配置文件

2.3.虚拟主机与域名解析

2.3.1.虚拟主机

2.3.2.域名解析规则

        我们需要注意的是servername匹配分先后顺序,写在前面的匹配上就不会继续往下匹配了。

2.4.反向代理与正向代理

2.4.1.反向代理

2.4.2.正向代理

2.4.3.nginx实现反向代理 

2.5.基于反向代理的负载均衡

2.5.1.轮询

2.5.2.weight(权重)

2.5.3.ip_hash

2.5.4.least_conn

2.5.5.url_hash

2.5.6.fair

2.6.动静分离

2.6.1.配置方法

 2.6.2.location匹配顺序

2.7.URLRewrite

2.7.1.实例

 2.7.2.rewrite语法格式及参数语法

 2.7.3.URLRewrite + 负载均衡

2.8.防盗链 

2.9.高可用场景


一、服务启动命令

        启动服务                              systemctl start nginx.service

        查看服务                              systemctl status nginx.service

        设置开机启动                       systemctl enable nginx.service

        修改配置后重新加载            systemctl reload nginx

        重启服务                              systemctl restart nginx

二、Nginx入门

2.1.运行原理

nginx笔记_第1张图片

2.2.Nginx配置文件

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html; 
            index  index.html index.htm;	 #访问80端口,找到nginx目录下的html目录下的index.html
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}

配置讲解:

        worker_processes 1:默认为1,表示开启一个业务进程

        worker_connections 1024:单个业务进程可接受连接数

        include mime.types:引入http mime类型

        default_type application/octet-stream:如果mime类型没匹配上,默认使用二进制流的方式传输。

        sendfile on:使用linux的 sendfile(socket, file, len) 高效网络传输,也就是数据0拷贝。

        keepalive_timeout 65:保持连接,超时时间。

        server: {
            listen 80; 监听端口号
            server_name localhost; #域名、主机名
            location / { 匹配路径
               root html; 文件根目录
                index index.html index.htm; 默认页名称
            }
            error_page 500 502 503 504 /50x.html; 报错编码对应页面
            location = /50x.html {
                    root html;
                }
        }

2.3.虚拟主机与域名解析

2.3.1.虚拟主机

        原本一台服务器只能对应一个站点,通过虚拟主机技术可以虚拟化成多个站点同时对外提供服务

2.3.2.域名解析规则

        我们需要注意的是servername匹配分先后顺序,写在前面的匹配上就不会继续往下匹配了。

        可以在同一servername中匹配多个域名

        完整匹配                              server_name vod.mmban.com www1.mmban.com;

        通配符匹配                          server_name *.mmban.com

        通配符结束匹配                   server_name vod.*;

        正则匹配                              server_name ~^[0-9]+\.mmban\.com$;

2.4.反向代理与正向代理

2.4.1.反向代理

        反向代理,指的是浏览器/客户端并不知道自己要访问具体哪台目标服务器,只知道去访问代理服务器 ,代理服务器再通过反向代理 +负载均衡实现请求分发到应用服务器的一种代理服务。
        反向代理服务的特点是代理服务器 代理的对象是应用服务器,也就是对于浏览器/客户端 来说应用服务器是隐藏的

nginx笔记_第2张图片

2.4.2.正向代理

        正向代理,指的是通过代理服务器 代理浏览器/客户端去重定向请求访问到目标服务器 的一种代理服务。
        正向代理服务的特点是代理服务器 代理的对象是浏览器/客户端,也就是对于目标服务器 来说浏览器/客户端是隐藏的。

nginx笔记_第3张图片

2.4.3.nginx实现反向代理 

        使用proxy_pass

        浏览器访问localhost就会跳转到 http://www.baidu.com,同时域名没有变化(不支持https)可以有多个server。然后根据策略、调度。

nginx笔记_第4张图片

2.5.基于反向代理的负载均衡

        负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡

2.5.1.轮询

        默认情况下使用轮询方式,逐一转发,这种方式适用于无状态请求。

nginx笔记_第5张图片

2.5.2.weight(权重)

        指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

nginx笔记_第6张图片

        down:表示当前的server暂时不参与负载

        weight:默认为1.weight越大,负载的权重就越大。

        backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。 

        max_fails : 请求失败次数限制        

        fail_timeout : 经过max_fails后服务暂停时间

        max_conns : 限制最大的连接数

        加权轮询是如何实现的?

nginx笔记_第7张图片

2.5.3.ip_hash

       根据客户端的ip地址转发同一台服务器,可以保持回话。

2.5.4.least_conn

        最少连接访问

2.5.5.url_hash

       根据用户访问的url定向转发请求

2.5.6.fair

       根据后端服务器响应时间转发请求

2.6.动静分离

        动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路

nginx笔记_第8张图片

2.6.1.配置方法

        先将静态文件(css、img、js)传入nginx的html目录下(/usr/local/nginx/html)

nginx笔记_第9张图片

 2.6.2.location匹配顺序

  • 多个正则location直接按书写顺序匹配,成功后就不会继续往后面匹配
  • 普通(非正则)location会一直往下,直到找到匹配度最高的(最大前缀匹配)
  • 当普通location与正则location同时存在,如果正则匹配成功,则不会再执行普通匹配
  • 所有类型location存在时,“=”匹配 > “^~”匹配 > 正则匹配 > 普通(最大前缀匹配)

2.7.URLRewrite

2.7.1.实例

nginx笔记_第10张图片

 2.7.2.rewrite语法格式及参数语法

        rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容, 重定向到replacement,结尾是flag标记。

        rewrite               [flag];
        关键字         正则           替代内容         flag标记

其中:

1)关键字:其中关键字error_log不能改变

2)正则:perl兼容正则表达式语句进行规则匹配

3)替代内容:将正则匹配的内容替换成replacement

4)flag标记:rewrite支持的flag标记

rewrite参数的标签段位置: server,location,if

flag标记说明: 

        ast :本条规则匹配完成后,继续向下匹配新的location URI规则

        break :本条规则匹配完成即终止,不再匹配后面的任何规则

        redirect :返回302临时重定向,浏览器地址会显示跳转后的URL地址 (防爬虫)

        permanent :返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

 2.7.3.URLRewrite + 负载均衡

nginx笔记_第11张图片

实例:

nginx笔记_第12张图片

2.8.防盗链 

nginx笔记_第13张图片

2.9.高可用场景

        安装 keepalived

nginx笔记_第14张图片

你可能感兴趣的:(nginx,运维,linux)