nginx常规配置

实验环境搭建:

  1. 一台主机名是lnmp 的虚拟机,ip 是172.25.3.199/24, 源码编译过nginx。编译后Nginx 的路径为/usr/local/lnmp/nginx
  2. 宿主机ip 为 172.25.3.250/24

nginx访问控制及状态监控

修改nginx 的配置文件,并重启服务。
在这里插入图片描述
测试:

  1. 对stub_status 模块的测试:
    在这里插入图片描述
  2. 对访问控制的测试
    在这里插入图片描述

ngixn 开启https访问

  1. 修改nginx 配置文件
    在这里插入图片描述
  1. 生成ssl证书, 并将证书移动到nginx 的配置目录 /usr/local/lnmp/nginx/conf
    在这里插入图片描述
    移动ssl 证书,并且重新加载服务
    在这里插入图片描述

测试:在这里插入图片描述

nginx 并发优化

Linux 下高并发socket最大连接数所受到的各种限制

  • 通过修改用户进程可打开文件数限制

方法: /etc/security/limits.conf 文件中加入 nginx - nofile 65536表示nginx用户能打开的文件最大文件数是65535,受到linux 系统内核的控制,可以通过sysctl -a | grep file查看,
在这里插入图片描述

  • 其他的一些优化
    在这里插入图片描述

nginx 的平滑升级

目的: 在不重启nginx 服务的前提下,完成nginx版本的更新.
当前版本是1.19.1
在这里插入图片描述
步骤:

  1. 在官网安装最新的源码包。nginx源码下载官网链接
  2. tar zxf nginx-1.19.4.tar.gz 解压源码安装包到当前目录,进入到安装包目录,执行在安装之前版本一样的环境检测,以及当时选择添加的模块, 这是我之前源码安装添加的信息
    ./configure --prefix=/usr/local/lnmp/nginx --with-threads --with-file-aio --with-http_ssl_module --with-http_stub_status_module 环境检测成功之后开始make 编译, 之后就不用make install进行安装了
  1. cd /usr/local/lnmp/nginx/sbin 下备份源程序 cp nginx nginx.old
    进入到新版本解压目录下objs目录,拷贝新程序
    在这里插入图片描述
  2. 获取nginx 主进程pid ps ax | grep nginx,
    然后执行kill -USR2 nginx的主进程pid
    在这里插入图片描述
    关闭原worker进程但保留主进程: 为了回退
    如果不想平滑的进行版本回退,可以直接kill -QUIT 10383关闭原来的主进程
    在这里插入图片描述
    访问测试:在这里插入图片描述
    版本回退的方式:
    1). 还原nginx 程序
    在这里插入图片描述
    2). 唤醒原进程 kill -HUP 10383
    3). 回收新版本的worker进程 kill -WINCH 10465
    4). 关闭新版本主进程 kill -QUIT 10465
    在这里插入图片描述

nginx 限流

nginx可以做到具体访问目录的限流,所以可以在nginx的默认发布目录中,建立一个download目录,并放入一些文件用于测试
在这里插入图片描述

  • 自动索引:
    参数: autoindex on;
    在这里插入图片描述
    测试:在这里插入图片描述
  • 中文乱码:
    通过修改编码格式:charset utf-8

在这里插入图片描述
再次访问测试:在这里插入图片描述

  • 控制单ip并发连接数
http {
limit_conn_zone $binary_remote_addr zone=addr:10m; 
//$binary_remote_addr 表示通过remote_addr这个标识来做限制
//zone=addr:10m 表示生成一个大小为10M,名字为one的内存区域
...
server {
location /download/ {
    limit_conn addr 1;		#限制并发数
    limit_rate 50k;			#限制带宽
   }
}
  • 限制单位时间内的请求数目,以及速度限制
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
//rate=1r/s表示允许相同标识的客户端的访问频次,这里限制的是每秒1次
...
server {
location / {
       limit_req zone=one;
#	 limit_req zone=one burst=5
#	 limit_req zone=one burst=5 nodelay;
}
}

nginx 日志轮询

方式: 建立一个脚本文件,通过crontab定时任务定时执行这个脚本,来实现对日志的轮询。(为了安全,日志目录不需要给你nginx用户访问权限)
脚本内容:

#!/bin/bash 
cd /usr/local/lnmp/nginx/logs && mv access.log access.$(date +%F -d -1day).log
kill -USR1 `cat /usr/local/lnmp/nginx/logs/nginx.pid` ## 重新生成一个新的日志文件

Nginx expire缓存配置

作用:缓存可以降低网站带宽,加速用户访问

location ~ .*\.(gif|jpg|png)$ {
    expires 365d;
    root html;
}

测试:在这里插入图片描述
效果:
在这里插入图片描述

nginx 关于目录一些配置

  • 禁用不必要的日志记录,以节省磁盘IO的消耗
location ~ .*\.(js|jpg|jpeg|png|css|bmp|gif)$ {
	access_log off;
}
  • 站点目录和文件的限制
location ~ ^/images/.*\.(sh|php)$ {
                deny all;
        }

nginx 重定向

  • 通过修改nginx 的配置文件使的客户端不能通过ip访问服务端,只能通过域名访问

  • 需要修改的两个地方 在这里插入图片描述
    添加一个虚拟主机
    在这里插入图片描述

测试: 在宿主机上做好地址解析
在这里插入图片描述
也可以通过重定向的方式,使当客户端ip访问服务器,自动跳转到域名访问
在这里插入图片描述
测试:
在这里插入图片描述

nginx 防盗链

location ~ \.(jpg|png)$ {
                valid_referers none blocked www.westos.org;
                if ($invalid_referer) {
                        return 403;
                        #rewrite ^/ http://www2.westos.org/daolian.jpg;
                }
        }

goaccess 日志可视化

软件包: 链接: goaccess1.4源码包 提取码: 5kdu
软件依赖性: 链接: 软件依赖性 提取码: 121n

步骤:

  1. tar -xzvf goaccess-1.4.tar.gz
  2. cd goaccess-1.4/
  3. ./configure --enable-utf8 --enable-geoip=legacy
  4. make && make install

使用方法:
goaccess access.log -o /usr/local/nginx/html/report.html --log-format=COMBINED --real-time-html

测试效果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值