Nginx优化

news2024/11/18 4:32:54

一.设置Nginx运行进程个数

1.查看cpu个数

grep processor /proc/cpuinfo

  使用top 按1,也可以查看cpu的核心数

2.设置Nginx进程数

   我的cpu数量是4,修改为4

vim /usr/local/nginx/conf/nginx.conf

 二.Nginx运行CPU亲和力

vim /usr/local/nginx/conf/nginx.conf

 4核4线程配置

注:4核cpu,开启4个进程 0001表示开启第一个cpu内核,0001表示开启第一个cpu内核 ,0010开启第2个cpu内核,依次类推;有多少个核,就有几位数,1表示该内核开启,0表示该内核关闭。

8核8线程配置

vim /usr/local/nginx/conf/nginx.conf 

4线程的cpu,只想跑两个进程

vim /usr/local/nginx/conf/nginx.conf  

二.永久修改系统最大打开文件数

在尾部添加,重新登录生效

 vim /etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535

三.Nginx事件处理模型

vim /usr/local/nginx/conf/nginx.conf 

nginx采用epoll 事件模型。处理效率高。 

worker_connections是单个worker进程允许客户端最大连接数,这个数值一般根据服务器性能和内存来制定,实际最大值就是worker进程数乘以work_connections

如何设置,可以根据一个进程启动所占内存,top -u www(www表示nginx程序用户)

刚启动一个进程占用内存是5M左右

四.http主题优化

     开启高效传输模式

   vim /usr/local/nginx/conf/nginx.conf

 sendfile  on;

开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来传输,输出文件,当nginx是一个静态文件服务器的时候,开启sendfile配置项能大大提高nginx的性能。

tcp_nopush on;

在sendfile开启模式才有效,防止网络阻塞,积极的减少网络报文段的数量(将响应头和响应体两部分一起发送,而不一个接一个的发送。)
 

五.长时间超时时间

 主要目的是CPU,内存,控制连接数,因为建立连接也是需要消耗资源的

vim /usr/local/nginx/conf/nginx.conf

keepalive_timeout  65;

 keepalived_timeout  与client的keep-alive连接超时时间,单位是秒,服务器和客户端无交互后将在这个时间后关闭连接,长连接可以减少重建连接的开销,如果设置时间过长,用户又多,长时间保持连接会占用大量资源。

六.文件上传大小限制

 vim /usr/local/nginx/conf/nginx.conf

 client_max_body_size 10m;  #在40行添加

七.gzip调优

  启用gzip

 使用gzip压缩功能,可为我们节约带宽,加快传输速度,有更好的体验,节约成本

Nginx启用压缩功能需要用ngx_http_gzip_module模块,apache使用的是mod_deflate

一般我们需要压缩的内容有:文本,js,html,css,

对于图片,视频,flash不压缩,同时也要注意,我们使用gzip的功能是需要消耗CPU的!

在http{}区域中添加:

vim /usr/local/nginx/conf/nginx.conf

    gzip  on;
    gzip_min_length  1k;
    gzip_buffers     4 32k;
    gzip_http_version 1.1;
    gzip_comp_level 6;
    gzip_types  text/css text/xml application/javascript;
    gzip_vary on;

 参数说明:

gzip on;        #开启压缩功能

gzip_min_length  1k;    #设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length(内容长度)中获取,默认值是0,建议设置成大于1K,如果小于1K可能会越压越大。

gzip_buffers     4 32k;  #压缩缓冲区大小,表示申请4个单位为32K的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果

gzip_http_version 1.1;  #压缩版本,用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可。

gzip_comp_level 6;  #压缩比例,用来指定GZIP压缩比,1压缩比最小,处理速度最快,9压缩比最大,传输速度快,但是处理慢,也比较消耗CPU资源。
 

gzip_types  text/css text/xml application/javascript;   #用来指定压缩的类型,‘text/html’类型总是会被压缩

默认值: gzip_types text/html (默认不对js/css文件进行压缩)

#不能使用通配符 text/*

#(不论是否指定)text/html  默认压缩

# 设置压缩哪种文本文件可参考 conf/mime.types

gzip_vary on;   #启用应答头"Vary: Accept-Encoding"。和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩。其实cdn,代理服务器,原理上都是代理服务器。他们一般以url为key值进行缓存。而vary属性的设置,告诉了代理根据url缓存的同时,vary的信息也作为key。比如客户端(浏览器)请求的信息里带上了Accept-Encoding:gzip 则返回压缩副本。如果没有带这个头信息,默认返回非压缩副本
 

