Skip to content

Nginx

基础与预备知识

  • Linux基础(会正常操作)

  • IP与端口的概念

  • Socket:IP与端口的具象化,本地socket和远程socket

  • 从TCP到HTTP的概念

  • 三次握手与四次挥手

  • 更深一层:OSI七层模型(暂时不需要掌握,但有助于学习)

  • 安装Nginx

主要命令

bash
nginx -t # 测试配置文件有没有语法错误
nginx -s stop # 自带的结束nginx进程
nginx -s quit # 也是自带的结束nginx进程,但更优雅
nginx -s reload # 重新分配nginx子进程
systemctl restart nginx #重启整个nginx服务.用前要先去配置service服务
ps -ef|grep nginx 用于查询nginx占用的端口

提示:用什么命令启动,就用什么命令停止,不然信息会显示有误

配置文件

nginx.conf文件结构

nginx
全局配置
...
events {
 性能配置,如最大连接数,worker数
 ...
}

主要配置项:
http{
 请求与响应参数,包括压缩,缓存,缓冲配置
 ...
 server配置 { //一个server就是一个虚拟主机
  location 路径1 {
   具体代理方式
  }
  location 路径2 {
   具体代理方式
  }
 }
}

除了上述的配置外,nginx提供了include关键字,它支持在该配置文件中导入外部文件,并用于配置,这会让整个配置文件不过于长,更加清晰。

改完后可以通过nginx -t来检测是否存在语法错误。

配置文件解析

  • http{}标签用于解决用户的请求与响应的整体功能;
  • server{}标签匹配响应具体的某一个网站(域名);
  • location{}标签就对应了某一个具体的url请求的处理方式。

上述匹配是基于正则表达式的。

开始食用

单个server代理:最基本的方式。

子配置文件

基于多个IP的代理:一台服务器允许绑定多个IP, 而nginx可以通过识别不同的IP请求来进行不同的IP处理。

基于多个端口的代理:对于相同的域名/IP,可以通过listen不同的端口对不同的端口请求进行接受和转发处理。多个端口的配置可以写在同一个子配置文件中,条理更清晰。

当然,前提是开放的端口的防火墙需要放开了。。不然nginx还没来得及接收就被拦截了。

基于多个三级域名的代理:可以根据不同的三级域进行接受和转发处理。

三级域名可以通过DNS解析生成,指向服务器IP。

此外,对于多个配置,首先根据最佳匹配的访问请求进行匹配,对于“都可以”的,则按照配置文件的顺序取最前面那个。如果全部都不可以的,显然会直接拒绝请求。

日志