nginxの最適化は---バージョン番号とWebキャッシュ時間を隠します

隠すnginxのコンフィギュレーションバージョン番号

本番環境では、我々は避けセキュリティに隠すために、nginxのバージョン番号を必要とする
脆弱性がリーク

方法を確認
Windowsクライアントビューnginxのバージョン番号を持つ●シオマネキIの使用
CentOSのシステムを表示するために、「カール-I URL」を使用して

隠されたメソッドのnginxのバージョン番号は、
コンフィギュレーション・ファイル方式を変更する●
ソースコードの法律を修正します●


コンフィギュレーション・ファイル方式を変更します。

バリューSERVER_トークンオプション1.Nginxプロファイルがオフになっています

[root@www conf]# vim nginx.conf
.....
server_ tokens off;
.....
[root@www conf]# nginx -t

2.サービスを再起動し、カール-Iコマンド検出を使用してWebサイトを参照してください。

[root@www conf]# service nginx restart
[root@www conf]# curl -1 http://192.1 68.9.209/
HTTP/1.1200 OK
Server: nginx

3. FastCGIを設定するには、PHPの設定ファイルの場合のparamサーバーソフトウェアオプションを。PHP-FPM編集プロファイルのFastCGI PARAMサーバに対応する値に変更SOFTWARE

fastcgi_ param SERVER_ SOFTWARE nginx ;

ソースコードの法律を変更します

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

カール-Iコマンド検出を使用してWebサイトを参照してください、サービスを再起動します


ユーザーとグループを変更するnginxの

nginxの実行中のプロセスがファイルを読むためにWebサイトへのアクセス制御を実現するために、ユーザーとグループの支援を必要とします

Nginxは誰のデフォルトのユーザーアカウントとグループアカウントは、一般的に修正する必要があります

この方法は、修正
●ユーザグループを指定してコンパイルがマウント
指定されたユーザグループに設定ファイルを修正します●


コンフィギュレーション・ファイルの指定にメソッドを変更

1.このようnginxのように、新しいユーザーアカウントを作成し
たユーザーアカウントを指定し、2変更メインの設定ファイルのユーザーオプション
設定可能、3。再起動nginxのサービスを
、ユーザの操作確認し、nginxのプロセス情報を表示する4. PSの補助コマンドを
アカウントの変更の影響を

[root@www conf]# vi nginx.conf
user nginx nginx;
[root@www conf]# service nginx restart
[root@www conf]# ps aux lgrep nginx
root        1300340.0 0.0 20220 620? Ss 19:41 0:00 nginx: master process
/usr/local/sbin/nginx
nginx   1300350.0 0.0 20664 1512 ?S 19:41 0:00 nginx: worker process

nginxのウェブキャッシングの設定時間

nginxのWebページデータをクライアントにバックアップするときは、同じ内容を後日を要求するときに直接復帰を促進するために、キャッシュ時間を設定することができ、速度に回避複製要求アクセス速度アップ動的ページ用に設定され、静的なページのようにキャッシュを設定していません時間は、WindowsクライアントでのWebページのキャッシュ時間シオマネキを表示するために使用することができます

設定方法

特定のコンテンツにパラメータを追加し、設定ファイルを変更することができます。httpセグメント、またはサーバセグメント、セグメントまたは場所で期限切れ

nginxの設定ファイルを変更、追加は場所のセクションでパラメータを満了します

