首页 > 系统相关 >【Nginx】- 优化实践

【Nginx】- 优化实践

时间:2023-06-25 14:11:05浏览次数:35  
标签:log nginx 优化 实践 Nginx usr path local

Nginx 的优化

Linux安装Nginx

安装依赖包

//一键安装下面四个依赖gcc/zlib/prec-devel/openssl
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
  1. 因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来
yum install gcc-c++

img

  1. Nginx的http模块需要使用pcre来解析正则表达式,需要安装pcre
yum install -y pcre pcre-devel

img

  1. 安装依赖的解压包
yum install -y zlib zlib-devel

img

  1. ssl 功能需要 openssl 库,安装 openssl
yum install -y openssl openssl-devel

img

安装Nginx

下载Nginx后,将Nginx压缩包移动到Linux的待安装目录中。我这里是 /usr/local/nginx

  1. 使用命令:tar -zxvf nginx-1.16.1.tar.gz 解压Nginx:
    img

一次执行以下命令:

cd /usr/local/nginx

./configure --prefix=/usr/local/nginx
# ./configure --prefix=/usr/local/nginx --with-http_secure_link_module --add-module=/usr/local/fastdfs-nginx-module/src/   
# 如果提示找不到openssl的话,需要根据错误提示加上-with-http_ssl_module --with-openssl=/usr/local/src/openssl-1.1.1参数来指定openssl源码路径,如提示缺少pcre或其他依赖的话,也需要根据提示操作

make

make install

启动Nginx

cd /usr/local/nginx/sbin
./nginx 启动
./nginx -s stop 关闭
./nginx -s reload 重启
/usr/local/nginx/sbin/nginx -s reload -c /usr/local/nginx/conf/nginx.conf

设置开机自启

首先修改/etc/rc.d/rc.local文件,添加如下内容:
img

执行以下命令,使/etc/rc.d/rc.local变成可执行文件。

chmod +x /etc/rc.d/rc.local

使用reboot命令重启后,查看nginx是否成功的自启动了
img

日志文件清理

# docker安装的nginx
[root@server mysh]# cat nginx_logs.sh 

#!/bin/bash

#日志存储路径
log_path="/usr/app/docker/nginx/logs"
#取出昨天的时间
log_date=$(date -d yesterday +%Y-%m-%d)

#将访问日志重命名,标志为昨天的日期
mv ${log_path}/access.log ${log_path}/access_${log_date}.log
#将错误日志重命名,标志为昨天的日期
mv ${log_path}/error.log ${log_path}/error_${log_date}.log

#/usr/app/nginx/sbin/nginx -s reopen
#重启nginx服务,生成新的日志文件,docker安装的nginx 直接用-s reopen可能不生效,所以直接重启服务,由于需要重启,所以定时任务一般在凌晨执行
docker restart nginx

#只保留最近7天的日志文件,减少硬盘压力
find ${log_path} -type f -name "*.log" -ctime +7 -exec rm -f {} \;

# 编译安装的nginx
[root@server mysh]# cat nginx_logs.sh 

#!/bin/bash

#日志存储路径
log_path="/usr/local/nginx/logs"
#取出昨天的时间
log_date=$(date -d yesterday +%Y-%m-%d)

#将访问日志重命名,标志为昨天的日期
mv ${log_path}/access.log ${log_path}/access_${log_date}.log
#将错误日志重命名,标志为昨天的日期
mv ${log_path}/error.log ${log_path}/error_${log_date}.log

#和docker安装的nginx只有此步操作不同,nginx只带重新打开日志文件的参数,这样可以做到平滑的操作,不会影响nginx的正常运行
/usr/app/nginx/sbin/nginx -s reopen

#只保留最近7天的日志文件,减少硬盘压力
find ${log_path} -type f -name "*.log" -ctime +7 -exec rm -f {} \;

设置定时任务,每天定时执行任务,重命名日志且删除旧的日志

0 0 * * * /usr/local/nginx/nginx_logs.sh  # 每天00:00定时执行任务

标签:log,nginx,优化,实践,Nginx,usr,path,local
From: https://www.cnblogs.com/hm201402/p/17502795.html

