Nginx 的基本使用
一般来说, Nginx 默认使用的是 80 端口号。但一般都会改掉,因为80默认是被其他给占用的。
常用命令:
查看Nginx进程情况:
ps -ef|grep Nginx
检测Nginx配置是否ok:(/usr/local/Nginx/conf/Nginx.conf 正确且有效)
../sbin/Nginx -t
重新加载配置:
../sbin/Nginx -s reload
信号:
./Nginx -s stop 停止
./Nginx -s quit 退出
./Nginx -s reload 重加载
./Nginx -t 测试
Nginx包括两个进程:mater进程(主进程)、worker进程(工作进程,默认为1个,可修改配置数量)
Nginx的进程模型:
传统服务器事件处理:
Nginx worker抢占机制:
Nginx事件处理(异步非阻塞):
worker最大连接数(默认1024,默认采用epoll机制):
Nginx日志级别(级别越低越详细):(最低)debug、info、notice、warn、error、crit(最高)。
一般使用目录存放:/var/log/Nginx/error.log
include 包含指令:将配置放到一个独立的文件包含进来。 include xxx.conf。
Nginx.pid打开失败,解决方案?:
在sbin下 执行 ./Nginx -h 查看帮助文档。
原因:1)目录不存在;2)文件不存在。
1、创建文件夹目录:
1) mkdir /var/run/Nginx
再次启动Nginx: 2) cd /usr/local/Nginx/ 3) cd sbin/ 4) ./Nginx -t 5) ./Nginx -s reload
文件不存在,重新指定配置路径:
#pid /logs/Nginx.pid
2、重新指定配置文件路径:
1)在sbin下 执行 ./Nginx -c /usr/local/Nginx/conf/Nginx.conf。
2) ./Nginx -s reload
./sbin 下命令
./Nginx -v 查看版本号
./Nginx -V 查看完整信息
./Nginx -s stop 立即停止(快速停止,暴力关闭,不友好)
./Nginx quit 优雅停止
./Nginx -? or ./Nginx -h 查看帮助文档。
方式1:Nginx日志切割(手动):在/usr/local/Nginx/sbin/目录下手动创建shell脚本,修改执行权限,并执行即可。
执行脚本:
方式2:Nginx日志切割(定时),通过crone定时任务工具。
支持gzip压缩(提升请求效率):
url解析:
location匹配规则解析:
域名解析,使用SwitchHosts开源工具模拟本地域名解析访问:或手动修改/etc/hosts文件,末尾添加新的ip 域名对应项,会优先匹配配置文件,后使用域名服务器解析域名(如果匹配不到)。
在server所在的全局配置中添加如下几行即可:
支持防盗链配置(invalidxxx validxxx是变量):
Nginx模块化体系:
Nginx src源码目录结构:
DNS地域负载均衡:
负载均衡实现之ip_hash:根据客户端ip(诸如:192.168.1.172)的前3个字段来进行一个hash算法的计算,来进行均衡处理。同一网段的多台客户机由于前三个字段是一样的,所以每次访问的请求都是会落在同一台服务器上,看不出负载均衡的效果,不同网段应该是可以的。
hash算法的问题:新增或减少服务器,会重新进行hash计算,原来的会话、缓存等不可用,等待时间更长。
解决方案=》一致性hash算法(ip_hash hash算法的改进):
原理 类比(学区房):
一致性hash算法(ip_hash hash算法的改进)
负载均衡之url_hash:根据url进行hash算法计算映射对应服务器节点。
负载均衡之least_conn:根据配置的最小连接数进行映射匹配服务器节点。
浏览器缓存:
静态资源,如果配置了过期时间,且如果资源文件未发生更改,则在过期时间内的请求,会读缓存,超过过期时间或资源文件发生修改,则重新读取资源,不使用缓存。也可以在浏览器中强制禁用缓存。
使用缓存的响应状态码是304,不使用的响应状态码是200 ok:
Nginx控制浏览器缓存(expires指令):
使用Nginx配置https域名对应的ssl证书提供https访问:(前提申请一个备案域名的ssl证书)
1)给Nginx安装ssl模块,要在Nginx中配置https,就必须安装ssl模块,就是http_ssl_module。
进入到Nginx 的解压目录,修改.configure文件,尾部新增ssl模块“--with-http_ssl_module”;重新编译,安装,执行 make,make install命令。
2)把ssl证书“.crt”和私钥“.key”拷贝到/usr/local/Nginx/conf目录中;在server代码块之内,location之上,新增server监听443端口(配置):listen 443;开启ssl(配置): ssl on;最后依次添加配置命令:配置ssl证书,配置ssl证书密钥,配置ssl加密套件,写法遵循openssl标准,即可。
3)最后reload Nginx:./Nginx -s reload。
42.动静分离的那些事儿,看到这里了。后续单独学习整理后续的内容。
备注:对于一些指令及其含义可以参考Nginx官网文档查看。
参考视频资料:https://www.bilibili.com/video/BV1W44y1J74a?p=42
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。