nginx原理及如何使用

#尚硅谷 nginx 概念
nginx反向代理
	(正向代理):客户端访问服务端之间配置一个代理服务器,通过互联网的代理服务器访问目的服务器,再将数据返还给客户端
	(反向代理):客户端对代理是无感知的,因为客户端只需要将请求发送到反向代理服务器中,再由反向代理
					服务器对目标资源服务器进行请求数据,再返还给客户端,而客户端访问的始终是反向代理服务器
					并不知道目标资源服务器的真是ip及其相关信息。隐藏了目标服务器的ip信息

nginx负载均衡
	客户端发送多个请求到服务器,服务器处理请求,需要跟后端数据库进行交互,服务器处理完毕后,再将结果返回给客户端。
	通过负载均衡能够提高并发数量,将客户端的请求分发到后端多个数据库上从而提高处理时间,从1对1,变成了1对多的关系

nginx动静分离
	为了加快网站的解析速度,将动态网页和静态网页,分开放置不同服务器中,
	html\css\js  统称问静态资源
	php\jsp\servlet  统称动态资源
	
Linux 系统安装nginx
	下载软件包
	安装nginx相关依赖包
	pcre openssl zlib


firewall-cmd --add-port=80/tcp --permanent   # 防火墙天使你家80端口
firewall-cmd --reload  #重新读取防火墙规则
firewall-cmd --list-all   #查看防火墙现有规则

nginx 常用命令
	使用ngxin操作命令前提条件:必须进入nginx目录中去
	/usr/local/nginx/sbin
	
	命令:
		查看nginx的版本号
		./nginx -v
		
		查看nginx 的编译参数
		./nginx -V
		
		启动nginx
		./nginx
		
		关闭nginx
		./nginx -s stop
		
		重新加载nginx
		./nginx -s reload
		
		
nginx 配置文件
	/usr/local/nginx/conf/nginx.conf
	nginx配置文件 组成部分
		1.全局块
			从配置文件开始到events块之间的内容,主要会设置一些影响nginx运行的配置指令
			主要包括配置运行nginx服务器的用户/组、允许生成worker process 数、进程PID存放路径、日志存放路径
			和类型及配置文件的引入等。
			
			
			worker_processes  1;  #这句话的意思是nginx 服务器处理服务的关键配置,值越大,处理并发数量越多
									但是会受到硬件限制
		
		2.events块
			主要是影响nginx服务器与用户的网络链接
			比如: worker_connections  1024;  # 意思是支持最大链接数
		
		
		3.http 块
			这是nginx服务配置中最频繁的部分,代理、缓存和日志定义等大多数功能都是在这里配置
			http块两部分组成
				1.http全局块
					全局块配置的指令包括文件引入、MIME-TYPE定义、日志定义、链接超时定义、单链接数请求上限等
				
				2.server块
					虚拟主机的主要配置在server块中配置
					server块分两部分组成
					1.全局server块
					2.location 块
						location 块中支持正则表达式
					
					
					
					
					
					server块示例
						server {
						listen       80; 	#监听端口
						server_name  localhost;		#主机域名

						#charset koi8-r;

						#access_log  logs/host.access.log  main;

						location / {			#url访问路径
							root   html;		#index.html 索引文件 
							index  index.html index.htm;
						}



nginx 反向代理配置实例
	1.配置nginx反向代理实例1
		1.实现效果:打开浏览器,在浏览器地址中输入www.123.com,跳转到后端服务器中Linux tomcat主页面中
		2.具体实现
			在Linux系统中安装tomcat,使用默认端口8080
			需要jdk环境,若系统没有需要下载jdk包并解压,然后把java_home添加到环境变量
			
			在nginx 中配置请求代理转发
			location / {
            root   html;
            proxy_pass http://192.168.127.137;    # 将请求默认跳转137 网络ip服务器中去
            index  index.html index.htm;
        }
	2.配置nginx反向代理实例2
		1.实现规则判断当访问url 中出现某些字符如/edu/就跳转到某个ip上
		修改配置文件中的,按下方示例
		 location ~ /edu/ {
            root   html;
            proxy_pass http://192.168.127.136:8080;
            index  index.html index.htm;
        }

		 location / {
            root   html;
            proxy_pass http://192.168.127.137;
            index  index.html index.htm;
        }
		

		location 配置说明
			= :用于不含正则表达式的url 前,要求请求字符与url严格匹配,如果匹配成功
				,就停止继续向下搜索并立即处理该请求。
			~ :用于表示url 包含正则表达式,并且区分大小写
			~* :用于表示url包含正则表达式,并且不区分大小写
			^~ :用于不包含正则表达式的url前,要求nginx服务器找到标识url请求字符匹配度最高
				的location后,立即使用此location处理请求,而不再使用location中的正则url和请求字符串匹配
				
	
2.配置nginx负载均衡
		负载均衡示例
		实现效果:平均将客户端的访问分发到多台服务器上
		做法:
			在http块中添加upstream 模块 ,与server块一齐
			
			upstream [name] {
				ip_hash
				server [后端服务器的ip];
				server [后端服务器的ip];
				server [后端服务器的ip];
				server [后端服务器的ip];
				fair;    #注意第一行添加了ip_hash后尾行就不能添加了fair
			}
			
			
			location块中加上proxy_pass http://name;
			
			
			nginx负载均衡策略
			权重   #server 192.168.127.137 weight=5   在upstream模块中ip后面添加weight=数字权重数值越大,被访问的次数越多
			轮询   #默认的负载均衡策略
			ip_hash    #直接在upstream模块中首行添加 ip_hash;  对每个ip进行绑定,每次同一个ip访问都是同一台服务器,不同的
						ip会被分配到不同的服务器,同时也解决了session会话问题
			fair    # 按照后端响应时间分配,响应越短越优先  ,在upstream模块中尾行添加   fair;
						
			
			
			
			基本的负载均衡就做出来了
		
			
			
	
3.配置nginx动静分离
	示例:url路径请求,通过不同的路径访问不同的资源
	worker_processes  2;
	events {
		worker_connections  1024;
	}
	http {
		include       mime.types;
		default_type  application/octet-stream;
		sendfile        on;
		keepalive_timeout  65;
		server {
			listen       80;
			server_name  192.168.127.141;
			location /www/ {
				root   /data/;
			index  index.html index.htm;
			}
			location /imges/ {
				root   /data/;
			index  index.html index.htm;
			autoindex on;
			}
			error_page   500 502 503 504  /50x.html;
			location = /50x.html {
				root   html;
			}
		}
	}

	
	
	
	
nginx 高可用
	基础配置需求
	1.两台nginx服务器
	2.需要在nginx服务器上安装keepalived
	3.虚拟ip
	keepalived 配置文件内容
	
如何使用nginx
	基于centos 操作系统,从0开始构建一套nginx web服务器平台
	两种部署方式
		yum 二进制方式
			自动解决依赖关系,自动安装软件,不能自定义参数
		make 源码编译
			部署方式复杂,不能自动检验,需要手工检验,可以自定义软件模块参数
			


安装步骤
	解压缩包
		tar -xzvf nginx
		cd nginx
	因为nginx是基于c语言开发的源代码软件程序,默认不能被Linux操作系统直接使用的
	需要借助c编译器将源代码文件编译成二进制文件,所以需要执行源代码软件宝部署步骤
	
		预编译
			./configure --prefix=/usr/local/nginx --user=www --group=www
			--with-http_stub_status_module
			#主要检测Linux系统安装该软件所需的以来环境、库文件、检测系统是否有gcc编译环境
			指定软件服务部署的路径,自定义软件服务特定的模块和功能,最终产生makefile文件
	
		编译
			make
			#主要是通过make编译工具,读取makefile文件,调用linux系统下的gcc编译环境,将软件包的原代码文件编译成二进制文件
			makefile文件用途,主要是高职make编译工具,在编译源代码文件时候,从哪个源代码开始编译到哪里结束,以及记录编译时的依赖关系
			
		安装
			make install
			#主要是将第二步make编译产生的二进制文件安装之Linux操作系统指定的安装目录中
			#目录安装在/usr/local/nginx
			#启动服务前先关闭网络防火墙,或添加80端口规则
			#启动命令/usr/local/sbin/nginx
	
	
	
源码包平滑降低nginx版本等级
		重新编译旧版软件包
		在预编译的时候参数必须与现有新版本的nginx预编译参数相同,具体操作看上方
		kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`   #将原有的pid进程陆续停掉
		不要运行make install
	
	
	
/usr/local/nginx/sbin/nginx -v
#查看当前nginx安装版本
/usr/local/nginx/sbin/nginx -V
#查看现有nginx安装预编译的参数
	
	
	
扩展:
	gzip #功能用于压缩网页文件,用户访问后将压缩文件在本地浏览器再解压
	prce # perl语言的库,用于nginx访问重定向	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值