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
原文地址:https://www.cnblogs.com/WhiteCoder/p/10549113.html