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