ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

2022-05-04-nginx 的基本使用

2022-06-19 21:34:36  阅读:205  来源: 互联网

标签:sbin 缓存 hash 04 ssl 配置 nginx 05


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配置文件 nginx.conf配置结构:

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 域名对应项,会优先匹配配置文件,后使用域名服务器解析域名(如果匹配不到)。

nginx跨域问题解决:

在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的反向代理缓存(缓存存放在nginx服务器上):

使用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

标签:sbin,缓存,hash,04,ssl,配置,nginx,05
来源: https://www.cnblogs.com/YiMingXiaoBuYiMengXiaoNai/p/nginx-basic-usage.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有