在Linux系统中配置Nginx网页优化(一)
admin
2023-02-27 14:41:57
0

配置Nginx隐藏版本号

  • 在生产环境中,需要隐藏Nginx的版本号,以避免安全漏洞的泄漏

  • 查看方法

    • 使用fiddler工具在Windows客户端查看Nginx版本号
    • CentOS系统中使用"curl -I 网址”命令查看
  • Nginx隐藏版本号的方法
    • 修改配置文件法
    • 修改源码法

修改配置文件法

  • Nginx的配置文件中的server_ tokens选项的值设置为off
[root@www conf]# vi nginx.conf
.....
server_ tokens off;              //关闭版本号
.....
[root@www conf]# nginx -t
  • 重启服务,访问网站使用curl -I命令检测
[root@www conf]# service nginx restart
[root@www conf]# curl -| http://192.168.9.209/
HTTP/1.1 200 OK
Server: nginx
  • php配置文件中配置了fastcgi_param SERVER_ SOFTWARE选项.
  • 则编辑php-fpm配置文件,将fastcgi_param SERVER_ SOFTWARE对应的值修改为
    • fastcgi_param SERVER_ SOFTWARE nginx ;

配置实例

[root@localhost nginx]# curl -I http://192.168.144.133/    //使用命令查看版本号
HTTP/1.1 200 OK
Server: nginx/1.12.2      //显示版本号
Date: Thu, 14 Nov 2019 06:52:14 GMT
Content-Type: text/html
Content-Length: 634
Last-Modified: Thu, 14 Nov 2019 06:24:32 GMT
Connection: keep-alive
ETag: "5dccf320-27a"
Accept-Ranges: bytes
[root@localhost nginx]# vim conf/nginx.conf        //进入编辑配置文件
...//省略部分内容...
http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;          //添加条目关闭版本号
...//省略部分内容...
:wq
[root@localhost nginx]# systemctl restart nginx.service
[root@localhost nginx]# curl -I http://192.168.144.133
HTTP/1.1 200 OK
Server: nginx                 //版本号隐藏
Date: Thu, 14 Nov 2019 06:56:51 GMT
Content-Type: text/html
Content-Length: 634
Last-Modified: Thu, 14 Nov 2019 06:24:32 GMT
Connection: keep-alive
ETag: "5dccf320-27a"
Accept-Ranges: bytes

修改源码法

  • Nginx源码文件/usr/src/nginx-1.12.0/src/core/nginx.h包含了版本信息,可以随意设置
  • 重新编译安装,隐藏版本信息

  • 示例:

    #define NGINX_ VERSION“1.1.1"        修改版本号为1.1.1
    #define NGINX VER "IIS/"         修改软件类型为IIS
  • 重启服务,访问网站使用curl -I命令检测

