• nginx配置


    Nginx简介
    web 反向代理 缓存
    优点:
    简单稳定
    模块
    rewrite
    Nginx部署
    安装:
    apt-get install -y build-essential libssl-dev libtool libpcre3 libpcre3-dev make openssl zlib1g-dev
    apt-get install nginx -y
    基本的目录:
    /etc/nginx
    /var/www/html /usr/share/nginx/html
    /var/log/html
    /usr/sbin/nginx
    配置文件:
    /etc/nginx/nginx.conf
    全局配置段
    http配置段
    server配置段 项目、应用 一个域名
    location配置段 url

    				http >= server(>= location)  
    		访问原理:
    			1  浏览器拆分地址  地址+路径
    			2  根据地址找服务器
    			3  把路径交给指定server的location去处理
    			4  location找到对应文件后返回给浏览器
    						
    		nginx请求处理:master /worker 
    		
    	配置详解
    		全局配置段
    			work_processes
    			events{work_connections}
    		http配置段
    			sendfile
    			gzip
    		server配置段
    			server{
    				listen				指定监听地址
    				server_name			指定主机名 -- 一般用项目域名来代替
    			}
    			优先级:
    				listen > server_name
    			
    			示例:
    			server {
    				listen 192.168.8.14:99;
    				server_name www.baidu.com;
    				root /var/www/html;
    				index index.html index.htm index.nginx-debian.html;
    				location / {
    				}
    			}
    
    			
    		location配置段
    			location optional_modifier location_match { ... } 
    				optional_modifier 	匹配条件
    					正则 、普通
    					
    					优先级:	
    						精确 > 优先 > 正则 > 通用
    						
    				location_match		匹配样式
    					后缀 *** 
    					路径 **
    					
    			匹配样式中的 / 
    				没有 / 表示文件
    				有 / 表示目录
    				
    			示例:
    				参考下发的配置文件示例
    			
    			root 		相对路径
    			alias		绝对路径
    			
    Nginx进阶知识
    	反向代理	
    		正向	保护的是后端的客户
    		反向 	保护的是后端的服务器
    		
    		反向代理的配置;
    			proxy_pass 
    			proxy_set_header
    			
    		proxy_pass的时候,后面的url有无"/"是不一样的
    			示例代码:
    			location /html/ {
    			  1 proxy_pass http://proxy.com; 
    				2 proxy_pass http://proxy.com/;
    			}
    			假设我们访问的url是 http://domain.com/html/test.js,如何理解上述两种proxy_pass的区别呢?
    			对于 1 来说 proxy.com后面没有"/",表示"/html/" 请求(包括自己)后续的路径及其参数等关键字都由http://a.com/来处理,代理后的样式如下:
    			http://proxy.com/html/test.js
    			对于 2 来所 proxy.com后面有"/",表示"/html/" 请求后续的路径及其参数等关键字都由http://a.com/来处理,代理后的样式如下:
    			http://proxy.com/test.js			
    			
    	负载均衡
    		proxy_pass 针对的是单个
    		
    		upstream
    			server 指令
    		
    		upstream 状态:
    			手工
    				down 		 
    			自动:
    				backup
    				max_fails
    				fail_timeout
    				
    			示例:
    				参考下发的配置文件示例	
    				
    		调度策略
    			内置策略
    				轮训  默认
    				加权轮训
    				哈希
    				ip_hash
    				最小链接
    				cookie
    			扩展策略
    				自定义
    				第三方: fair  url_hash
    				
    			示例:
    				参考下发的配置文件示例					
    			
    	日志解析
    		目的:
    			1 日志的定制 -- 未来项目的监控
    			2 学习nginx内置变量 --- 用户请求的精细化管理
    			
    		日志格式
    			定义格式
    				log_format 日志格式名称 "nginx内置变量自定义组合"
    			使用格式
    				access_log 日志路径 日志格式名称
    		日志实践(反向代理获取真实的客户端IP)
    			步骤:
    				1 定制日志格式
    				2 反向代理服务器设置相关的属性配置
    				3 真实后端主机使用相关属性
    				
    			示例:
    				参考下发的配置文件示例						
    		
    			
    	URL重写	
    		场景: 用户请求的定制分发
    		规则:
    			rewrite 正则 重写样式 标签
    				正则作用的对象是 原来请求中的路径
    				重写样式的对象是 用户最后看到的样式
    				标签:
    					last				正则
    					break				优先正则
    					redirect
    					permanent
    		if 指令	
    			场景:用户请求的精细分发
    			if (内置变量 符号 值) {
    				...
    			}
    			
    		if 实践 防盗链
    			$invalid_referer
    			curl
    				-I
    				-H
  • 相关阅读:
    nginx 过滤了自定义的请求头参数
    Mysql5.7查看已经执行的sql语句
    Reids5 持久化
    JS 格式化时间,转成 几天前,几个月前
    个人小镜像站点
    记录一次清理Redis 病毒程序 kdevtmpfsi
    laravels 热重启
    Redis 布隆器安装和简单实现
    Redis Zset类型跳跃表算法实现(JAVA)
    Redis5 基于Lua实现分布式排它锁
  • 原文地址:https://www.cnblogs.com/WhiteCoder/p/10549113.html
Copyright © 2020-2023  润新知