学习Nginx 核心100讲的日志

6 篇文章 0 订阅

陶辉老师讲的真的很好,在这里针对每一集很有用的地方做下笔记。

安装之后启动 nginx 后记得服务器开启 80 端口,或者关闭防火墙,否则无法访问

02.Nginx 适用于哪些场景?

 04.为什么用 Nginx:它的 5 个主要优点

05.Nginx 的四个主要组成部分

 06.Nginx 的版本发布历史

 07.选择哪一个 Nginx 发行版本?

开源版:nginx.org

商业版:nginx.com

阿里巴巴:Tengine:http://tengine.taobao.org/

OPenResty:原阿里巴巴工程师,章亦春:http://openresty.org/cn/

08.编译出适合自己的 Nginx:

下载 Nginx: http://nginx.org/en/download.html

版本选择:

1:Mainline version:最新版本 (包含最新功能)

2:Stable version :稳定版本 (推荐使用,稳定)

#下载
wget http://nginx.org/download/nginx-1.16.1.tar.gz

#解压
tar -xzf nginx-1.16.1.tar.gz

#进入
cd nginx-1.16.1



 查看 Nginx 编译支持的参数:

./configure --help | more

 开始编译 Nginx:

#指定目录安装,可以添加模块在此步骤

./configure --prefix=/usr/local/nginx && make && make install

#编译完成安装后会产生很多中间文件在目录 objs 下所示,所有安装的模块均在 ngx_modules.c 文件中

--with 需要主动附加,--without 为默认会编译 

 利用 contrib 配置 vim 语法高亮提示:


#在 nginx 源文件夹目录

cp -r contrib/vim/* /usr/share/vim/vimfiles/

#如果不知道自己的vimfiles文件夹位置,可以使用如下命令查看

find / -name vimfiles

输出:/usr/share/vim/vimfiles

09.Nginx 配置文件的通用语法介绍

 10.Nginx 命令行及演示:重载、热部署、日志切割

11.用 Nginx 搭建一个可用的静态资源 Web 服务器

location {
    alias 
    root 
}

区别:alias:以使用alias路径替换location路径 ,root :root路径+location路径

以目录结构分享给用户,比如各程序版本下载页面,以方便共享静态文件资源:

location / {
    autoindex on;
    #设置用户访问最大速度
    set $limit_rate 1k;
}

 关于自定义日志格式,可以在 http 模块中使用

http {
    #定义
    log_format main '变量-';
    
    server {
        access_log log/logs.log main;
    }

}

内置变量: http://nginx.org/en/docs/http/ngx_http_core_module.html#var_status

12.用 Nginx 搭建一个具备缓存功能的反向代理服务,都在一台服务器演示

主服务器配置:

从服务器配置,使用的是 OpenResty:

 从服务器配置讲解:

#定义后端服务器的请求头
proxy_set_header Host $host;

#拿到真实 IP
proxy_set_header X-Real-IP $remote_addr;

#获取客户端真实信息相关配置
proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;

13.用 GoAccess 实现可视化并实时监控 access 日志

https://goaccess.io/

#安装后在日志目录下执行
#/var/www/html/report.html 为web目录
goaccess access.log -o ../html/report.html --log-format=COMBINED --real-time-html

#然后在 server 中

server {
    location /report.html {
        #同上目录
        alias /var/www/html/report.html;
    }
}

然后访问指定网址即可

接下来的几节将证书,安装证书日志在这里:

https://blog.csdn.net/myarche/article/details/103628289

总体第二大节 第二章:Nginx架构基础 理论知识丰富,这里不做日志记录。

第三章:详解HTTP模块:

43.冲突的配置指令以谁为准?

 

 

44.Listen指令的用法

 46.Nginx中的正则表达式

 

 linux 下可以安装 pcretest 来进行模拟测试匹配

47.如何找到处理请求的server指令块

 

 50.postread阶段:获取真实客户端地址的realip模块

 

51.rewrite阶段的rewrite模块:return指令

 return 指令先于 error_page 并且 return 按照先后顺数优先执行,类似于 php 函数的 return

52.rewrite阶段的rewrite模块:重写URL

 

 53.rewrite阶段的rewrite模块:条件判断

 54.find_config阶段:找到处理请求的location指令块

 55.preaccess阶段:对连接做限制的limit_conn模块

 在这里测试了以使用 cloudfalre cdn 为代理,然后获取用户真实 IP 并限制并发数量:

#IP 地址为 cloudflare 的全球地址段

    set_real_ip_from 103.21.244.0/22;
    set_real_ip_from 103.22.200.0/22;
    set_real_ip_from 103.31.4.0/22;
    set_real_ip_from 104.16.0.0/12;
    set_real_ip_from 108.162.192.0/18;
    set_real_ip_from 131.0.72.0/22;
    set_real_ip_from 141.101.64.0/18;
    set_real_ip_from 162.158.0.0/15;
    set_real_ip_from 172.64.0.0/13;
    set_real_ip_from 173.245.48.0/20;
    set_real_ip_from 188.114.96.0/20;
    set_real_ip_from 190.93.240.0/20;
    set_real_ip_from 197.234.240.0/22;
    set_real_ip_from 198.41.128.0/17;
    set_real_ip_from 2400:cb00::/32;
    set_real_ip_from 2405:b500::/32;
    set_real_ip_from 2606:4700::/32;
    set_real_ip_from 2803:f800::/32;
    set_real_ip_from 2c0f:f248::/32;
    set_real_ip_from 2a06:98c0::/29;
    real_ip_recursive on;
    real_ip_header X-Forwarded-For;

#然后输出真实 IP 地址
return 200 "The real IP is $remote_addr";

#然后就可以正常的进行限速限制线程了

56.preaccess阶段:对请求做限制的limit_req模块

57.access阶段:对ip做限制的access模块

 

58.access阶段:对用户名密码做限制的auth_basic模块
 

 61.precontent阶段:按序访问资源的try_files模块

使用反向代理时,先用访问代理服务器的文件不存在时,在访问上游服务器的资源

 63.content阶段:详解root和alias指令

 64.static模块提供的3个变量

 

 65.static模块对url不以斜杠结尾却访问目录的做法

 以 html  有一个 first 文件夹,然后 curl dmain/first 为测试进行以下设置

 66.index和autoindex模块的用法

 

 

68.access日志的详细用法

70.用过滤模块更改响应中的字符串:sub模块

 

 71.用过滤模块在http响应的前后添加内容:addition模块

 

 73.HTTP框架提供的请求相关的变量

 

 74.HTTP框架提供的其他变量

 

 

 

75.使用变量防盗链的referer模块

 

 

 76.使用变量实现防盗链功能实践:secure_link模块

83.负载均衡策略:round-robin

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

	include vhost/*;
	
    upstream rrups {
	    	server 127.0.0.1:8011 weight=2 max_conns=2 max_fails=2 fail_timeout=5;
		server 127.0.0.1:8012;
		keepalive 32;
	}
	
	server {
		listen 80;
		server_name localhost;
	
		location /{
			proxy_pass http://rrups;
			proxy_http_version 1.1;
			proxy_set_header Connection "";
		}
	}

    

}

#被 include 的内容
server {
	listen 8011;
	#server_name  localhost;

	default_type text/plain;

	return 200 '8011 server reponse.\n';
	
}

server {
	listen 8012;
	#server_name  localhost;

	default_type text/plain;

	return 200 '8012 server reponse.\n';
	
}

84.负载均衡哈希算法:ip_hash与hash模块

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值