快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Nginx简单使用与详解

一、定义

为丹阳等地区用户提供了全套网页设计制作服务,及丹阳网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、丹阳网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

Nginx是一个反向代理服务器,所谓反向代理服务器就是当客户端要请求服务器时,在他们之间加一个代理服务器,当客户端请求时,先请求代理服务器,代理服务器通过防火墙连接到服务器

代理服务器介于客户端与服务器之间,相当于一个中间人或中介人

下图为关系图:

Nginx简单使用与详解

用户A始终认为它访问的是原始服务器B而不是代理服务器Z,但实际上反向代理服务器接受用户A的应答,
从原始资源服务器B中取得用户A的需求资源,然后发送给用户A。由于防火墙的作用,只允许代理服务器Z访问原始资源服务器B。尽管在这个虚拟的环境下,防火墙和反向代理的共同作用保护了原始资源服务器B,但用户A并不知情。

简单的说:
正向代理:客户端知道服务器端,通过代理端连接服务器端。代理端代理的是服务器端。
反向代理:所谓反向,是对正向而言的。服务器端知道客户端,客户端不知道服务器端,通过代理端连接服务器端。代理端代理的是客户端。代理对象刚好相反,所以叫反向代理。

二、简单使用Nginx

Nginx的安装步骤我就不写了,在我的另一篇博客中有提交,这篇简单介绍使用

服务器A

代理服务器B

首先要开启、关闭防火墙:

Ubuntu:sudo ufw enable | disable

没安装的:

sudo apt-get install ufw

在服务器A中开启防火墙,禁用除了代理服务器B之外的所有访问

在代理服务器B上安装Nginx,修改nginx.conf配置文件:

在http层下添加:

upstream server1 {

     server 192.168.0.134:8080; # 被代理的服务器地址

}

server层修改:

location / {

      proxy_pass http://server1; 

}

修改完成之后,重启nginx

浏览器中输入:http://代理服务器IP:端口/ 进行访问,会自动访问到http://192.168.0.134:8080 处

负载均衡配置:

upstream server1 {

     server 192.168.0.134:8080; # 被代理的服务器地址

     server 192.168.0.125:8081; # 被代理的服务器地址

}

当其中一个宕机之后,会连接其中到另一个地址

三、nginx的进程模式

nginx启动后,会在Unix系统中以后台的方式运行,后台进程包括一个master进程和多个worker进程,当然你也可以手动的调整为前台运行,但nginx默认支持的是多进程模式运行,同时也支持多线程模式运行

上面说到nginx启动后有一个master进程和多个worker进程,master进程是用来管理worker进程的,当有来自外界的请求时,发放给各个worker,监控worker的状态,当一个worker宕机之后,会重新启动一个新的worker进程,每个worker之间是对等的,与请求之间的关系也是一对一的,nginx进程模型如下:

Nginx简单使用与详解

要操作nginx让它从容的重启,发送./nginx -s reload命令,当master进程接收到此命令之后,它会取加载配置文件,建立新的worker进程,并发送信号给老的worker进程,告诉他们可以退出了,当新worker进程启动成功开始接收请求时,老worker处理完当前所有的请求之后就退出,这样就可以让服务不中断的进行重新启动了

worker处理请求的方式:

先让master建立好需要listen的socket之后,再让master进程fork多个worker进程,所有worker进程的listenfd会在新连接到来时变得可读,为保证只有一个进程处理该连接,所有worker进程在注册listenfd读事件前抢accept_mutex,抢到互斥锁的那个进程注册listenfd读事件,在读事件里调用accept接受该连接。当一个worker进程在accept这个连接之后,就开始读取请求,解析请求,处理请求,产生数据后,再返回给客户端,最后才断开连接,这样一个完整的请求就是这样的了。我们可以看到,一个请求,完全由worker进程来处理,而且只在一个worker进程中处理


网站栏目:Nginx简单使用与详解
本文网址:http://6mz.cn/article/ghgghd.html

其他资讯