2.nginx配置文件使用详解(静态展点-负载均衡-防盗链-动静分离)

1、配置文件的语法格式

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;
        }
        location /nginx_status {
    	   stub_status on;
    	   access_log   off;
  	    }
    }
}

上述配置中的events、http、server、location、upstream等属于配置项块。而worker_processes 、worker_connections、include、listen 属于配置项块中的属性。 /nginx_status 属于配置块的特定参数参数。其中server块嵌套于http块,其可以直接继承访问Http块当中的参数。

格式:

配置块名称开头用大口号包裹其对应属性
属性基于空格切分属性名与属性值,属性值可能有多个项 都以空格进行切分 如: access_log logs/host.access.log main
参数其配置在 块名称与大括号间,其值如果有多个也是通过空格进行拆

2、配置静态站点

2.1 创建文件夹

mkdir -p /usr/www/dongkuijieIT

2.2 编写静态页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
hello nginx
</body>
</html>

2.3 上传至dongkuijieIT文件夹下

在这里插入图片描述

2.4 进入/根目录/nginx/conf目录修改配置文件

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;

    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /usr/www/dongkuijieIT;
            index  index.html index.htm;
        }
		location /test {
            alisa  /usr/www/dongkuijieIT;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

2.5 重新加载配置文件

./sbin/nginx -s reload

2.6 效果:

在这里插入图片描述
在这里插入图片描述

2.7 原理解析:

在浏览器输入http://192.168.1.6/会自动找向location /,然后再找根目录root /usr/www/dongkuijieIT;通过root根目录,在找向index.html
在这里插入图片描述

2.8 root与alias区别:

root 指定站点根目录

可配置在 server与location中,基于ROOT路径+URL中路径去寻找指定文件

alias 指定站点别名

只能配置location 中。基于alias 路径+ URL移除location  前缀后的路径来寻找文件。

3、配置静态站点

3.1 基于目录动静分离

配置文件:


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


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

    server {
        listen       80;
        server_name  localhost;
		location /static {
            alias  /usr/www/static;
        }
	
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

效果:
在这里插入图片描述

3.2 基于正则动静分离

配置文件:


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


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

    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /usr/www/dongkuijieIT;
            index  index.html index.htm;
        }
		location ~* \.(gif|jpg|png|css|js)$ {
            root   /usr/www/static;
        }
		
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

效果:
在这里插入图片描述

4、防盗链配置

# 加入至指定location 即可实现
valid_referers none blocked *.luban.com;
 if ($invalid_referer) {
       return 403;
}

5、下载限速

location /download {
    limit_rate 1m; //限制每S下载速度
    limit_rate_after 30m; // 超过30 之 后在下载
}

6.创建IP黑名单

#封禁指定IP
deny 192.168.0.1;
allow 192.168.0.1;
#开放指定IP 段
allow 192.168.0.0/24;
#封禁所有
deny    all;
#开放所有
allow    all;
# 创建黑名单文件
echo 'deny 192.168.0.132;' >> balck.ip
#http 配置块中引入 黑名单文件
include       black.ip;

7.负载均衡

配置文件:


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


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

	upstream backend {
		server 127.0.0.1:8082 weight=1;
		server 127.0.0.1:8083 weight=2;
		server 127.0.0.1:8084 weight=1 backup;
	}
    server {
        listen       80;
        server_name  localhost;
        location / {
			proxy_pass http://backend;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

参数详解:
1.要负载均衡服务器的ip:端口号

weight:负载均衡的权重
backup:当两台服务器都挂掉以后,8084这台服务器会做备份服务器
max_fails:失败多少次 认为主机已挂掉则剔除
fail_timeout:踢出后重新探测时间
max_conns:允许最大连接数
slow_start:当节点恢复,不立即加入,而是等待 slow_start	后加入服务对列。
upstream backend {
		server 127.0.0.1:8082 weight=1;
		server 127.0.0.1:8083 weight=2;
		server 127.0.0.1:8084 weight=1 backup;
	}

注意:当8082 挂掉以后,nginx会将它剔除,当8082恢复以后nginx会再将它添加进来。8083同理

负载均衡算法:

ll+weight: 轮询加权重 (默认)
ip_hash : 基于Hash 计算 ,用于保持session 一至性
url_hash: 静态资源缓存,节约存储,加快速度(第三方)
least_conn :最少链接(第三方)
least_time  :最小的响应时间,计算节点平均响应时间,然后取响应最快的那个,分配更高权重(第三方)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值