location ~ \.(gifjpgliepglpnglbmplico)$ {
root html;
expires 1d;


実証例のバージョン番号を隠します

まず、nginxのサービスをコンパイルしてインストールします

最初のステップ:のWindows、Linux上でリモートソースパッケージを取得し、上にマウント

[root@localhost ~]# smbclient -L //192.168.235.1
Enter SAMBA\root's password: 
Sharename       Type      Comment
---------       ----      -------
LNMP            Disk  

[root@localhost ~]# mkdir /abc
[root@localhost ~]# mount.cifs //192.168.235.1/LNMP /abc
Password for root@//192.168.235.1/LNMP:  
[root@localhost ~]# ls /abc
Discuz_X3.4_SC_UTF8.zip    nginx-1.12.2.tar.gz
game.jpg                   php-7.1.10.tar.bz2
mysql-boost-5.7.20.tar.gz  php-7.1.20.tar.gz
nginx-1.12.0.tar.gz

第二段階:抽出ソースパッケージ

[root@localhost ~]# cd /abc
[root@localhost abc]# tar zxvf nginx-1.12.0.tar.gz -C /opt
[root@localhost abc]# ls /opt
nginx-1.12.0  rh

ステップ3:ダウンロードおよびコンパイラパッケージをインストールします

[root@localhost abc]# cd /opt
[root@localhost opt]# yum install -y \
> gcc \             //C语言
> gcc-c++ \         //c++语言
> pcre-devel \      //pcre语言工具
> zlib-devel        //压缩函数库

ステップ4:ユーザプログラムと構成を作成しますnginxのは、関連コンポーネントにサービスを提供

[root@localhost opt]# useradd -M -s /sbin/nologin nginx
//创建程序用户nginx,并限定其不可登录终端
[root@localhost opt]# cd nginx-1.12.0/
[root@localhost nginx-1.12.0]# ./configure \            
//配置nginx
> --prefix=/usr/local/nginx \       
//指定安装路径                        
> --user=nginx \
//指定用户名
> --group=nginx \
//指定用户所属组
> --with-http_stub_status_module
//安装状态统计模块

ステップ5:nginxのコンパイルとインストール

[root@localhost nginx-1.12.0]# make && make install

ステップ6:nginxの最適化サービスのスタートアップスクリプト、およびコマンドソフトの接続を確立

[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ 
//创建nginx服务命令软链接到系统命令
[root@localhost nginx-1.12.0]# systemctl stop firewalld.service 
//关闭防火墙
[root@localhost nginx-1.12.0]# setenforce 0
//关闭增强型安全功能
[root@localhost nginx-1.12.0]# nginx 
//输入nginx 开启服务
[root@localhost nginx-1.12.0]# netstat -ntap | grep 80      //查看服务的80 端口,显示已开启
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7520/nginx: master  

ステップ7:systemctl管理スクリプトnginxの

[root@localhost ~]# vim /lib/systemd/system/nginx.service      ##创建配置文件

[Unit]
Description=nginx                                            ##描述
After=network.target                                        ##描述服务类型
[Service]
Type=forking                                                    ##后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid            ##PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx              ##启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID    ##根据PID重载配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID       ##根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target

[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service     ##设置执行权限
[root@localhost ~]# systemctl stop nginx.service       ##关闭nginx 
[root@localhost ~]# systemctl start nginx.service       ##开启nginx 

第二には、バージョン番号を非表示にするには、設定ファイルの方法を変更します

ステップ1:nginxのデフォルトのバージョン番号を確認します

[root@localhost ~]# curl -I http://192.168.235.158      ##查看版本号
HTTP/1.1 200 OK
Server: nginx/1.12.0
##可见版本号为1.12.0
Date: Wed, 13 Nov 2019 08:32:59 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Wed, 06 Nov 2019 01:53:19 GMT
Connection: keep-alive
ETag: "5dc2278f-264"
Accept-Ranges: bytes

ステップ2:設定ファイルを変更するnginx.conf

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;
##在http协议段落中加入server_ tokens选项的值设置为off即可

第三段階:隠されたnginxのバージョン番号を確認します

[root@localhost ~]# systemctl stop nginx.service 
[root@localhost ~]# systemctl start nginx.service
[root@localhost ~]# curl -I http://192.168.235.158
HTTP/1.1 200 OK
Server: nginx
##可见版本号已被隐藏
Date: Wed, 13 Nov 2019 09:18:00 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Wed, 06 Nov 2019 01:53:19 GMT
Connection: keep-alive
ETag: "5dc2278f-264"
Accept-Ranges: bytes

第三には、ソースコードのバージョン番号隠された法律行為の設定を変更します

最初のステップ:設定ファイルを変更するnginx.conf

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
...
 server_tokens on;
 ##将off替换成on

ステップ2:ファイルのソースコードのバージョン情報を変更nginx.h

[root@localhost ~]# vim /opt/nginx-1.12.0/src/core/nginx.h

#define NGINX_VERSION      "1.1.1"
##更改版本信息为1.1.1

第三段階:再コンパイルnginxの

[root@localhost ~]# cd /opt/nginx-1.12.0/

[root@localhost nginx-1.12.0]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module

[root@localhost nginx-1.12.0]# make && make install

ステップ4:隠されたnginxののバージョン番号を確認してください

[root@localhost nginx-1.12.0]# curl -I http://192.168.235.158 
HTTP/1.1 200 OK
Server: nginx/1.1.1
##可见版本号已成功更改为1.1.1
Date: Wed, 13 Nov 2019 10:20:23 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Wed, 06 Nov 2019 01:53:19 GMT
Connection: keep-alive
ETag: "5dc2278f-264"
Accept-Ranges: bytes


Web Cacheインスタンスは、時間をデモ

最初のステップ:サイトディレクトリにコピー写真

[root@localhost nginx-1.12.0]# ls /abc
Discuz_X3.4_SC_UTF8.zip    nginx-1.12.2.tar.gz
game.jpg                   php-7.1.10.tar.bz2
mysql-boost-5.7.20.tar.gz  php-7.1.20.tar.gz
nginx-1.12.0.tar.gz
[root@localhost nginx-1.12.0]# cp /abc/game.jpg /usr/local/nginx/html/
[root@localhost nginx-1.12.0]# cd /usr/local/nginx/html/
[root@localhost html]# ls
50x.html  game.jpg  index.html

ステップ2:のindex.htmlページnginxのを修正

[root@localhost html]# vim index.html

<h1>Welcome to nginx!</h1>
<img src="game.jpg"/>
##在h1标签下添加图片路径

第三段階:変更nginxの.confのファイル

[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf

user nginx nginx;
##单独输入此行条目,指定用户nginx,指定组nginx

 location ~\.(gif|jepg|jpg|ico|bmp|png)$ {
            root html;
            expires 1d;
            ##上述图片类型图片缓存一天
        }

[root@localhost html]# systemctl stop nginx.service
[root@localhost html]# systemctl start nginx.service 

ステップ4:Win10仮想マシンの検証を開きます。

Fiddler.exeキャプチャソフトウェアは、クライアントにインストールされ、192.168.235.158にアクセスするには、Webブラウザを開き、

ここに画像を挿入説明


読んでくれてありがとう!

おすすめ

転載: blog.51cto.com/14449521/2450139