PS.因爲直接訪問http://www.xxx.com/server-status可以直接看到Apache配置信息,爲了避免出現信息泄露問題,最好不要打開server-status
1、確認Apache已經安裝status模塊:
在httpd.conf
中查看LoadModule status_module modules/mod_status.so
是否開啓(前面是否有#
);
PS.如果Apache沒有加載這個模塊,如果是linux服務器,就得重新編譯Apache,加上–enable-module=so參數即可;如果你是Windows系統的話,無需任何編譯,只要把剛纔時候說的LoadModule status_module modules/mod_status.so這句加上,如果前面有帶#號,開啓的話,需要將#去除。
2、配置Apache Server Status:
修改httpd.conf
,在最後加上server-status的配置:
<IfModule status_module>
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
#Allow from all
</Location>
</IfModule>
上面的配置指定的是禁止訪問server-status,如果你想開啓server-status,在Deny from all
前面加上#
,去掉Allow from all
前面的#
即可。
3、禁止IP訪問Apache服務器:
按照之前搭建lanmp的步驟,Apache虛擬站點配置文件是http-vhost.conf
,所以修改vi /etc/apacheconf/extra/httpd-vhosts.conf
,在最前面加入如下虛擬站點:
<VirtualHost 127.0.0.1:80>
ServerName 服務器ip地址
<Directory />
Order Allow,Deny
Deny from all
</Directory>
</VirtualHost>
保存退出,重啓Apache服務,這樣就就可以屏蔽通過ip訪問站點的操作,但是配置其它Apache虛擬站點的時候ServerName
再使用localhost
就無效了,必須用域名。
4、修改nginx的配置文件,禁止ip訪問nginx服務:
按照之前的教程,只需要修改nginx.conf
即可:
在nginx.conf
中找到include vhost/*.conf;
,在此之前添加一個server
,內容如下:
server
{
listen 外網IP:80 default;
server_name _;
#return 403;
rewrite ^(.*) http://xxx.com permanent;
}
重啓nginx,這樣所有通過ip訪問nginx服務器的時候都會被rewrite到設定的域名下,需要注意的是,同Apache虛擬站點配置一樣,設定了禁止ip訪問之後,nginx虛擬站點的server_name
也不能使用localhost
,這樣不管通過ip訪問nginx還是Apache服務都是屏蔽狀態,在上面的配置文件中可以直接返回一個錯誤狀態,也可以直接跳轉到一個指定的網址,看個人喜好。