在生產(chǎn)環(huán)境中,需要隱藏Nginx
的版本號,以避免安全漏洞的泄漏
查看方法
fiddler
工具在Windows
客戶端查看Nginx
版本號CentOS
系統(tǒng)中使用"curl -I 網(wǎng)址”
命令查看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
運行時進程需要有用戶與組的支持,以實現(xiàn)對網(wǎng)站文件讀取時進行訪問控制Nginx
默認使用nobody
用戶賬號與組賬號,一般也要進行修改創(chuàng)建用戶賬號與組賬號,如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
將網(wǎng)頁數(shù)據(jù)返回給客戶端后,可設置緩存的時間,以方便在日后進行相同內容的請求時直接返回,避免重復請求,加快了訪問速度Windows
客戶端中使用fiddler
查看網(wǎng)頁緩存時間http
段、 或者server
段、 或者location
段加入對特定內容的過期參數(shù)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 //編輯網(wǎng)頁內容
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服務
Keepalive_ timeout
Client header_ 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 //重啟服務
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。