Installation de Nginx
1. Téléchargement Weget: http://nginx.org/download/nginx-1.6.2.tar.gz
2. Installez: tar -zxvf nginx-1.6.2.tar.gz
3. Téléchargez les fichiers de bibliothèque dépendants requis
miam installer pcre 、 miam installer pcre-devel
miam installer zlib 、 miam installer zlib-devel
4. Configurez configure: cd nginx-1.6.2 && ./configure --prefix = / usr / local / nginx pour voir si une erreur est signalée
5. Compilez et installez make && make install
6. Démarrez nginx
répertoire cd / usr / local / nginx /:
conf: fichier de configuration
html: fichier de page Web
journaux: fichiers journaux
sbin: programme binaire principal
Commande de démarrage: / usr / local / nginx / sbin / nginx
重启 : / usr / local / nginx / sbin / nginx -s recharger
停止 : / usr / local / nginx / sbin / nginx -s stop
7. Succès: vérifiez si netstat -ano | grep 80 est démarré. Échec: le port 80 est peut-être occupé
Adresse d'accès au navigateur: http://192.168.43.126:80--> vous pouvez voir l'interface de bienvenue de nginx
cd nginx-1.6.2 && ./configure --prefix=/usr/local/nginx
Description du fichier de configuration Nginx
Configuration de l'hôte virtuel Nginx
# Configuration de l'hôte virtuel
server{
listen:1234; #设置nginx的端口号
server_name bhz.com; #设置服务器别名
location /{
root bhz.com; #这是nginx的根目录
index index.html; #设置根目录中的界面
}
}
Stratégie d'équilibrage de charge
1. Utilisez une stratégie d'équilibrage de matériel complexe à réaliser, comme l'utilisation de F5, Array et d'autres équilibreurs de charge
2. Utilisez un logiciel pour l'équilibrage de charge.
Tels que l'utilisation d'Alibaba Cloud Server Load Balancing SLB
Si vous utilisez Keepalived + Nginx
D'autres technologies d'équilibrage de charge logicielle telles que LVS (Linux Virtual Server), haproxy, etc.
Avantages Nginx
Nginx est un serveur web et proxy inverse très performant. ont pu
keepalive_timeout 65;
#gzip on;
server{
listen 80;
server_name localhost;
#charset utf-8;
#access_log logs/host.access.log main;
location /{
root html;
index index.html index.htm
}
error_page 500 502 503 504 /50x.html;
location =/50x.html{
root html;
}
}
Serveur d'équilibrage de charge; dans le cas d'une concurrence élevée, Nginx est un bon produit proxy pour le serveur Apache: Nginx peut prendre en charge des réponses jusqu'à 50000 connexions simultanées.
Utilisation de Nginx
Après le démarrage de nginx, utilisez la commande
ps -ef | grep nginx
Ensuite, vous pouvez voir que le processus maître a démarré, que le processus de travail a commencé, et bien sûr, leurs numéros de port peuvent également être vus;
Après la commande d'arrêt: / usr / local / nginx / sbin / nginx -s stop
Aucun processus démarré
Redémarrez le serveur nginx: ps -ef | grep nginx -s reload
C: \ Windows \ System32 \ drivers \ etc, modifiez le fichier hosts dans ce répertoire
Ajoutée
192.168.1.114 bhz.com
192.168.1.171 www.bhz.com
192.168.1.174 www.bhz.com
Modifier le fichier d'hôtes Linux
vim / etc / hosts
192.168.1.114 bhz.com
Après avoir redémarré nginx, vous pouvez accéder à bhz.com:1234.com sur la machine physique Windows.
Fichier journal Nginx détaillé
Le fichier journal accédé par nginx est placé sous logs / host.access.log et utilise le format principal (bien sûr, vous pouvez personnaliser le format)
Le format principal est défini comme suit:
# Format de sortie du fichier journal Cet emplacement est équivalent aux paramètres globaux
#log_format main '$ remote_addr- $ remote_user [$ time_local] "$ request"'
# '$ staus $ body_bytes_sent "$ http_referer"'
# '"$ http_user_agent" "$ http_x_forward_for"';
Commande #View log content: tail -n 100 -f nginx / logs / access.log
L'analyse du journal de Nginx est très importante et nécessite généralement une opération et une maintenance pour couper le journal de nginx. Par exemple, implémentez une tâche de synchronisation pour traiter les journaux nginx.
Étape 1: analyser comment implémenter la segmentation des journaux et écrire des scripts shell
Étape 2: Planification du script avec une tâche de chronométrage: crontab -e
* / 1 **** sh /usr/local/nginx/sbin/log.sh
Mettez le script shell sous / skin;
Chemin racine: / usr / local / nginx
Nom du journal: bhz.com.access.log
Chemin actuel: / usr / local / nginx / logs
Chemin à sauvegarder: sous le dossier / usr / local / nginx / datalogs
Chemin du fichier des journaux actuels:
Baktime: sauvegarde du journal d'hier
Bakfile:
crontab -e
Wq après l'enregistrement
Exécuter toutes les minutes
Configuration détaillée du fichier journal Nginx
syntaxe d'emplacement: indique l'emplacement de l'URI
Il existe trois grammaires de base:
location = modèle {} correspondance exacte
modèle d'emplacement {} Configuration générale
location ~ motif {} correspondance régulière
Syntaxe Nginx
if (condition: = ~ ~ *), return, break, rewrite ~ * signifie ignorer la casse
-f est une condition, -d est un répertoire, -e existe
Nginx peut compresser des données et mettre en cache certains fichiers tels que des images, html, css, js, etc., afin de réaliser des fonctions d'optimisation telles que la séparation dynamique et statique.
if ($ remote_addr = 192.168.1.114) {return 401}; est d'interdire l'ip de la machine physique
if ($ http_user_agent ~ * firefox) {réécrire ^. * $ / firefox.html; Pause;}
Vérifiez le type de navigateur s'il n'y a pas de pause, il signalera une erreur 404;
Vous pouvez afficher le message d'erreur dans err.log
chat bhz.com.access.log
Proxy inverse Nginx
Proxy proxy inverse Nginx et équilibrage de charge en amont
Configurer le proxy inverse: adresse URL proxy_pass
Configurer l'équilibrage de charge en amont: en amont
Configuration officielle: http://nginx.org/en/docs
Remarque: Une fois que le proxy inverse a obtenu l'adresse IP du client en tant que serveur nginx, vous devez transférer nginx et définir la véritable adresse IP;
#Définissez la véritable adresse IP du client
proxy_set_header X-real-ip $ remote_addr;
Séparation dynamique et statique:
Demande dynamique d'accès à tomcat
Requête statique pour accéder à nginx
Explication détaillée du proxy inverse Nginx
Nginx intercepte d'abord la demande, puis envoie la demande à différents tomcat
emplacement ~ \ .jsp $ {
proxy_pass http://192.168.1.171:8080
}
Décompressez tomcat:
/usr/local/apache-tomcat-7.0.29/bin/startup/sh
C'est l'ip obtenu est l'ip de nginx;
location /{
#设置客户端真实ip地址
#proxy_set_header X-real-ip $remote_addr;
#负载均衡反向代理
#proxy_pass http://myapp
#返回根路径地址(相对路径:相对于/usr/local/nginx/)
root html;
默认访问文件
index index.html index.htm
}
#配置反向代理tomcat服务器:拦截.jsp结尾的请求转向到tomcat
#location ~\.jsp${
#proxy_pass http://192.168.1.171:8080
}
Après le proxy inverse, l'IP obtenue est l'IP de la machine physique
Configuration détaillée de l'équilibrage de charge Nginx
#设定负载均衡的服务器列表
#upstream myproject{
#weight参数表示权值,权值越高被分配到的概率越大
#max_fails 当有#max_files个请求失败,就表示后端的服务器不可用,默认为1,将其设置为0可以关闭检查
#fail_timeout 在以后的#fail_timeout时间内nginx不会再把请求发送已检查标记为不可用的服务器
}
#webapp
#upstream myapp{
server 192.168.1.114:8000 weight=1 max_files=2 fail_timeout=30s
server 192.168.1.115:8000 weight=1 max_files=2 fail_timeout=30s
}
myapp équilibre la charge de deux nœuds, 114 et 115
#scp /usr/local/apache-tomcat-7.0.29/webapps/Root/test.jsp 192.168.1.115:/usr/local/apache-tomcat-7.0.29/webapps/Root/
##
##
/usr/local/apache-tomcat-7.0.29/bin/startup.sh
Avant l'équilibrage de charge:
114: 8080 / test.jsp afficher test1.jsp
115: 8080 / test.jsp affichage test2.jsp
L'équilibrage de charge
114: 70 / test.jsp affiche test1.jsp pour la première fois et affiche test2.jsp pour la deuxième fois