nginx.conf nginx首要处理静态页面 反向代理 动态请求
全局模块 work processes 1; 设置成服务器内核数的两倍(一般不不超过8个超过8个反而会降低性能一般4个 1-2个也可以)
netstat -antp | grep 80 查端口号
*1、events块:*
配置影响nginx服务器与用户的网络连接
一般设置并发15000-20000个
处理进程的过程必然涉及配置文件和展示页面 也就是涉及打开文件的数量
linux默认打开的文件数就是1024
vim /etc/security/limits.conf (最大文件数) vim nginx.conf
*soft nproc 65535 最大进程数的软限制
*hard nproc 66635 最大进程数的硬限制
*soft nofile 65535最大打开文件数的软限制
*hard nofile 65535 最大打开文件数的硬限制
http
默认不支持jsp.js.php
默认的日志格式记录了access.log 访问日志的格式,error.log也是一样的格式
存放路径
属于http
location网页匹配的工作目录的地址和支持打开页面的文件类型
tail -f /usr/local/nginx/logs/error.log
root和alias之间匹配区别
*root指定访问页面的根目录是拼接*
*alias指定的是完整目录绝对路径*
root的匹配模式 拼接
root的工作目录,访问的uri /xy102
location /xy102
/opt/test1/
/opt/test1/xy102/
alias匹配nginx的工作目录,路径是绝对路径
location /xy102
alias /opt/test1/xy102/;
alias 只能写在http模块当中的sever模块的location模块里面
root可以写server模块也可以在http 也可以在locatiion
alias匹配工作目录不能够使用重定向功能
全局模块
work_processes 1;指定进程数
envents模块决定了能够处理的来年结束
stream 四层代理模块
http模块】转发和处理http请求设置代理(正向代理,反向代理),缓存,定义日志格式,重定向配置)
在http模块中包含
sever块http里面可以有多个server模块
在server模块当中包含:
location模块
在server当中可以又多个location
统计访问状态
active connections 当前活动的连接数
server accepts handled reouests 表示已经处理的连接数
三个数字 从左往右 已经处理的连接数 成功的建立连接的次数 已经处理的请求数
Reading:0 Writing: 1 Waiting :0
reading 表示服务端正在从客户端读取请求的数据
writing 表示服务端正在把响应数据发送给客户端
waitting 表示有链接处于空闲时刻 等待请求
基于密码授权进行访问控制
yum -y install httpd-tools #httppasswd的工具 ,要先安装
htpasswd -c /usr/local/nginx/passwd.db zj
chown nginx passwd.db
chmod 400 passwd.db #权限只能是400
基于客户端的访问控制 IP地址来进行控制
403 forbidden 0/24整个网段
基于域名的nginx主机
mkdir -p /var/www/html/xy102
基于ip地址的虚拟主机
多个网卡
多个配置文件**
******nginx优化与防盗链
1.隐藏版本号
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
server_tokens off; 关闭版本号
设置页面的缓存时间 主要针对动态页面,图片的缓存
html默认工作目录
修改用户与组
#设置图片的缓存时间
expires 1d; 一天
2.日志分割**+日志清理****
nginx没有自带的日志分割功能,靠我们运维人员通过脚本实现日志分割。
apache是 自带日志分割的按天来进行收集日志
#获取日期 d=$(date +%Y-%m-%d)
access.log
error-2024.07-03.log
nginx没有自动分割的功能,脚本来实现日志分割
#日志清理 日志清理原则:业务日志一般保留30天。数据库日志,保留2年。用户信息加密,而且要永久保存。高可用。
date-d "-1 day" "+%Y%m%d" 分割前一天的
更改进程数设置cpu绑定
worker_connections 一般15000-20000
两个相乘就是最大并发数
*别忘了修改limits.conf。否则不生效。*
3.连接超时 配置页面压缩
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;
支持压缩的类型
回收TIME_WAIT:
time_wait是tcp链接当中的一种状态出现在四次挥手之后
处于等待状态 双方不再发送数据
time_wait所占用的系统资源很小,数量比较少,完全可以忽略不计
但是太多了就有一定的影响
连接断开(四次挥手)之后,尽快的把time_wait状态的连接进行回收
统计当前系统的连接状态
vim /etc/sysctl.conf
net.ipve.tcp_syncookies=1
防止tcp的半连接队列溢出 可以达到服务端在接收到tcp的syn(同步)的请求时能够快速响应
net.ipv4.tcp_tw_reuse=1
允许复用time_wait状态的连接 新的连接可以直接使用time_wait状态的端口 可以提高连接的重用率
net.ipv4.tcp_tw_recycle=1 (新版本已被淘汰)
这个是老版本的配置 时间戳戳记也可以进行来连接复用
net.ipv4.tcp_fin_timeout=30
控制time_wait状态的时间 持续30秒 不是立即把time_wait连接收回 而是尽可能的把time_wait状态进行回收
nginx优化(重要)
隐藏版本号
日志分割
cpu绑定
连接超时
页面压缩
页面缓存时间
time_wait状态的回收
防盗链
vim nginx.conf
lnmp+DISCUZ
论坛的一个服务
l linux 操作系统
n nginx 前端页面的web服务
mysql 数据库 保存用户和密码 以及论坛的相关内容
php 动态强求转发的中间件
态进行回收
nginx优化(重要)
隐藏版本号
日志分割
cpu绑定
连接超时
页面压缩
页面缓存时间
time_wait状态的回收
防盗链
vim nginx.conf
[外链图片转存中…(img-Ey3svsBO-1720579650496)]
lnmp+DISCUZ
论坛的一个服务
l linux 操作系统
n nginx 前端页面的web服务
mysql 数据库 保存用户和密码 以及论坛的相关内容
php 动态强求转发的中间件
my.cnf是mysql的主配置文件
四层代理
四层代理只能写在全局环境中,不能写在http模块里
注意:写在四层里必须指定后台服务器的地址和端口
七层代理
test1 20.0.0.10 代理 ------配置反向代理
test2 20.0.0.20 后台服务器1
test3 20.0.0.30 后台服务器2
客户端:谷歌浏览器
七层代理写在http模块里,默认端口80