相关文章

  • 时速云使用 Higress 替换 Ngnix Ingress + Spring Cloud Gateway 的生产实践
    作者:王金山,北京云思畅想科技有限公司技术部微服务架构师,负责公司API网关和服务网格等研发工作时速云介绍时速云成立于2014年10月,致力于通过云原生技术帮助企业实现数字化转型,拥有云原生应用平台TCAP和云原生数据平台KubeData两大核心产品体系,产品包含云原生DevOps、容器......
  • Nginx的stub_status
    Nginx的stub_status模块是一个官方提供的一个用于实时监控Nginx服务器状态信息的模块。它通过HTTP接口提供了一个简单的页面,展示了当前Nginx服务器的关键性能指标和连接状态。启用stub_status模块后,可以通过访问特定的URL来获取Nginx的状态信息。默认情况下,该URL为http://y......
  • Solr使用性能优化设想
    如果全量数据和增量数据有指定时间,默认近一个月1.是否可以通过集合名称中指定当前月份和上月集合,作为一个客户端,如果不行,可以考虑建立别名,该别名中只有近两个月的集合。 2.其他关系表,更新数据时尽量少从solr中查询,,最后时间以当前的即可(应为bcp文件处理时是有顺序的))、参数(直......
  • 如何在nginx增加健康检查接口?
    在docker中部署的nginx或者在nginx部署的nginx一般是需要一个健康检查接口的 这样的话,就可以确定容器当前的状态是否是健康的 那么,如何给nginx增加一个健康检查的接口呢? 接下来呢,我们就演示一个在nginx中如何增加健康检查的接口 1、打开nginx的配置文件(nginx.conf) ......
  • SolrCloud实践过程中问题思考以及处理方法
    一:数据量大后,单个集合存储量过大。问题:一方面写入过慢,另一方面:查询读取速度也过慢。解决步骤:1.按时间维度拆分集合,保证单个集合中在每个节点的shard,数据量在3000-5000万条之间。这样写入在最近时间归属的集合中操作。2.写入的时候,按数量进行批次写。(数百至千条之间,经验值)3.......
  • “事后达尔文”—— 游戏业务效果评估方法实践
    作者:vivo互联网数据分析团队LuoYandong、ZhangLingchao本文介绍了互联网业务数据效果评估的几种常见问题及方法,并基于分层抽样的逻辑优化出一套可应用于解决用户不均匀的“事后达尔文"分析法,可适用于无法AB测试或人群不均匀的AB测试等场景下的效果评估中,本文会基于实际应用......
  • 深入Python网络编程:从基础到实践
    Python,作为一种被广泛使用的高级编程语言,拥有许多优势,其中之一就是它的网络编程能力。Python的强大网络库如socket,requests,urllib,asyncio,等等,让它在网络编程中表现优秀。本文将深入探讨Python在网络编程中的应用,包括了基础的socket编程,到高级的异步IO网络编程,以及我们如何......
  • k8s 创建nginx
    1、在kubenetes集群中创建一个pod创建nginx,拉取镜像kubectlcreatedeploymentnginx--image=nginx2、查看镜像是否下载成功kubectlgetpodstatus为running表示拉取完成 3、暴露Nginx端口kubectlexposedeploymentnginx--port=80--type=NodePort4、查看Nginx端口......
  • 全局异常处理:优化 Flask 应用程序的可靠性与用户体验
    Flask是一个流行的PythonWeb框架,它提供了简单而灵活的方式来构建Web应用程序。然而,即使是最出色的开发人员也难以完全避免错误和异常的发生。用户可能会提交无效的数据,服务器可能会发生内部错误,或者应用程序可能会遇到不可预料的问题。在这些情况下,良好的错误处理机制对于保......
  • [ARM 汇编]高级部分—性能优化与调试—3.4.1 性能分析与优化策略
    性能优化是嵌入式系统开发中的一个重要环节,尤其是在资源受限的环境下。性能优化的目标是提高代码执行速度、降低功耗和减少内存占用。在本章节中,我们将讨论性能分析与优化策略,并通过实例来学习如何应用这些策略。性能分析方法要优化程序性能,首先需要分析程序的瓶颈。通常,我们......