文章目录
Nginx 简介
- Nginx 就是反向代理服务器,代理服务器一般是指局域网内部的机器通过代理服务发送请求到互联网上的服务器,代理服务器一般作用于客户端
- Web代理服务器扮演了客户端或服务器角色
- 对于 Web 客户端来说,代理服务器扮演的是服务器角色,接收请求(Request),返回响应(Response)
- 对于 Web 服务器来说,代理服务器扮演的是客户端的角色,发送请求(Request),接收响应(Response)
- 完整的代理请求过程
- 客户端与代理服务器创建连接
- 根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或则获得目标服务器的指定资源
- Web 代理服务器是介于 Web 客户端和 Web 服务器之间的另一台服务器,有了它之后,浏览器不是直接到 Web 服务器去取回网页,而是通过向代理服务器发送请求,请求会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器(Web 客户端)。
正向代理服务器的概念
- 正向代理服务器是一个位于客户端和原始服务器之间的服务器
- 正向代理服务器从原始服务器取的内容,客户端向代理发送一个请求并指定目标(原始服务器),然后正向代理服务器向原始服务器转交请求并将获得的内容返回给客户端,客户端必须要进行一些特别的设置才能使用正向代理。
- 正向代理客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口
反向代理服务器的概念
- 反向代理服务器也是一个位于客户端和原始服务器之间的服务器
- 在反向代理服务器端接收到客户端的请求时,把客户端请求分发给具体的服务器进行处理,然后再将服务器的响应结果反馈给客户端。
- 反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置
- 客户端向反向代理的命名空间中的内容发送普通请求,接着反向代理将判断向哪个原始服务器转交请求,并将获得的内容返回给客户端。
- Nginx(engine x)就是其中的一种反向代理服务器软件,是俄罗斯人 Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器
- Nginx本身就可以托管网站,进行 HTTP 服务处理,也可以作为反向代理服务器使用
Nginx 的特点
- 高并发量:Nginx 能够支持高达 50,000 个并发连接数的响应。
- 内存消耗少:,Nginx能处理静态文件,同样起 web 服务,比 Apache 占用更少的内存及资源,所以它是轻量级的
- 配置简单:基本在一个 conf 文件中配置,性能比较稳定,可以 7*24 小时长时间不间断运行工作在网络的 7 层之上,可以针对 http 应用做一些分流的策略,比如针对域名、目录结构
- 支持Rwrite重写规则:能够根据域名、URL 的不同, 将 HTTP 请求分发到不同的后端服务器群组
- 低成本:Nginx 可以做高并发的负载均衡,且 Nginx 是开源免费的
- 支持多系统:Nginx支持市面上常见的系统,由于 Nginx 是免费开源的,可以在各系统上编译并使用
Nginx版本信息
- Nginx 下载 http://nginx.org/en/download.html ,
- Nginx 官网提供了三个版本的 Nginx 安装包
- Mainline version版本:开发版本,不建议使用,可能不稳定
- Stable version版本:最新稳定版,生产环境上建议使用的版本。
- Legacy versions版本:遗留的老版本的稳定版
在Win10上安装Nginx
- 将下载 nginx 压缩包解压到指定目录,nginx 目录内容如下图:
- config:目录存放 nginx 的配置文件
- docs:目录存放 nginx 的帮助文档
- html:存放 nginx 的静态 html 文件,如:index.html 和 50x.html
- logs:存放日志文件,如:access.log、error.log 和 nginx.pid
- temp:存放临时文件
- nginx.exe:nginx 可执行文件
- 直接双击 nginx.exe 文件,双击后一个黑色的弹窗一闪而过。此时可以通过浏览器输入 http://localhost:80 地址,如果能够看见下图信息,则说明 nginx 安装成功
Nginx 命令参数
-
使用nginx,exe命令参数控制nginx行为
-
使用
nginx -h 或者 nginx -?
查看Nginx命令信息D:\nginx-1.21.4>nginx -h nginx version: nginx/1.21.4 Usage: nginx [-?hvVtTq] [-s signal] [-p prefix] [-e filename] [-c filename] [-g directives] Options: -?,-h : this help -v : show version and exit -V : show version and configure options then exit -t : test configuration and exit -T : test configuration, dump it and exit -q : suppress non-error messages during configuration testing -s signal : send signal to a master process: stop, quit, reopen, reload -p prefix : set prefix path (default: NONE) -e filename : set error log file (default: logs/error.log) -c filename : set configuration file (default: conf/nginx.conf) -g directives : set global directives out of configuration file
-
nginx -v
命令 显示nginx版本信息,然后退出Nginx -
nginx -V
命令:显示Nginx版本和配置项信息,然后退出Nginx -
nginx -t
命令 :测试nginx的配置文件nginx.cfg语法是否存在问题 -
nginx -T
命令:测试nginx.cfg语法是否存在问题,并且转存配置信息 -
nginx -q
命令:在配置测试期间抑制非错误消息,在执行nginx -q
命令后,命令行将处于等待状态,当有错误信息时,输出错误信息 -
nginx -p prefix
:设置路径前缀,使用 -p 参数指定前缀运行 nginx -
nginx -e filename
;指定 nginx 的错误日志文件,默认为 logs/error.log -
nginx -c filename
:指定nginx的配置文件, 默认为:conf/nginx.conf
Nginx -s signal
Nginx -s signal
向 nginx 主进程发送信号。- 参数信号可以是:
stop
:快速关闭,不管当前Nginx是否正在处理请求,直接关闭quit
:不直接关闭,停止接收新的请求,等待所有旧请求完成后再关闭reload
:重新加载配置,使用新配置启动新的工作进程,依旧处理旧的请求,新的请求使用新配置启动的工作进程,关闭旧的工作进程reopen
:重新打开日志文件
Nginx 调试日志
-
nginx 要启用调试日志,需要在预编译源码的时候使用 configure 配置 nginx 以支持构建期间的 debug 命令为
./configure --with-debug
-
在 nginx.conf 配置文件中使用 error_log 指令设置 debug 级别,配置如下:
error_log /path/to/log debug;
-
运行
nginx -V
命令,然后查看 configure arguments 中是否存在 --with-debug 配置configure arguments: --with-debug ...
-
Windows 的 nginx 二进制版本总是使用 debug 日志构建,因此只需设置调试级别就足够了。
-
选定客户端调试日志:nginx 中也可以只为选定的客户端地址启用 debug 日志
error_log /path/to/log; events { debug_connection 192.168.1.1; debug_connection 192.168.10.0/24; }