配置实例

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf     //编辑nginx配置文件
...//省略部分内容...
http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens on;                           //打开上面设置的隐藏版本号条目
...//省略部分内容...
:wq
[root@localhost ~]# cd /opt/nginx-1.12.2/src/core/    //到解压的源码包中更改版本号信息
[root@localhost core]# vim nginx.h
#define nginx_version      1012002
#define NGINX_VERSION      "1.1.1"                   //更改版本号
#define NGINX_VER          "nginx/" NGINX_VERSION
:wq
[root@localhost core]# cd /optnginx-1.12.2/
[root@localhost nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module                          //重新配置nginx
checking for OS
 + Linux 3.10.0-693.el7.x86_64 x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
...//省略部分内容...
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"
[root@localhost nginx-1.12.2]# make && make install     //重新制作安装nginx
[root@localhost nginx-1.12.2]# systemctl restart nginx.service     //重新启动nginx服务
[root@localhost nginx-1.12.2]# curl -I http://192.168.144.133    //查看版本号
HTTP/1.1 200 OK
Server: nginx/1.1.1             //版本号变更
Date: Thu, 14 Nov 2019 07:11:08 GMT
Content-Type: text/html
Content-Length: 634
Last-Modified: Thu, 14 Nov 2019 06:24:32 GMT
Connection: keep-alive
ETag: "5dccf320-27a"
Accept-Ranges: bytes

修改Nginx用户与组

  • Nginx运行时进程需要有用户与组的支持,以实现对网站文件读取时进行访问控制
  • Nginx默认使用nobody用户账号与组账号,一般也要进行修改
  • 修改的方法
    • 编译安装时指定用户与组
    • 修改配置文件指定用户与组

编译安装时指定

  • 创建用户账号与组账号,如nginx

  • 在编译安装时--user--group指定Nginx服务的运行用户与组账号

修改配置文件法指定

  • 新建用户账号,如nginx
  • 修改主配置文件user选项,指定用户账号
  • 重启nginx服务, 使配置生效
  • 使用ps aux命令查看nginx的进程信息,验证运行用户账号改变效果
[root@www conf]# vi nginx.conf
user nginx nginx;
[root@www conf]# service nginx restart
[root@www conf]# ps aux | grep nginx
root     130034 0.0 0.0 20220 620 ?        Ss 19:41 0:00 nginx: master process
/usr/local/sbin/nginx
nginx       130035 0.0 0.0 20664 1512 ?     S 19:41 0:00 nginx: worker process

配置Nginx网页缓存时间

  • Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度
  • 般针对静态网页设置,对动态网页不设置缓存时间
  • 可在Windows客户端中使用fiddler查看网页缓存时间

设置方法

  • 可修改配置文件,在http段、 或者server段、 或者location段加入对特定内容的过期参数

示例

  • 修改Nginx的配置文件,在location段加入expires参数
location ~\.(gif|ipg|jepg|png|bmp|ico)$ {
       root  html;
       expires 1d; 
}

配置实例

[root@localhost ~]# systemctl stop firewalld.service      //关闭防火墙
[root@localhost ~]# setenforce 0                          //关闭增强性安全功能
[root@localhost ~]# systemctl start nginx.service         //启动nginx服务
[root@localhost ~]# netstat -ntap | grep 80               //查看服务端口是否开启
tcp        0      0 0.0.0.0:80              0.0.0.0:*           LISTEN      1684/nginx: master  
[root@localhost ~]# mkdir abc
[root@localhost ~]# mount.cifs //192.168.100.10/lamp-c7 abc/    //将宿主机图片文件夹挂载到abc目录
Password for root@//192.168.100.10/lamp-c7:  
[root@localhost ~]# cd abc/       //进入abc目录           
[root@localhost abc]# ls
apr-1.6.2.tar.gz                  Discuz_X2.5_SC_UTF8.zip  miao.jpg
apr-util-1.6.0.tar.gz             error.png                mysql-5.6.26.tar.gz
awstats-7.6.tar.gz                httpd-2.4.29.tar.bz2     nginx-1.12.0.tar.gz
cronolog-1.6.2-14.el7.x86_64.rpm  LAMP-php5.6.txt          php-5.6.11.tar.bz2
[root@localhost abc]# cp miao.jpg /usr/local/nginx/html/   //将图片复制到nginx服务站点
[root@localhost abc]# cd /usr/local/nginx/html/      //进入站点目录
[root@localhost html]# ls
50x.html  index.html  miao.jpg
[root@localhost html]# vim index.html       //编辑网页内容



Welcome to nginx!



Welcome to nginx!

//添加图片

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

:wq [root@localhost nginx]# vim conf/nginx.conf //编辑配置 ..//省略部分内容... events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; ..//省略部分内容... # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~\.(gif|jepg|jpg|ico|bmp|png)$ { //编辑缓存条目 root html; expires 1d; } } ..//省略部分内容... :wq [root@localhost nginx]# systemctl restart nginx.service //重启nginx服务
  • 在客户机中访问网页,并使用抓包工具查看缓存时间是否开启

在Linux系统中配置Nginx网页优化(一)在Linux系统中配置Nginx网页优化(一)

配置Nginx实现连接超时

  • 在企业网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间
  • 使用Fiddler工具查看connection参数

超时参数讲解

  • Keepalive_ timeout

    • 设置连接保持超时时间,-般可只设置该参数,默认为75秒,可根据网站的情况设置,或者关闭,可在http段、 server段、 或者location段设置
  • Client header_ timeout

    • 指定等待客户端发送请求头的超时时间
  • Client body _timeout
    • 设置请求体读超时时间

配置实例

[root@localhost nginx-1.12.2]# cd /usr/local/nginx/conf/     //进入nginx配置文件目录
[root@localhost conf]# vim nginx.conf      //编辑配置文件
...//省略部分内容...
http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens on;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65 180;     //添加客户端超时时间180秒
    client_header_timeout 80;      //设置客户端头部超时时间
    client_body_timeout 80;        //设置客户端主题内容超时时间

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;
...//省略部分内容...
:wq
[root@localhost conf]# systemctl restart nginx.service      //重启服务

相关内容

热门资讯

水龙头出水小怎么解决 水龙头出水小可能是由多种原因引起的,以下是一些常见的解决方法:1. 清洁水龙头:水龙头使用时间长了,...
小神童洗衣机启动后不出水直接洗 有可能是洗衣机的进水阀被烧坏了,需要换一个新的进水阀安装上即可。另外不建议自己擅自拆卸洗衣机内部进行...
祝贺景德镇! 海报制作:苗夏阳正在韩国釜山举行的联合国教科文组织第48届世界遗产大会25日通过决议将“景德镇手工瓷...
中央空调不制冷怎么办-中央空调... 中央空调,是电器股份有限公司主要产品之一,但是由于中央空调使用环境和使用方式的不同,在使用过程中就会...
空调不出水不制冷怎么回事 内罩长期不清洗,当然房间密封性差的话也会导致这种现象;其次就是外机问题,如果外机积满灰尘,会成空调制...
空调不出水,不制冷 原因有多种,可能是电源插头没有接牢、制冷剂不足、空调短时间休息间隙、空调滤网积灰等等。很多情况可以自...
中方反击了,欧盟回应 据凤凰卫视报道,中国商务部7月24日宣布对包括德国军工巨头莱茵金属公司在内的14家欧洲企业实施出口管...
这个“中国首次”,很有看点 刚刚,韩国釜山,第48届世界遗产大会传来好消息:“景德镇手工瓷业遗存”成功列入《世界遗产名录》!这是...
85岁剑桥教授,为何成了中国年... ·2026年6月,艾伦·麦克法兰在英国剑桥大学国王学院。(Muye.G/摄)(本文图片均由剑桥康河出...
西安造12英寸硅片月产销突破1... 12英寸电子级硅片是当前全球半导体产业链的紧缺关键材料。近日,记者从位于西安高新区的西安奕斯伟材料科...