修改NGINX版本名稱假裝任意WEB SERVER

 

不管是做爲Web服務器或其餘類型程序的反向代理服務器,Nginx("engine x")都有着高性能且輕量級的優點。其特色是佔有內存少,併發能力強,事實上Nginx的併發能力確實在同類型的網頁服務器中表現較好。這也使得Nginx在現在不論是存放在高配獨立服務器上的大型的門戶,仍是存放在迷你64M內存VPS上的小型的我的博客,Nginx都在被普遍使用着。html

 

國內淘寶、新浪、網易、騰訊等都在使用。其中淘寶正是基於原做者的BSD-like協議,在其源代碼基礎上開發了Tengine,這暫且不表。前端

 

今天咱們來講說,如何修改Nginx其內部默認名稱。這對安全或者裝逼都是很是實用的。nginx

 

咱們都知道通常Nginx有哪些內部名稱展現,若有經過HTTP Response
Header中的Server、錯誤頁的footer、FPM-FastCGI等。緩存

 

通常來講修改3個位置,一個是nginx.h、另外一個是ngx_http_header_filter_module.c、還有一個ngx_http_special_response.c。安全

 

 

提示:如下修改須要在編譯安裝Nginx以前進行,修改以後再編譯服務器

如今Web Server使用普遍,針對它的攻擊也愈來愈多,Nginx這玩意出道時間也並不長,雖然國內不少門戶網站都用它,小內存VPS用戶也愛它,可是我可不想哪天它爆出了個驚天BUG,上次80sec公佈的Nginx相關PHP FPM漏洞就是警示哦,假若假裝了個人Nginx服務器,攻擊者就不知道我使用的是何種Web Server,也就無從下手了。
併發

修改src/core/nginx.h(Nginx內部名稱的)性能

#define NGINX_VERSION      "1.8.0"
#define NGINX_VER          "NGINX/" NGINX_VERSION

NGINX_VERSION是版本號,NGINX_VER是名稱網站

 

修改src/http/ngx_http_header_filter_module.c(HTTP ResponseHeaderspa

static char ngx_http_server_string[] = "Server: nginx" CRLF;

 

修改src/http/ngx_http_special_response.c(修改錯誤頁的底部Footer)

static u_char ngx_http_error_tail[] =
"<hr><center>nginx</center>" CRLF "</body>" CRLF "</html>" CRLF ;

 

爲何不修改安裝後的Nginx Config下的fastcgi.conf呢?由於如今外部已是沒法瞭解咱們的服務器名稱,已經達到咱們的目的了。並且咱們經常使用的一些程序,可能會對你的前端(反向代理服務器)作判斷,畢竟Nginx不一樣於Apache,沒法動態規則。特別是Wordpress的緩存插件,大多會經過判斷你是否Nginx,若是是的話,提醒你添加一些規則語句。這時fastcgi.conf就起做用的,其中的fastcgi_param SERVER_SOFTWAREnginx/$nginx_version;可使得PHP與Nginx內部之間的互相瞭解。因此個人建議,仍是不修改fastcgi.conf,固然你非要改,也能夠的。

相關文章
相關標籤/搜索