一、ngx_http_addition_module
1、最近看了下ngx_http_addition_module模塊,這個模塊在響應之前或者之後追加文本內容,比如可以追加一個js或者css,可以使用這個模塊來實現。於是按照官網,在nginx的配置文件添加了相應的配置,在重啓nginx的時候發現,nginx在編譯的時候沒有編譯這個模塊,爲了測試,自己下了個nginx源碼進行編譯,在編譯過程中也遇到了一些問題:
2、編譯:
在編譯前,在./configure的時候添加了--with-http_addition_module參數:
先是出現了adding module 中的ngx_cache_purge-2.3 no found的報錯:於是下載了ngx_cache_purge-2.3的包,在解壓好後,在add_module中指定ngx_cache_purge-2.3的路徑解決。
解決了ngx_cache_purge-2.3的問題後,又出現了the HTTP rewrite module requests the PCRE library的報錯:
很明顯是缺少了pcre庫,用sudo yum install pcre-devel安裝pcre庫後重新嘗試:
這次執行configure腳本沒有再報錯後
執行make && make install編譯和安裝nginx:
【make:編譯,當執行make的時候,make會在當前目錄下搜索Makefile(makefile)這個文本文件,而makefile裏面記錄了源碼如何編譯的詳細信息
瞭解幾個能關係到能否編譯成功的文件:/etc/ld.so.conf、ldconfig
/etc/ld.so.conf,這個文件中記錄的編譯時使用的動態鏈接庫的路徑,默認情況下編譯器只會使用/lib和/usr/lib這兩個目錄下的庫文件,如果你安裝了其他的庫,那麼安裝完成後就需要在/etc/ld.so.conf把這個庫文件中的絕對路徑寫進去
最後可以通過一條命令來檢查是否成功編譯:echo $?,爲0表示編譯通過】
3、nginx重新編譯後,在nginx上添加了如下配置:
4、重啓nginx後訪問:
二、ngx_http_auth_basic_module
1、ngx_http_auth_basic_module模塊實現訪問限制,只有輸入正確的用戶密碼才允許訪問web內容:
語法: auth_basic string | off;
默認值: auth_basic off;
配置段: http, server, location, limit_except
2、嘗試在在nginx上配置:
這裏要注意auth_basic_user_file的路徑,否則會報403,在自己測試的時候就因爲這個找了好久原因。
3、配置密碼:根據官網的提示,密碼需通過crypt函數進行加密,如下:
4、測試效果: