Nginx 学习

一、什么是nginx

1、nginx基本概念

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,占有内存少,并发能力强,能接受高负载。

2、反向代理

(1)、正向代理

用户无法访问某网站,但是可以访问代理服务器,代理服务器可以访问目标网站,用户配置代理服务器让
代理服务器对目标网站进行访问,并把结果返回给用户 (老打工人了)


(2)、反向代理

用户访问代理服务器,代理服务器去访问目标资源,处理返回结果给用户,从外部看用户不知道是否有代理服务器以为是一个服务器,暴漏的是代理服务器,隐藏了访问的资源服务器

3、负载均衡

负载均衡(Load Balance),意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。

4、动静分离

有专门的服务器放静态资源。用户请求静态资源时nginx就去静态资源服务器查找。加快了网站的解析速度,降低单个服务器的压力

二、Nginx安装、常用命令、配置文件

1、Nginx安装

1、下载nginx
2、解压nginx
3、$sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev //安装依赖库
4、./configure
5make && make install	//编译并且安装
*安装成功后 usr/local 会多出一个nginx文件 nginx里有sbin,sbin里面有启动脚本
相关命令:
	ps -e | grep nginx	//查看是否启动nginx
	netstat -ltunp		//查看占用的端口号等详细信息
----防火墙默认无法访问,添加规则开放端口即可

2、Nginx常用命令

*使用ngin常用密令要在	/usr/local/nginx/sbin 中使用
	./nginx -v		//查看nginx版本号
	./nginx			//启动
	./nginx -s stop		//关闭
	./nginx -s reload	//重新加载(比如conf的配置文件)

3、Nginx配置文件

*nginx配置文件在 /usr/local/nginx/conf	中 nginx配置文件分为三块
	1、全局块
		全局开始到events结束为全局快,主要设置一些影响nginx服务器整体运行的配置指令 例:worker_processes  1; 是
	nginx处理并发的数量,值越大处理的并发也越多(会受到硬件影响)

	2、events块
		影响nginx服务器与用户的网络连接 例:worker_connections  1024; 表示nginx用户最大连接数量

	3、http块
		又包括 http全局块 和 server块 是配置最频繁的部分(高可用,负载均衡,动静分离都要在这配置)可以嵌套多个
	server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使
	用sendfile传输文件,连接超时时间,单连接请求数等。

		server全局块:配置虚拟主机的相关参数,一个http中可以有多个server。
		
		location块:配置请求的路由,以及各种页面的处理情况。

三、Nginx配置示例-反向代理

实例一、反向代理
	1、修改配置文件
		server {
			listen       80;
			server_name  localhost     //nginx地址;
		
			location / {
			    root   html;
				//添加proxy_pass +http://项目地址
			    proxy_pass http://localhost:428;
			    index  index.html index.htm;
			}
		}
		
		 

实例二、反向代理(根据访问路径跳转不同端口)
	1、部署两个tomcat,tom1的dev放a.html,tom2的vod放b.html,并开放端口
	
	2、修改配置文件
		server {
			listen       80;
			server_name  localhost     //nginx地址;
		
			location ~ /edu/ {
			    proxy_pass http://localhost:8080
			}

			location ~ /vod/ {
			    proxy_pass http://localhost:8081
			}
		}

location使用正则表达式
location   =   /uri       =开头表示精确前缀匹配,只有完全匹配才能生效。

location   ^~   /uri       ^~开头表示普通字符串匹配上以后不再进行正则匹配。

location   ~   pattern     ~开头表示区分大小写的正则匹配。

location   ~*   pattern     ~*开头表示不区分大小写的正则匹配。

location   /uri           不带任何修饰符,表示前缀匹配。

location   /             通用匹配,任何未匹配到其他location的请求都会匹配到。

注意:
正则匹配会根据匹配顺序,找到第一个匹配的正则表达式后将停止搜索。普通字符串匹配则无视顺序,只会选择最精确的匹配。

四、Nginx配置实例-负载均衡(增加服务器,平摊访问)

1、修改文件
	http下添加:
		upstream 服务名字{
			server 192.168.1.1:8080;
			server 192.169.1.1:8080;
		}
	配置server {
		listen       80;
		server_name  192.168.1.1     //nginx地址;
			
		location / {
		    proxy_pass http://服务名字;
		}
	}

2、负载均衡策略
	·轮询(默认)
		按照时间顺序进行分配,服务器宕机自动剔除。

	·weight
		默认为1,权重越高被分配的客户端越多,就是按比例分配
		例:
			upstream 服务名字{
				server 192.168.1.1:8080 weight=5;
				server 192.169.1.1:8080 weight=10;
			}

	·ip_hash
		大白话就是,按照你的ip地址来,你的ip分到服务器1以后你访问都是服务器1可解决session问题
		例:
			upstream 服务名字{
				ip_hash
				server 192.168.1.1:8080;
				server 192.169.1.1:8080;
			}

	·fair(第三方)按照后端访问时间,那个服务器相应快那个先给用户访问
		例:
			upstream 服务名字{
				server 192.168.1.1:8080;
				server 192.169.1.1:8080;
				fair
			}

五、Nginx配置示例-动静分离

*常用方式单独域名存放静态资源。
			location /www/ {
			    root /data/;
			}

			location /image/ {
			    root /data/;
			    autoindex on; //显示文件列表
			}

六、Nginx配置高可用集群

((主从模式))解决nginx宕机就是高可用。。。。
需要2台nginx服务器
需要keeplived
需要虚拟ip地址

1、两台服务器都装上nginx服务器

2、两台服务器安装keeplived
	安装后 etc 下会生成keeplived目录,里面包含keeplived配置文件keeplived.conf
	配置keeplived,并且配置脚本
	

3、然后就高可用了
posted @   迷途者寻影而行  阅读(177)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示