nginx高級模塊
secure_link_module模塊
作用:用于校驗鏈接的真實性(md5)和有效時間(expires)
(學習視頻分享:java視頻教程)
nginx配置
server?{ ????listen?7001; ????server_name?study; ????root?/home/jaryn/nginx_study/pic; ????????location?/?{ ????????????????secure_link?$arg_md5,$arg_expires; ????????????????#md5生成方法和下面腳本一致,jaryn可以看成是服務端的“鹽值” ????????????????secure_link_md5?"$secure_link_expires$uri?jaryn"; ????????????????if?($secure_link?=?"")?{ ????????????????????????return?403; ????????????????} ????????????????if?($secure_link?=?"0")?{ ????????????????????????return?410; ????????????????} ????????} }
生成訪問鏈接的腳步 secure_link_module.sh
#!/bin/sh # servername="www.jaryn.cn:7001" download_file="/test.jepg" time_num=$(date?-d?"2018-9-9?00:00:00"?+%s) secret_num="jaryn" #利用openssl生成鏈接中的md5參數 res=$(echo?-n?"${time_num}${download_file}?${secret_num}"|openssl?md5?-binary?|?openssl?base64?|?tr?+/?-_?|?tr?-d?=?) echo?"http://${servername}${download_file}?md5=${res}&expires=${time_num}"
執行腳本
[root@localhost?nginx_study]#?sh?secure_link_module.sh? http://www.jaryn.cn:7001/test.jepg?md5=MqtYCSugfDKmLiKuskPmuA&expires=1536422400
結果
生成的鏈接可以正常訪問,但是如果改變了md5的值或者過期時間,則會出現403。
http_geoip_module模塊
作用:基于ip地址匹配MaxMind GeoIP 二進制文件,讀取ip所在地地域信息。
-
區別國內外做http訪問規則
-
區別國內城市地域做http訪問規則
沒有模塊的安裝模塊
yum?install?nginx-module-geoip
如果提示沒有可用軟件包
nginx-module-geoip
需要更換下nginx的yum源
vim?/etc/yum.repos.d/nginx.repo
將以下內容copy進去
?[nginx] name=nginx?repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
重新執行安裝
在/etc/nginx/modules下可以看到該模塊
nginx手動加載模塊
cd?/usr/share/nginx/modules/ vim?self.conf
文件內容如下
load_module?"/usr/lib64/nginx/modules/ngx_http_geoip_module.so";
下載geoip dat數據文件
地址如下
國家文件:http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz 城市文件:http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
解壓相應文件
gunzip?GeoIP.dat.gz gunzip?GeoLiteCity.dat.gz
nginx配置
geoip_country?/home/jaryn/nginx_study/data/GeoIP.dat; geoip_city?/home/jaryn/nginx_study/data/GeoLiteCity.dat; server?{ ????listen?7001; ????server_name?study; ????????location?/?{ ????????????????if?($geoip_country_code?!=?CN)?{ ????????????????????????return?403; ????????????????} ????????????????root?/home/project/nginx-code; ????????????????index?admin.html; ????????} ????????#通過訪問/myip可以獲取相應的ip和geo信息 ????????location?/myip?{ ????????????????default_type?text/plain; ????????????????return?200?"$remote_addr?$geoip_country_name?$geoip_country_code?$geoip_city"; ????????} }
錯誤
nginx:?[emerg]?module?"/usr/lib64/nginx/modules/ngx_http_geoip_module.so"?version?1012002?instead?of?1014000?in?/usr/share/nginx/modules/mod-http-geoip.conf:1
解決方法
?yum?remove?nginx-mod* ?yum?install?nginx-module-*
結論
通過配置。非中國ip的ip訪問就會返回403,只有中國的ip才能訪問。
https模塊(nginx ssl)
linux沒有openssl模塊的自己安裝openssl。
生成秘鑰和CA證書,需要http-ssl-module模塊
生成key秘鑰
#利用openssl生成 openssl?genrsa?-idea?-out?jaryn.key?1024
生成證書簽名請求文件(csr文件),生成證書簽名文件(CA文件)
#下面的命令需要根據提示輸入相應的信息,輸入即可 openssl?req?-new?-key?jaryn.key?-out?jaryn.csr #打包成crt openssl?x509?-req?-days?3650?-in?jaryn.csr?-signkey?jaryn.key?-out?jaryn.crt #也可以直接用key生成crt文件,keyout會重新生成.key文件,重啟nginx的時候就不需要輸入密碼了 openssl?req?-days?36500?-x509?-sha256?-nodes?-newkey?rsa:2048?-keyout?jaryn.key??-out?jaryn_a.crt
nginx配置
????server?{ ????????listen?443; ????????server_name?studyssl; ????????ssl?on; ????????ssl_certificate?/home/jaryn/nginx_study/ssl_key/jaryn.crt; ????????ssl_certificate_key?/home/jaryn/nginx_study/ssl_key/jaryn.key; ????????index?admin.html; ????????location?/?{ ????????????????root??/home/project/nginx-code; ????????} ????}
訪問
`直接訪問你的地址,https默認443:https://192.168.1.10/admin.html`
https服務優化
激活keepalive長連接
設置ssl Session緩存
????server?{ ????????listen?443; ????????server_name?studyssl; ????????ssl?on; ????????ssl_session_cache?shared:SSL:10m; ????????ssl_session_timeout?10m; ????????ssl_certificate?/home/jaryn/nginx_study/ssl_key/jaryn.crt; ????????ssl_certificate_key?/home/jaryn/nginx_study/ssl_key/jaryn.key; ????????index?admin.html; ????????location?/?{ ????????????????root??/home/project/nginx-code; ????????} ????}
相關推薦:java視頻教程
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