八.日志切割优化

日志优化的目的,为了一天日志一压缩,按天存放

yum install -y bzip2

cd /usr/local/nginx/logs/

vim cut_nginx_log.sh

#!/bin/bash
date=$(date +%F -d -1day)
cd /usr/local/nginx/logs
if [ ! -d cut ] ; then
        mkdir cut
fi
mv access.log cut/access_$(date +%F -d -1day).log
mv error.log cut/error_$(date +%F -d -1day).log
/usr/local/nginx/sbin/nginx -s reload
tar -jcvf cut/$date.tar.bz2 cut/*
rm -rf cut/access* && rm -rf cut/error*
find -type f -mtime +10 | xargs rm -rf

 crontab -e 设置计划任务

0 0 * * * /bin/sh /usr/local/nginx/logs/cut_nginx_log.sh > /dev/null 2>&1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

叠氮试剂1379690-01-3,3-Azido-D-alanine HCl,3-叠氮-D-丙氨酸HCl

产品规格:3-叠氮-D-丙氨酸HCl,3-Azido-D-alanine HCl1.CAS号:1379690-01-32.分子式:C3H7ClN4O23.分子量:166.566284.包装规格:1g,5g,10g,包装灵活,有100mg包装…

06-Servlet

目录1.Servlet 技术a)什么是 Servletb)手动实现 Servlet 程序!这里要自己引入jar包,配置一下tomcat服务器c)url 地址到 Servlet 程序的访问d)Servlet 的生命周期e)GET 和 POST 请求的分发处理f) 通过继承 HttpServlet 实现Servlet 程序g)使用 IDEA 创建S…

小程序项目学习--第八章:播放页功能-代码重构-分包优化-打包发布

第八章:播放页功能-代码重构-分包优化-打包发布 01_(掌握)播放页-歌词分页的上下滚动区域 隐藏滚动条 .lyric-list ::-webkit-scrollbar {display: none; }歌词分页的上下滚动区域动态设置样式 思考什么时候是第一句歌词&#xff0c;什么时候是最后一句歌词 <swiper-ite…

嘉明的云计算与大数据学习之大数据综合实验案例

1.实验环境 (1)Linux:Ubuntu 16.04。 虚拟机镜像下载链接&#xff1a;https://pan.baidu.com/s/1i_B-2rAfPM53jf7Besi0tw 提取码&#xff1a;WZJM (2)MySQL:5.7.16。 (3)Hadoop:2.7.1。 (4)HBase:1.1.5。 (5)Hive:1.2.1。 (6)Sqoop:1.4.6。 (7)R:4.1.2。 (8)Eclipse:3.8。 2.…

Docklight Scripting模拟串行端口

Docklight Scripting模拟串行端口 Docklight是测试、分析和模拟串行端口(RS232、RS485/422等)的工具。此程序允许您监视和测试两个串行端口之间的连接。该程序环境简单&#xff0c;安装在所有Windows XP/7/8/10版本上。Docklight Scripting是一种带有内部编辑器的脚本语言&…

电子会议桌牌——网络版

产品特征&#xff1a; 低功耗&#xff0c;常规使用3-5年电池寿命支持空中唤醒&#xff0c;刷新快速&#xff0c;几秒钟内看到结果点阵电子纸屏幕&#xff0c;视角接近180基于Web的应用界面&#xff0c;支持跨平台操作安装简单&#xff0c;快速布置电池供电不需要布线双面显示…

Python你绝对不知道的15个小技巧,知道的算我输

名字&#xff1a;阿玥的小东东 学习&#xff1a;Python语言、正在学习c语言 主页&#xff1a;阿玥的小东东 目录 前言 1.all or any 2.bashplotlib 3.collections 4.dir 5.from __future__ import 6.python的优点 7.geopy 8.python2.x中的编码不是 unicode &#xff…

转行自学Java没后悔,我的经历证明,改变永远没有错

我在北京工作6年&#xff0c;现在年薪42万&#xff08;仅代表个人收益&#xff09;&#xff0c;目前在搜狐畅游工作&#xff0c;参与过轩辕剑的项目研发&#xff0c;有几个大型项目实战的经历&#xff0c;不过最后这几款项目都失败了。我之所以选择当初学习Java&#xff0c;就一…

我靠CSGO搬砖项目,一个月净赚过万

作为一名四线小城市的平凡上班族&#xff0c;今年已经满30岁了&#xff0c;工资到手也才6000多&#xff0c;已经不记得有多少年没涨过了。 后来通过CSGO搬运项目&#xff0c;每月副业收益稳定在5万的收益。 废话不多说&#xff0c;先给大家瞅瞅我上个月带货的收益&#xff0c…

为什么要上机械设备ERP系统?对企业管理有什么帮助?

机械设备制造行业是国民经济增长的重要支撑&#xff0c;随着信息化的发展&#xff0c;机械设备制造企业面临各种各样的挑战&#xff0c;频繁地出现部门监管力度不够、生产计划难定、产品质量不过关、生产过程操作不规范以及原材料使用不当等&#xff0c;造成资源浪费的现象&…

规则引擎设计与实现

规则引擎设计与实现 「字节跳动第五届青训营」笔记 是什么 规则引擎是一种嵌入在应用程序中的组件&#xff0c;实现了将业务决策从应用程序代码中分离出来&#xff0c;并 使用预定义的语义模块编写业务决策。接受数据输入&#xff0c;解释业务规则&#xff0c;并根据业务规则…

用最简单的方法实现个人网站-wordpress结合LAMP架构实战

文章目录前言一、LAMP架构是什么&#xff1f;1.1 LAMP架构简介1.2 什么是apache?1.3 什么是MySQL&#xff1f;1.4 什么是php&#xff1f;二. wordpress是什么三. 搭建博客过程1. 实验环境2. 搭建LAMP架构3. 设置数据库并授权4. 上传wordpress并解压5. 修改配置文件6. 网页端进…

基于C#制作一个网址检测工具

此文主要基于C#制作一个网址检测工具。随着时间推移以及公司人员的变动&#xff0c;手头所负责的项目也越来越多&#xff0c;对网站运行状况的管理也是一件让人十分头疼的事&#xff0c;秉持着偷懒是第一生产力的原则&#xff0c;制作一个工具对网址一键监测。 实现流程1、创建…

支付测试怎么做?要点有哪些?

目录 支付测试 避不开的 公司有没有支付牌照的问题&#xff1f; 国内有支付牌照的公司&#xff08;搞一张支付牌照 &#xff0c;不是钱多少的事&#xff09;总共 200 多家而已​编辑 没有支付牌照 公司就不可以支付么&#xff1f; 没有支付牌照 的公司的支付 做的什么支付&…

文档存储Elasticsearch系列--1 ES介绍

前言&#xff1a;Elasticsearch 也是使用 Java 编写的&#xff0c;它的内部使用 Lucene 做索引与搜索&#xff0c;支持结构化文档数据的分布式存储&#xff0c;并提供准实时的查询&#xff0c;全文检索&#xff0c;数据聚合&#xff1b; 1 为什么要使用ES: ES 本身存在哪些特性…

第二章---进程的描述与控制

&#x1f31e;欢迎来到操作系统的世界 &#x1f308;博客主页&#xff1a;卿云阁 &#x1f48c;欢迎关注&#x1f389;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f31f;本文由卿云阁原创&#xff01; &#x1f64f;作者水平很有限&#xff0c;如果发现错误&#xff…

打印机之——G3800故障维修

一 故障现象 5B00/1471/1472打印机进空气二 解决办法 2.1 5B00/1471/1472 解决办法——不需要软件清零,按键解决 步骤1 插上电源&#xff0c;打印机处于未开机状态&#xff0c;挡板处放入打印纸同时按住“停止”键和“电源”键&#xff0c;此时“电源”键亮起松开“停止”键…

python-opencv第六期:addWeighted函数详解

概要&#xff1a; 众嗦粥汁所周知&#xff0c;在如今计算机视觉&#xff08;Computer Version short for CV&#xff09;是人工智能与机器人技术发展的一个重大研究方向&#xff0c;而opencv作为一个专门为机器视觉编程提供技术与函数支持的第三方库&#xff0c;自然是一个需要…

Devops简介

Devops DevOps是一组过程、方法与系统的统称&#xff0c;用于促进开发、技术运营和**质量保障&#xff08;QA&#xff09;**部门之间的沟通、协作与整合。 其目的就是让开发人员和运维人员更好的沟通合作的文化、运动或惯例&#xff0c;通过自动化交付流程来使软件开发&#x…

牛客网C基础题目练习1

目录题目1&#xff1a;竞选社长题目2&#xff1a;最高分数题目3&#xff1a;判断是元音还是辅音题目4&#xff1a;判断是不是字母题目5&#xff1a;字母大小写转换题目1&#xff1a;竞选社长&#x1f4ad;法1&#xff1a;使用字符串数组代码实现&#xff1a;int main() {char a…