nginx編譯和一些moudle的測試

一、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把這個庫文件中的絕對路徑寫進去

ldconfig是一個程序,它的作用就是將/etc/ld.so.conf中的路徑緩存到/etc/ld.so.cache中,因此在安裝完一些庫文件或者修改ld.so.conf增加新的路徑後需要運行一下/sbin/ldconfig使所有的庫文件都緩存都ld.so.cache中,如果沒有運行/sbin/ldconfig,即使庫文件就在/etc/ld.so.conf中,也是不會被使用的,結果在編譯的過程中同樣報錯缺少XXX庫!
最後可以通過一條命令來檢查是否成功編譯:echo  $?,爲0表示編譯通過】

3、nginx重新編譯後,在nginx上添加了如下配置:


4、重啓nginx後訪問:


二、ngx_http_auth_basic_module

1、ngx_http_auth_basic_module模塊實現訪問限制,只有輸入正確的用戶密碼才允許訪問web內容:

nginx basic auth指令

語法:     auth_basic string | off;
默認值:     auth_basic off;
配置段:     http, server, location, limit_except

2、嘗試在在nginx上配置:


這裏要注意auth_basic_user_file的路徑,否則會報403在自己測試的時候就因爲這個找了好久原因。


3、配置密碼:根據官網的提示,密碼需通過crypt函數進行加密,如下:


4、測試效果:





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章