Comment configurer un proxy inverse hautement disponible (tel que Nginx) sous Linux

PHPz
Libérer: 2023-07-05 08:57:18
original
1514 Les gens l'ont consulté

Comment configurer un proxy inverse hautement disponible (tel que Nginx) sous Linux

Résumé :
Le proxy inverse est une technologie couramment utilisée dans l'architecture réseau pour améliorer l'équilibrage de charge et la tolérance aux pannes des services. Cet article explique comment configurer un proxy inverse hautement disponible sur un système Linux, en prenant Nginx comme exemple.

  1. Installer Nginx
    Tout d'abord, nous devons installer Nginx sur le système Linux. L'installation peut se faire avec la commande suivante :

    sudo apt-get update
    sudo apt-get install nginx
    Copier après la connexion
  2. Configure Reverse Proxy
    Configurer un proxy inverse dans Nginx est très simple. Editez le fichier de configuration Nginx /etc/nginx/nginx.conf et ajoutez le contenu suivant dans le bloc http : /etc/nginx/nginx.conf,在http块中添加以下内容:

    http {
     upstream backend {
         server backend1.example.com;
         server backend2.example.com;
         server backend3.example.com;
     }
    
     server {
         listen       80;
         server_name  example.com;
    
         location / {
             proxy_pass  http://backend;
         }
     }
    }
    Copier après la connexion

    上述配置中,我们定义了一个名为backend的upstream块,其中列出了需要代理的后端服务器。server块指定了监听的端口和域名,并将请求转发给backend

  3. 配置负载均衡策略
    在上述配置中,默认使用的是轮询(Round-Robin)的负载均衡策略。即每个请求依次按顺序分配到后端服务器。如果需要更复杂的负载均衡策略,可以根据需要进行配置。
    以下是一些常见的负载均衡策略示例:

a. IP Hash

upstream backend {
    ip_hash;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}
Copier après la connexion

IP Hash策略会根据客户端的IP地址将其请求分配到特定的后端服务器,这样可以保持同一个客户端的请求都发送到同一台服务器上。

b. Least Connections

upstream backend {
    least_conn;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}
Copier après la connexion

Least Connections策略会将请求发送到当前连接数最少的服务器上,以实现负载均衡。

  1. 重载Nginx配置
    完成配置后,需要重载Nginx配置文件以使更改生效。可以通过以下命令完成操作:

    sudo nginx -s reload
    Copier après la connexion
  2. 高可用性配置
    为了实现高可用性,可以将多个Nginx节点组成一个集群,并使用Keepalived等工具来实现故障转移。以下是一个简单的示例,假设集群中有两个节点:

    sudo apt-get install keepalived
    Copier après la connexion

    在每个节点上,都需要编辑Keepalived的配置文件,通常位于/etc/keepalived/keepalived.conf。以下是一个示例配置:

    global_defs {
     router_id LB_NODE1
    }
    
    vrrp_instance VI_1 {
     state MASTER
     interface eth0
     virtual_router_id 51
     priority 100
     
     virtual_ipaddress {
         192.168.1.100
     }
    }
    Copier après la connexion

    其中,state指定了节点的状态(MASTER或BACKUP),virtual_router_id指定了虚拟路由器ID,virtual_ipaddress

    sudo service keepalived restart
    Copier après la connexion
    Dans la configuration ci-dessus, nous avons défini un fichier nommé backend Le bloc amont répertorie les serveurs backend qui nécessitent des proxys. Le bloc server spécifie le port d'écoute et le nom de domaine et transmet la requête au backend.

Configurer la stratégie d'équilibrage de charge

Dans la configuration ci-dessus, la stratégie d'équilibrage de charge round-robin est utilisée par défaut. Autrement dit, chaque requête est distribuée au serveur backend dans l'ordre. Si une stratégie d'équilibrage de charge plus complexe est requise, elle peut être configurée selon les besoins.

Voici quelques exemples courants de stratégies d'équilibrage de charge :

🎜a. IP Hash🎜rrreee🎜La stratégie de hachage IP distribue les requêtes du client à des serveurs backend spécifiques en fonction de leur adresse IP, conservant ainsi les requêtes du même client envoyées au même. serveur. 🎜🎜b. Moins de connexions🎜rrreee🎜La politique du moins de connexions enverra des requêtes au serveur avec le plus petit nombre de connexions actuelles pour réaliser l'équilibrage de charge. 🎜
    🎜🎜Recharger la configuration Nginx🎜Après avoir terminé la configuration, vous devez recharger le fichier de configuration Nginx pour que les modifications prennent effet. Cela peut être fait avec la commande suivante : 🎜rrreee🎜🎜🎜Configuration haute disponibilité🎜Pour obtenir une haute disponibilité, plusieurs nœuds Nginx peuvent être formés en cluster et utiliser des outils tels que Keepalived pour implémenter le basculement. Voici un exemple simple, en supposant qu'il y a deux nœuds dans le cluster : 🎜rrreee🎜Sur chaque nœud, vous devez éditer le fichier de configuration Keepalived, généralement situé dans /etc/keepalived/keepalived.conf. Voici un exemple de configuration : 🎜rrreee🎜où, state spécifie l'état du nœud (MASTER ou BACKUP), virtual_router_id spécifie l'ID du routeur virtuel, virtual_ipaddress code> spécifie l'adresse IP virtuelle. 🎜🎜🎜🎜Enfin, redémarrez le service Keepalived pour que la configuration prenne effet : 🎜rrreee🎜Résumé : 🎜Cet article présente les étapes pour configurer un proxy inverse hautement disponible sur un système Linux, ainsi que des exemples de code associés. Grâce à ces configurations, la capacité d'équilibrage de charge et la tolérance aux pannes du service peuvent être améliorées, obtenant ainsi une disponibilité et une stabilité plus élevées. Dans le même temps, il présente également comment utiliser des outils tels que Keepalived pour implémenter le basculement de proxy inverse. J'espère que ce contenu sera utile aux amis qui souhaitent créer un système de proxy inverse hautement disponible. 🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!