nginx之所以輕,因為默認沒有安裝各種各樣的擴展;
nginx安裝擴展插件:
下面列出兩個可能會用到的插件
一、sub_filter內容過濾器,這個在nginx做http轉發的時候會很常用
1.下載插件>git clone git://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
2.安裝插件
**如果你還沒有安裝nginx的,配置的時候./configure ..... 加上 --add-module=/tmp/ngx_http_substitutions_filter_module 這段話進行配置;
**如果你已經安裝了nginx的,找到你的nginx源安裝目錄如
>cd nginx-1.11.0 //進入nginx安裝目錄
>./configure --prefix=/usr/local/nginx --add-module=/tmp/cyq/ngx_http_substitutions_filter_module //prefix指定你安裝好的nginx目錄,add-module指定你下載的sub_filter插件目錄
>make //這邊注意了,不要make install,只需要make編譯一下,然后在當前目錄的./objs/下面就會更新nginx啟動文件
>mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old //先pkill -9 nginx 停止nginx服務
>cp ./objs/nginx /usr/local/nginx/sbin/nginx //把編譯生成的文件放到你的nginx啟動目錄里面
>/usr/local/nginx/sbin/nginx //啟動nginx就行了
3.打開自己的網站,內容是 this is php in 192.168.199.167
在對應的nginx.conf 文件中,添加需要進行過濾的數據內容
vi nginx.conf
將this is 改為 my name is
是不是很強大呢?畢竟nginx是屬於第七層應用層領域的,所以轉發的內容可以隨意修改;這個插件可以用於建設小偷網站,就是域名是自己的,但是你轉發到其他網站的時候,里面很多數據都暴露了網站內容屬於其他人的
這個時候你就可以使用sub_filter來做內容過濾了!哈哈哈哈!
二、nginx無法轉發到https網站
會報以下錯誤:
nginx: [emerg] https protocol requires SSL support in xx/xxx/xx/
這個很簡單,不過網上說什么缺少ssl模塊啦,還要安裝證書啦,巴拉巴拉一大堆。(這些只是針對網站需要證書驗證訪問才需要的)
一般的訪問https失敗,只是因為nginx沒有安裝兩個模塊http_ssl_module和http_stub_status_module
解決步驟:
1.進入nginx安裝目錄
>cd /xx/nginx-1.11.0
>./configure --with-http_stub_status_module --with-http_ssl_module
>make
>cp ./objs/nginx /usr/local/nginx/sbin/nginx //先停止nginx,然后吧nginx覆蓋掉
>/usr/local/nginx/sbin/nginx //再次啟動nginx就可以了