前言
昨天看了狂神的一个讲解nginx基础的视频,今天凭着记忆,再加上一些自己的理解记录一下
原博客:链接: https://blog.csdn.net/qq_33369905/article/details/113245513.
一、nginx是什么?
Nginx是一个俄罗斯开发的高性能的HTTP和反向代理web服务器,同时也提供了邮件服务。
其特点是占有内存少,并发能力强。
二、作用&功能
1.反向代理
正向代理和反向代理的区别,最主要是用户方知不知道有代理的存在,或者说代理对用户是不是透明的,代理转发的程序是部署在什么位置的,正向代理,比如说vpn,用户是知道他们使用vpn做了代理,在用户机上就做了转发。而反向代理,所有的用户都通过一个相同的域名来访问服务,他们并不知道最终访问的是哪个后端服务,而转发的程序部署在一台中间的跳板机上,也就是我们的nginx部署的位置,由nginx对这些请求进行统一的管理
2.负载均衡
nginx提供的负载均衡策略有两种,内置策略和拓展策略,内置策略有轮询,加权轮询,ip哈希。
轮询
轮询是最基础的策略,就是把发送到nginx服务器的请求,轮流发给被代理的服务器
加权轮询
加权轮询就是在轮询的基础上,给每一台服务器加了一个权重的属性,权重越高分到的连接请求就会越多,这是为了平衡不同服务器之间的性能的差异
ip哈希
对服务器做了横向拓展之后,可能需要做一些操作来消除用户的不适,让这个拓展对于用户是完全透明的,比如说当用户在一台服务器登录了之后,拿到了session,后续的请求如果打到了另外的服务器,这个凭证是否还能生效,ip hash做的操作就是对客户端的ip做哈希处理,同一台客户机的请求都发送到同一个后台服务器来处理。
事实上很多场景并不使用这样的方法,因为有对应的服务器有挂掉的风险,还有一种共享session的方法是将session放到redis里面
3.动静分离
在软件开发中有些请求是需要后台处理的,有些资源是不需要后台处理的,如图片,和一些网页的css样式等,这些被称为静态资源,在动态网站中把静态资源和动态的资源区分开,在加载的时候根据一些策略对静态资源做缓存处理,可以提高加载的速度
三、常用命令
cd /usr/local/nginx/sbin/
./nginx 启动
./nginx -s stop 停止
./nginx -s quit 安全退出
./nginx -s reload 重新加载配置文件
ps aux|grep nginx 查看nginx进程
ps -ef|grep nginx