Module avancé nginx
module secure_link_module
Fonction : Utilisé pour vérifier l'authenticité du lien (md5) et la durée de validité (expire)
(Partage vidéo d'apprentissage : tutoriel vidéo Java)
Configuration 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; } } }
Les étapes pour générer le lien d'accès 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}"
execute Le lien généré par le script
[root@localhost nginx_study]# sh secure_link_module.sh http://www.jaryn.cn:7001/test.jepg?md5=MqtYCSugfDKmLiKuskPmuA&expires=1536422400
résultats
est accessible normalement, mais si la valeur de md5 ou le délai d'expiration est modifié, 403 apparaîtra.
Module http_geoip_module
Fonction : Faites correspondre le fichier binaire MaxMind GeoIP en fonction de l'adresse IP et lisez les informations géographiques de l'emplacement IP.
Différence entre les règles d'accès http nationales et étrangères
Différencier les règles d'accès http des villes et régions nationales
Module d'installation sans module
yum install nginx-module-geoip
S'il indique qu'il n'y a pas de package logiciel disponible
nginx-module-geoip
Vous devez remplacer la source yum de nginx
vim /etc/yum.repos.d/nginx.repo
Copiez le contenu suivant dedans
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
Réexécutez l'installation
Vous pouvez voir le module sous /etc/nginx/modules
nginx charge manuellement le module
cd /usr/share/nginx/modules/ vim self.conf
Le contenu du fichier est le suivant
load_module "/usr/lib64/nginx/modules/ngx_http_geoip_module.so";
Téléchargez le fichier de données geoip dat
L'adresse est la suivante
国家文件:http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz 城市文件:http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
Décompressez le fichier correspondant
gunzip GeoIP.dat.gz gunzip GeoLiteCity.dat.gz
Configuration 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"; } }
Erreur
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
Solution
yum remove nginx-mod* yum install nginx-module-*
Conclusion
Par la configuration. L'accès à partir d'adresses IP non chinoises renverra 403 et seules les adresses IP chinoises seront accessibles.
Module https (nginx ssl)
Si Linux n'a pas le module openssl, installez openssl vous-même.
Générer la clé secrète et le certificat CA, besoin du module http-ssl-module
Générer la clé secrète de la clé
#利用openssl生成 openssl genrsa -idea -out jaryn.key 1024
Générer le fichier de demande de signature de certificat (fichier csr), générer la signature du certificat Fichier (fichier 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
configuration 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; } }
Accès
`直接访问你的地址,https默认443:https://192.168.1.10/admin.html`
optimisation du service https
Activer la connexion longue keepalive
Définir le cache de session SSL
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; } }
Recommandations associées : Tutoriel Nginx
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!