Nginx基础

Nginx简介

Nginx是一个高性能的HTTP和反向代理服务器,占用内存小,并发能力强。官方数据显示大约能够支撑5w个并发连接。

Nginx作用

负载均衡
反向代理
动静分离

正向代理和反向代理

正向代理

是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。代理客户端
在这里插入图片描述

反向代理

在这里插入图片描述

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。代理服务器

Nginx的负载均衡策略

轮询

在这里插入图片描述
最基本的配置方法,上面的例子就是轮询的方式,它是upstream模块默认的负载均衡默认策略。每个请求会按时间顺序逐一分配到不同的后端服务器。

加权轮询

在这里插入图片描述
权重方式,在轮询策略的基础上指定轮询的几率。权重越高,轮询的几率越大。

权重越高分配到需要处理的请求越多。
此策略可以与least_conn和ip_hash结合使用。
此策略比较适合服务器的硬件配置差别比较大的情况。

ip_hash

在这里插入图片描述
指定负载均衡器按照基于客户端IP的分配方式【即每个客户端每一次访问的服务器都是相同的】,这个方法确保了相同的客户端的请求一直发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。【一般不这样子解决,使用redis来解决session共享的问题】

least_conn

把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。

nginx在windows操作系统下的使用

1.直接到官网下载nginx
在这里插入图片描述
2.直接解压。
3.点击nginx.exe进行启动,在conf文件夹里面的nginx.conf里面可以看到nginx监听的是80端口,在浏览器输入:localhost:80,可以看到如下界面。
在这里插入图片描述
如果能够看到如下界面,那么就是安装成功了

启动

直接点击Nginx目录下的nginx.exe 或者 cmd运行start nginx

关闭

nginx -s stop 或者 nginx -s quit

stop表示立即停止nginx,不保存相关信息

quit表示正常退出nginx,并保存相关信息

重启(因为改变了配置,需要重启)

nginx -s reload
在这里插入图片描述
出现报错的情况是没有nginx已经被关闭了,然后还继续使用关闭命令。

出现的bug:为什么已经利用了命令行关闭nginx了,但是继续输入localhost:80还是可以访问到nginx?

我就是学习了上述命令之后,并且利用了命令行将nginx给关掉,无意中,再次输入localhost:80的时候,发现这个时候,居然还能访问到nginx。就很奇怪。

原因:到了网上,找到了原因,因为有多个nginx进程被启动了,没有关闭干净。

解决过程:在本地的conf文件夹中查看error.log文件,发现有多个进程被启动了
在这里插入图片描述
然后,在对应文件夹的目录下输入tasklist /fi “IMAGENAME eq nginx.exe”,找到nginx进程并且找到对应的pid号码。

tasklist /fi "IMAGENAME eq nginx.exe"

在这里插入图片描述
将这些进程杀死即可。

taskkill /f /pid 9852
taskkill /f /pid 6928

在这里插入图片描述
这个时候,再去访问localhost:80,发现无法访问,查bug成功。
在这里插入图片描述
网上避免这个问题的方法:以后使用cmd命令行来进行启动nginx,不要直接点击nginx.exe来启动nginx,这样就可以了。

总结:切记使用start nginx启动服务,而不要使用nginx启动服务!!!

nginx在linux操作系统下的使用

1.直接到官网下载,默认是安装在linux操作系统上的,所以没有标出来
在这里插入图片描述
2.利用filezilla上传到linux操作系统并且进行解压。
在这里插入图片描述
3.解压成功。
在这里插入图片描述
4.进入到nginx的解压后的目录。
在这里插入图片描述
5.里面有个蓝色的conf文件夹【其实这个目录结构跟windows操作系统的目录很像】,还有个绿色的configure文件,linux操作系统下的可执行文件,先执行以下命令
./configure,可能有些同学会报错,说什么
C compiler cc is not found,就是linux操作系统原因是因为缺少 gcc-c++ 的包。
只需要先执行命令yum -y install gcc-c++即可。
在这里插入图片描述
这样就算执行完成。
在这里插入图片描述
执行完 ./configure后,就再执行make命令。
在这里插入图片描述
然后再执行一个make install命令,这样就完成了。

然后使用命令whereis nginx查找出对应的nginx存放的位置,并且去到对应的位置。
在这里插入图片描述
进入到 sbin文件夹中,有个可执行文件nginx,执行一下./nginx没有报错,即代表成功执行了。
在这里插入图片描述
查看nginx的配置文件,发现80端口已经有被nginx监听着,就可以了。
在这里插入图片描述
访问对应的ip,就可以看到结果了。
在这里插入图片描述

Nginx的常用命令

在sbin的文件目录下,输入命令./nginx -s stop就可以停止nginx

[root@VM-0-6-centos sbin]# ./nginx -s stop。

输入后,再次访问被拒绝了。
在这里插入图片描述

不再一一演示命令。所有的命令都要在sbin文件夹下使用

cd /usr/local/nginx/sbin/
./nginx #启动
./nginx -s stop #停止
./nginx -s quit #安全退出,保证所有的进程都是安全的,一向一项慢慢退出
./nginx -s reload # 重新加载nginx配置文件
ps aux| grep nginx #查看nginx进程

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值