寶塔nginx自編譯雲鎖web防護教程
阿新 • • 發佈:2018-12-11
- 編譯前先將已經安裝的Nginx檔案進行備份 通過ps命令檢視nginx檔案的路徑。以下所有步驟都以自身nginx路徑為準
# ps -elf | grep nginx
# cd /www/server/nginx/sbin/
# cp nginx nginx.bak
- 下載雲鎖防護模組壓縮包
# cd ~
# wget https://codeload.github.com/yunsuo-open/nginx-plugin/zip/master -O nginx-plugin-master.zip
- 解壓雲鎖防護模組壓縮包nginx-plugin-master.zip
# unzip nginx-plugin-master.zip
- 獲取當前雲鎖模組所在目錄的全路徑
# cd nginx-plugin-master/
# pwd
- 檢視當前nginx載入的模組,在編譯載入雲鎖防護模組的時候仍需載入這些模組
# cd ~
# /www/server/nginx/sbin/nginx -V
備註:將./configure arguents:之後的內容複製到記事本備用
- 進入nginx原始碼目錄,對nginx進行編譯
寶塔面板安裝的nginx原始碼位於/www/server/nginx/src 編譯時新增雲鎖防護模組引數,引數路徑為第4步獲取的雲鎖防護模組原始碼全路徑“/root/nginx-plugin-master” 備註:編譯內容為(./configure ’上一步記事本中的備用內容 --add-module=/root/nginx-plugin-master)
# cd /www/server/nginx/src # ./configure --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --add-module=/www/server/nginx/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --add-module=/root/nginx-plugin-master
- Nginx1.8.0 以上和 Tengine 2.1.2 則需要修改objs/Makefile檔案來支援post過濾
在Makefile檔案中的CFLAGS=…-Werror -g後追加巨集定義 -DHIGHERTHAN8
# vi objs/Makefile
備註:按Insert後找到-Werror -g 新增 -DHIGHERTHAN8 ,新增之後按ESC:wq
# make
- make完成後將系統中原有的nginx用重新編譯生成的nginx檔案替換,替換後重啟nginx使新編譯nginx生效
到此通過PC端連線到伺服器端,在PC端的介面上重新整理後可以看到已識別nginx外掛(由灰色變為綠色)。
# rm -rf /www/server/nginx/sbin/nginx
# cp objs/nginx /www/server/nginx/sbin/
# service nginx restart
- 到此通過PC端連線到伺服器端,在PC端的介面上重新整理後可以看到已識別nginx外掛(由灰色變為綠色)。
- 測試防護是否生效
域名+/?order%20by
解除安裝
使用nginx.bak檔案替換掉自編譯的nginx檔案,替換後重啟Nginx。以下nginx路徑與上述安裝路徑一致,實際以自身nginx路徑為準。
# cd /www/server/nginx/sbin/
# rm -rf nginx
# mv nginx.bak nginx
# service nginx restart