前端开发的nginx指南

92 阅读4分钟

“Nginx是一款轻量级的HTTP服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的IO性能,时常用于服务端的反向代理负载均衡。”

这是官网中的原话,主要表达了几点内容:

1. nginx是什么?是一个服务器;

2. 它是轻量级的,意味着它相比于其他的服务器消耗资源少、更加快捷;

3. 它是高并发的;

4. 用于反向代理和负载均衡。

那么什么是反向代理,什么又是正向代理呢?

正向代理

正向代理就是我们想要访问一个服务器,但是我们并没有访问这个服务器的权限,那么我们可以找一个有权限访问这个服务器的代理服务器,由这个代理服务器将我们的请求信息转发给目标服务器,目标服务器给出相应之后再由这个代理服务器转发给客户端。比如Google的翻墙工具,就是典型的正向代理。   image.png

反向代理

再来看看什么是反向代理。反向代理和正向代理正好相反,它是属于服务端的东西。客户端发送请求,想要访问服务器的内容,发送的请求会被发送到代理服务器上,这个代理服务器再把内容发送到内部的服务器上,客户端不会知道最终服务器的地址,这提高了服务端的安全性。而正向代理中,客户端是知道目标服务器的地址的,并且客户端可以隐藏自身信息的同时访问服务器,这是及其不安全的。

image.png

负载均衡

使用反向代理的主要用途就是为多个服务器提供负载均衡和缓存等功能。负载均衡就是一个网站的内容被部署到若干个服务器上,使用反向代理可以把客户端的请求分配给这些服务器,从而实现服务器压力的分配。

Nginx是如何实现负载均衡的呢?在nginx启动后,会有一个master进程和多个worker进程,master进程主要是用来接收来自外界的信号,并且监控worker进程的运行状态,如果worker进程出现异常,会自动重启新的worker进程。Worker进程就负责把从master接收到的信号发给目标服务器。Worker的进程数和单个进程的最大并发量都是可以设置的。

image.png

Nginx目录

Nginx下载后,它的目录里是这些文件和文件夹:

image.png

点击nginx.exe之后就启动了nginx,这时候打开浏览器访问localhost,就可以看到这个页面:

 

Logs文件夹

进入logs文件夹,就可以看到这几个文件:

image.png

其中access.log文件是nginx正常访问的日志,error.lognginx的错误日志,nginx.pid是存放pid的文件。

那么什么是pid呢?Nginx为了防止用户启动多次,比如在2000端口启了一个nginx,在3000端口又启了一个,这时候就需要pid作为标识。在nginx启动的时候,会先检测有没有pid文件,如果没有,就会创建一个,把nginx自己的id写进去。如果有,但是没有任何一个已启动的进程的id与文件中的id重复,那么就会启动这个nginx,并把本次启动的id写入pid文件中。如果检测到的pid与启动的一个进程的pid相同,说明这个nginx已经被启动过了,那这次启动就会报错。

Html文件夹

image.png

Html文件夹就是存放静态资源的文件夹。可以在里面放一些静态的html文件,或者一些图片,在nginx的页面上,访问文件名称的地址,就能访问到这些静态资源。如:localhost/index.html。

Conf文件夹

image.png

这里我们重点关注nginx.conf文件

image.png

image.png

image.png

image.png

Nginx命令

windows  启动  双击nginx.exe文件、./nginx.exe

 重启  ./nginx - s reload

 停止  ./nginx - s stop

linux  启动  nginx(CentOS7.4)、systemctl start nginx.service

     重启  systemctl restart nginx.service、nginx -s reload

     停止  立即停止服务  nginx -s stop

     从容停止服务  nginx -s quit

     杀死进程  killall nginx.service

     systemctl停止  systemctl stop nginx.service

  linux如何知道已经启动?        ps aux | grep nginx

出现以下信息说明启动成功:

image.png