首页 > 系统相关 >Nginx 优化

Nginx 优化

时间:2023-06-25 20:01:16浏览次数:50  
标签:logs application 版本号 Nginx nginx gzip 优化

目录

一、Nginx 隐藏版本号

当Nginx的版本号不隐藏时,访问网站会显示 Nginx的版本号,从而会增加一定的风险

1. 访问网站查看版本号

image-20230625145205221

2. 隐藏方法

(1)备份配置文件

cd /usr/local/nginx/conf/
cp nginx.conf nginx.conf.bak

image-20230625150134701

(2)修改配置文件

vim /usr/local/nginx/nginx.conf 
 
 http {
     include       mime.types;
     default_type  application/octet-stream;
	
	 # 隐藏版本号
	 server_tokens off;

:wq!

# 重启 Nginx 服务
systemctl restart nginx

image-20230625150819226

3. 刷新网页

版本号被隐藏

image-20230625151223070

二、Nginx 更改版本号

1. 修改 Nginx 源码文件

cd /opt/nginx-1.22.0/src/core/
vim nginx.h

# 更改为自定义版本号
#define NGINX_VERSION      "abc"

:wq!

image-20230625152205337

2. 重新编译安装

# 指定重新安装路径及模块
cd /opt/nginx-1.22.0/
[root@www nginx-1.22.0]# 
./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module \
> --with-http_ssl_module

# 编译与安装
make -j 6 && make install

3. 将隐藏版本号设置打开

vim /usr/local/nginx/conf/nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;
    
    # 打开版本号设置
    server_tokens on; 

:wq!

# 重启 Nginx 服务
systemctl restart nginx

image-20230625154424572

4. 刷新网页

版本号隐藏成功

image-20230625154846670

三、Nginx 日志分割

Nginx本身不带日志分割工具,所以在工作中,所有的nginx的日志分割都是以shell脚本的形式来实现的

1. 编写shell脚本

cd /opt
[root@www opt]# 
vim nginxlog.sh

#!/bin/bash

# 获取当前日期
d=$(date +%Y-%m-%d)

# 定义存储目录
dir="/usr/local/nginx/logs"

# 定义需要分割的日志源文件
logs_file="/usr/local/nginx/logs/access.log"
logs_error="/usr/local/nginx/logs/error.log"

# 定义nginx服务的pid文件
pid_file="/usr/local/nginx/logs/nginx.pid"


if [ ! -d $dir ]
then
        mkdir $dir
fi


# 移动日志文件access error,重命名
mv ${logs_file}  ${dir}/access_${d}.log
mv ${logs_error}  ${dir}/error_${d}.log


# 发送信号,给nginx主程序,让nginx生成新的日志文件
kill -USR1 $(cat ${pid_file})


# 日志文件清理,将30天前的日志文件直接清除
find ${dir} -mtime +30 -exec rm -rf {} \;


image-20230625172206918

image-20230625165536229

2. 运行脚本

./nginxlog.sh

image-20230625172353094

3. 创建定时任务

crontab -e -u root

0 0 1 * * /opt/nginxlog.sh

:wq!

image-20230625172933616

四、Nginx 压缩页面

压缩目的时为了节约宽带,提高访问速度

ngx_http_gzip_module 压缩模块所提供的功能,默认是注释掉的,也就是不压缩,需要人工指定

gzip_min_length 1k; 最小的压缩文件,小与1K就不再压缩了

gzip buffers 4 64k; 压缩的缓冲区,4个64K缓冲区

gzip _http_version 1.1; 压缩版本,默认1.1

gzip_comp_level 6; 压缩级别1-9,6(正好)

gzip_vary on; 支持前端缓存服务器的压缩功能打开

gzip_types textplain text/javascript application/x-javascript text/css text/xml application/xml applicationt/xmI+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;
支持压缩的类型

1. 更改配置文件

    gzip  on; 
        gzip_min_length 1k; 
        gzip_buffers 4 64k;
        gzip_http_version 1.1;
        gzip_comp_level 6;
        gzip_vary on; 
        gzip_types textplain text/javascript application/x-javascript text/css text/xml application/xml applicationt/xmI+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json; 
        
:wq!

# 检验配置文件是否有错误
nginx -t

# 重启Nginx服务
systemctl restart nginx

image-20230625190310305

image-20230625192346348

2. 清空浏览器缓存重新访问

image-20230625194842753

标签:logs,application,版本号,Nginx,nginx,gzip,优化
From: https://www.cnblogs.com/m-zhuang/p/17503824.html

相关文章

  • Ingress-Nginx 灰度(金丝雀)发布
    使用Ingress-Nginx进行灰度(金丝雀)发布Ingress-NginxCanary介绍NginxIngressController作为项目对外的流量入口和项目中各个服务的反向代理。官方文档概述:Annotations-Ingress-NginxController(kubernetes.github.io)NginxAnnotations的几种Canary规则:Annota......
  • linux 服务优化与防盗链
    摘要:网页安全至关重要,所有设置隐藏版本号,防止黑客攻击,日志切割方便维护,网页压缩方便响应速度,防盗链防止重要文件泄露。 目录一、隐藏版本号二、修改缓存时间三、日志切割四、连接超时五、工作进程数六、网页压缩七、防盗链八、总结  一、隐藏版本号1.curl查......
  • SqlServer优化排查
    --查看死锁进程spidsp_who2active--进程持续排行cpu:SELECT*FROMsys.sysprocessesorderbycpudesc--查询造成阻塞或死锁的Sql语句:dbccinputbuffer(520)--查看数据库列表select*frommaster..sysdatabases查看锁表:selectrequest_session_idspid,OBJECT_N......
  • nginx
    Nginx是一种高性能的Web服务器软件,它可以作为反向代理服务器、负载均衡器、HTTP缓存、静态资源服务器等用途。Nginx的主要作用包括:静态资源服务器:Nginx支持快速、高效地响应静态文件的请求,包括HTML页面、CSS文件、图片等。它可以快速地将静态资源缓存起来,提高Web应用的访问速度......
  • Nginx https配置http的图片服务
    1.在Nginx配置网站的https服务#HTTPSserver#server{listen443ssl;server_namelocalhost,10.11.1.68;ssl_certificateca.crt;ssl_certificate_keyca.key;ssl_session_cacheshared:SSL:1m;......
  • Keepalived+Nginx 高可用集群架构
                                  Keepalived+Nginx高可用集群(主从模式)                                             ......
  • 【Nginx】- 优化实践
    Nginx的优化Linux安装Nginx安装依赖包//一键安装下面四个依赖gcc/zlib/prec-devel/opensslyum-yinstallgcczlibzlib-develpcre-developensslopenssl-devel因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来yuminstallgcc-c++Nginx......
  • 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) ......