2024年Web服务器——《Nginx》(1),2024年是意义非凡的一年

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

cd nginx-1.17.8

命令⾏执⾏./configure

命令⾏执⾏ make

命令⾏执⾏ make install,完毕之后在/usr/local/下会产⽣⼀个nginx⽬录

进⼊sbin⽬录中,执⾏启动nginx命令

cd nginx/sbin
./nginx


**Nginx主要命令**



启动

./nginx

终⽌nginx(当然也可以找到nginx进程号,然后使⽤kill -9 杀掉nginx进程)

./nginx -s stop

(重新加载nginx.conf配置⽂件

./nginx -s reload


## Nginx核心配置文件解读


Nginx的核⼼配置⽂件conf/nginx.conf包含三块内容:`全局块`、`events块`、`http块`


* 全局块  
 从配置⽂件开始到events块之间的内容,此处的配置影响nginx服务器整体的运⾏,⽐如worker进程的数量、错误⽇志的位置等
* event  
 events块主要影响nginx服务器与⽤户的⽹络连接,⽐如worker\_connections 1024,标识每个workderprocess⽀持的最⼤连接数为1024’
* http块  
 http块是配置最频繁的部分,虚拟主机的配置,监听端⼝的配置,请求转发、反向代理、负载均衡等


## Nginx应用场景之反向代理


**需求一**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210429151907612.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2NTgxOTYx,size_16,color_FFFFFF,t_70)


* 部署tomcat,保持默认监听8080端⼝
* 修改nginx配置,并重新加载
	+ 修改nginx配置 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210429152036255.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2NTgxOTYx,size_16,color_FFFFFF,t_70)
	+ 重载nginx配置  
	 ./nginx -s reload
* 测试,访问`http://127.0.0.0.1:90031`,返回tomcat的⻚⾯


**需求⼆**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210429152235602.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2NTgxOTYx,size_16,color_FFFFFF,t_70)


* 再部署⼀台tomcat,保持默认监听8081端⼝
* 修改nginx配置,并重新加载  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210429152305869.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2NTgxOTYx,size_16,color_FFFFFF,t_70)
* 这⾥主要就是多location的使⽤,这⾥的nginx中server/location就好⽐tomcat中的Host/Context


location 语法如下:



location [=||*|^~] /uri/ { … }



> 
> 在nginx配置⽂件中,location主要有这⼏种形式:  
>  1)正则匹配 location ~ /lagou { }  
>  2)不区分⼤⼩写的正则匹配 location ~\* /lagou { }  
>  3)匹配路径的前缀 location ^~ /lagou { }  
>  4)精确匹配 location = /lagou { }  
>  5)普通路径前缀匹配 location /lagou { }  
>  优先级:4 > 3 > 2 > 1 > 5
> 
> 
> 


## Nginx应用场景之负载均衡


![在这里插入图片描述](https://img-blog.csdnimg.cn/2021042915271457.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2NTgxOTYx,size_16,color_FFFFFF,t_70)  
 **Nginx负载均衡策略**  
 `轮询`  
 默认策略,每个请求按时间顺序逐⼀分配到不同的服务器,如果某⼀个服务器下线,能⾃动剔除



upstream lagouServer{
server 111.229.248.243:8080;
server 111.229.248.243:8082;
}
location /abc {
proxy_pass http://lagouServer/;
}


`weight`  
 weight代表权重,默认每⼀个负载的服务器都为1,权重越⾼那么被分配的请求越多(⽤于服务器性能不均衡的场景)



upstream lagouServer{
server 111.229.248.243:8080 weight=1;
server 111.229.248.243:8082 weight=2;
}


`ip_hash`  
 每个请求按照ip的hash结果分配,每⼀个客户端的请求会固定分配到同⼀个⽬标服务器处理,可以解决session问题



upstream lagouServer{
ip_hash;
server 111.229.248.243:8080;
server 111.229.248.243:8082;
}


## Nginx应⽤场景之动静分离


动静分离就是讲动态资源和静态资源的请求处理分配到不同的服务器上,⽐较经典的组合就是Nginx+Tomcat架构(Nginx处理静态资源请求,Tomcat处理动态资源请求),那么其实之前的讲解中,Nginx反向代理⽬标服务器Tomcat,我们能看到⽬标服务器ROOT项⽬的index.jsp,这本身就是Tomcat在处理动态资源请求了。所以,我们只需要配置静态资源访问即可。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210429153028812.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2NTgxOTYx,size_16,color_FFFFFF,t_70)  
 **Nginx配置**



静态资源处理 直接去nginx服务器目录中加载

location /static/ {
root staticData
}


## Nginx底层进程机制剖析


Nginx启动后,以daemon多进程⽅式在后台运⾏,包括⼀个Master进程和多个Worker进程,Master进程是领导,是⽼⼤,Worker进程是⼲活的⼩弟。


* master进程  
 主要是管理worker进程,⽐如:
	+ 接收外界信号向各worker进程发送信号(./nginx -s reload)
	+ 监控worker进程的运⾏状态,当worker进程异常退出后Master进程会⾃动重新启动新的worker进程等
* worker进程  
 worker进程具体处理⽹络请求。多个worker进程之间是对等的,他们同等竞争来⾃客户端的请求,各进程互相之间是独⽴的。⼀个请求,只可能在⼀个worker进程中处理,⼀个worker进程,不可能处理其它进程的请求。worker进程的个数是可以设置的,⼀般设置与机器cpu核数⼀致。



![img](https://img-blog.csdnimg.cn/img_convert/7974e2b68f4e7e60206b7ae1a6df22fb.png)
![img](https://img-blog.csdnimg.cn/img_convert/187610e8e97febe0803e4d74264cc7ec.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值