Maison développement back-end tutoriel php Nginx系列(十三 nginx负载均衡)

Nginx系列(十三 nginx负载均衡)

Aug 08, 2016 am 09:24 AM
fastcgi server upstream

一.负载均衡配置

<code><span># 负载均衡</span><span>upstream</span> webserver {
    <span>server</span><span>192.168.27.134:8080</span>;
    <span>server</span><span>192.168.27.135:80</span>;
    <span>server</span><span>192.168.27.136:80</span>;
}

<span># 反向代理</span><span>server</span> { 
    <span>listen</span><span>80</span>;
    <span>server_name</span> www.test01.com;

    <span>location</span> / {
        <span>proxy_pass</span><span>http://webserver</span>;
        <span>proxy_redirect</span><span>off</span>;
        <span>proxy_set_header</span> Host <span>$host</span>;
        <span>proxy_set_header</span> X-Real-IP <span>$remote_addr</span>;
        <span>proxy_set_header</span> X-Forwarded-For <span>$proxy_add_x_forwarded_for</span>;
    }
}

<span># web服务器</span><span>server</span> {
    <span>listen</span><span>8080</span>;
    <span>server_name</span>  www.test01.com;
    <span>access_log</span>  logs/host.access.log  main;

    <span>location</span> / {
        <span>root</span>   /web/www/thinkphp;
        <span>index</span>  index.php index.html index.htm;

        <span>if</span> (!-e <span>$request_filename</span>) {
            <span>rewrite</span><span> ^/(.*)$</span> /index.php/<span>$1</span><span>last</span>;
        }
    }

    <span>location</span><span>~ [^/]\.php(/|$)</span> {
        <span>root</span> /web/www/thinkphp;
        <span>fastcgi_index</span> index.php;
        <span>fastcgi_pass</span><span>127.0.0.1:9000</span>;
        <span>include</span>      fastcgi_params;

        <span>fastcgi_split_path_info</span><span> ^(.+?\.php)(/.*)$</span>;
        <span>fastcgi_param</span> SCRIPT_FILENAME <span>$document_root</span><span>$fastcgi_script_name</span>;
        <span>fastcgi_param</span> SCRIPT_NAME <span>$fastcgi_script_name</span>;
        <span>fastcgi_param</span> PATH_INFO <span>$fastcgi_path_info</span>;
        <span>fastcgi_param</span> PATH_TRANSLATED <span>$document_root</span><span>$fastcgi_path_info</span>;
    }
}</code>
Copier après la connexion

二. 负载均衡算法

1.轮询 (默认)

<code>upstream webserver {
    <span>server</span><span>192.168</span><span>.27</span><span>.134</span>:<span>8080</span>;
    <span>server</span><span>192.168</span><span>.27</span><span>.135</span>:<span>80</span>;
    <span>server</span><span>192.168</span><span>.27</span><span>.136</span>:<span>80</span>;
}</code>
Copier après la connexion

2.weight

<code>upstream webserver {
    <span>server</span><span>192.168</span><span>.27</span><span>.134</span>:<span>8080</span> weight=<span>1</span>;
    <span>server</span><span>192.168</span><span>.27</span><span>.135</span>:<span>80</span> weight=<span>2</span>;
    <span>server</span><span>192.168</span><span>.27</span><span>.136</span>:<span>80</span> weight=<span>2</span>;
}</code>
Copier après la connexion

3.ip_hash ( 解决session共享问题)

<code>upstream webserver {
    ip_hash;
    <span>server</span><span>192.168</span><span>.27</span><span>.134</span>:<span>8080</span>;
    <span>server</span><span>192.168</span><span>.27</span><span>.135</span>:<span>80</span>;
    <span>server</span><span>192.168</span><span>.27</span><span>.136</span>:<span>80</span>;
}</code>
Copier après la connexion

4.fair 按后端服务器的响应时间来分配请求,响应时间短的优先分配。(第三方)

<code>upstream webserver {
    <span>server</span><span>192.168</span><span>.27</span><span>.134</span>:<span>8080</span>;
    <span>server</span><span>192.168</span><span>.27</span><span>.135</span>:<span>80</span>;
    <span>server</span><span>192.168</span><span>.27</span><span>.136</span>:<span>80</span>;
    fair;
}</code>
Copier après la connexion

参考:http://wiki.nginx.org/HttpUpstreamFairModule

5.url_hash 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。(第三方)

<code><span>upstream</span> webserver {
    <span>server</span><span>192.168.27.134:8080</span>;
    <span>server</span><span>192.168.27.135:80</span>;
    <span>server</span><span>192.168.27.136:80</span>;
    <span>hash</span><span>$request_uri</span>;
}</code>
Copier après la connexion

参考:http://wiki.nginx.org/HttpUpstreamRequestHashModule

6.一致性hash (第三方)
参考:http://wiki.nginx.org/HttpUpstreamConsistentHash

三.相关配置

Weight:指定轮询权值,Weight值越大,分配到的访问机率截越高,主要用于后端每个服务器性能不均的情况下。

down:表示当前的server暂时不参与负载均衡,通常和ip_hash一起使用。

backup:预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻。

max_fails:在一定时间内(这个时间在fail_timeout参数中设置)检查这个服务器是否可用时产生的最多失败请求数,默认为1。将其设置为0可以关闭检查,这些错误在proxy_next_upstream和fastcgi_next_upstream(404错误不会使max_fails增加)中定义。

fail_timeout:在这个时间内产生了max_fails所设置大小的失败尝试连接请求后这个服务器可能不可用,同样它指定了服务器不可用的时间(在下一次尝试连接请求发起之前),默认为10秒,fail_timeout与前端响应时间没有直接关系,不过可以使用proxy_connect_timeout和proxy_read_timeout来控制。

四.参考资料

http://baidutech.blog.51cto.com/4114344/1033718

http://lobert.iteye.com/blog/1929623

http://blog.csdn.net/poechant/article/details/7256184

以上就介绍了Nginx系列(十三 nginx负载均衡),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment installer, désinstaller et réinitialiser la sauvegarde du serveur Windows Comment installer, désinstaller et réinitialiser la sauvegarde du serveur Windows Mar 06, 2024 am 10:37 AM

WindowsServerBackup est une fonction fournie avec le système d'exploitation WindowsServer, conçue pour aider les utilisateurs à protéger les données importantes et les configurations système, et à fournir des solutions complètes de sauvegarde et de récupération pour les petites, moyennes et grandes entreprises. Seuls les utilisateurs exécutant Server2022 et versions ultérieures peuvent utiliser cette fonctionnalité. Dans cet article, nous expliquerons comment installer, désinstaller ou réinitialiser WindowsServerBackup. Comment réinitialiser la sauvegarde de Windows Server Si vous rencontrez des problèmes avec la sauvegarde de votre serveur, si la sauvegarde prend trop de temps ou si vous ne parvenez pas à accéder aux fichiers stockés, vous pouvez envisager de réinitialiser vos paramètres de sauvegarde de Windows Server. Pour réinitialiser Windows

Comment activer keepalive dans nginx en amont Comment activer keepalive dans nginx en amont May 14, 2023 pm 07:04 PM

nginxupstream active keepaliveupstreamtomcat{serverops-coffee.cn:8080;keepalive1024;}server{location/{proxy_http_version1.1;proxy_set_headerConnection"";proxy_passhttp://tomcat;}}nginx sera utilisé comme proxy inverse dans la plupart des cas dans le project , par exemple, nginx est suivi de tomcat, nginx est suivi de php, etc. À ce stade, nous activons nginx et le backend

La version préliminaire de Windows Server 2025 accueille la mise à jour, Microsoft améliore l'expérience de test Insiders La version préliminaire de Windows Server 2025 accueille la mise à jour, Microsoft améliore l'expérience de test Insiders Feb 19, 2024 pm 02:36 PM

A l'occasion de la sortie de la version build 26040 de Windows Server, Microsoft a annoncé le nom officiel du produit : Windows Server 2025. La version build26040 de Windows11WindowsInsiderCanaryChannel est également lancée. Certains amis se souviennent peut-être encore qu'il y a de nombreuses années, quelqu'un a réussi à convertir Windows NT du mode poste de travail au mode serveur, montrant ainsi les points communs entre les différentes versions des systèmes d'exploitation Microsoft. Bien qu'il existe des différences évidentes entre la version actuelle du système d'exploitation serveur de Microsoft et Windows 11, ceux qui prêtent attention aux détails peuvent être curieux : pourquoi Windows Server a mis à jour la marque,

Comment configurer et optimiser FastCGI dans Nginx Comment configurer et optimiser FastCGI dans Nginx May 21, 2023 am 08:16 AM

fastcgi : fastcgi est développé et amélioré à partir de cgi. Le principal inconvénient de la méthode d'interface cgi traditionnelle est la faible performance, car chaque fois que le serveur http rencontre un programme dynamique, l'analyseur de script doit être redémarré pour effectuer l'analyse, puis les résultats sont renvoyés au serveur http. Ceci est presque indisponible lorsqu’il s’agit d’un accès simultané élevé. De plus, la méthode d'interface cgi traditionnelle est peu sécurisée et est rarement utilisée aujourd'hui. Le mode d'interface fastcgi adopte la structure c/s, qui peut séparer le serveur http et le serveur d'analyse de script, et démarrer un ou plusieurs démons d'analyse de script sur le serveur d'analyse de script. Chaque fois que le serveur http rencontre un programme dynamique, il peut être livré directement à fastcg

Comment modifier le nom de la version Nginx pour masquer n'importe quel serveur Web Comment modifier le nom de la version Nginx pour masquer n'importe quel serveur Web May 14, 2023 pm 09:19 PM

Comment modifier le nom par défaut de nginx, vous pouvez le déguiser un peu, ou vous pouvez l'installer Astuce : Généralement, les modifications sont apportées avant la compilation de nginx. Après modification, le code doit être recompilé comme suit : scr/core/nginx.conf#definenginx_version"1.4.7"#definenginx_ver"nginx/"n.

Microsoft publie la version préliminaire 25335 de Windows Server vNext Microsoft publie la version préliminaire 25335 de Windows Server vNext Jan 10, 2024 am 08:49 AM

Alors que Microsoft a publié la mise à jour préliminaire de Win11 pour le bureau, il a également publié aujourd'hui la version préliminaire 25335 de Windows Server Long Term Service Channel (LTSC). Comme d'habitude, Microsoft n'a pas publié de journal complet des modifications, ni même fourni d'article de blog correspondant. Microsoft a ajusté le journal de mise à jour de la version préliminaire de Windows Server pour qu'il soit identique à la version Canary Channel. Si aucun nouveau contenu n'est introduit, le billet de blog officiel ne sera pas publié. Remarque d'IT Home : La marque du serveur n'a pas été mise à jour et est toujours Windows Server 2022 dans la version d'aperçu. De plus, Microsoft appelle ces versions Windows Server vNext au lieu de la version Windows Server 2019 déjà disponible sur le marché.

Étapes pour installer GNOME 3 sur Ubuntu Server 11.04 Étapes pour installer GNOME 3 sur Ubuntu Server 11.04 Dec 31, 2023 pm 03:59 PM

Si vous pensez qu'il n'est pas nécessaire d'installer une interface graphique lors de l'installation d'Ubuntu Server 11.04, encore moins de GNOME 3, qui n'est pas encore terminé. . Ou il devrait être construit avec ARCH+GNOME3. Alors s'il vous plaît, ne perdez pas votre temps à lire ceci. Cela a pris 2 nuits et un jour et a été réinstallé N fois. Finalement, quelque chose en est sorti. Ce n'est pas facile. Sans plus tarder, entrons dans le vif du sujet : Matériel : un ThinkPad (Pour X61) 2. Entrez dans l'interface des options de démarrage, sélectionnez le démarrage USB, puis choisissez d'installer Ubu.

Les utilisateurs de Windows Server 2022 signalent que les navigateurs et les applications ont des écrans blancs après l'installation de la mise à jour de janvier de Microsoft Les utilisateurs de Windows Server 2022 signalent que les navigateurs et les applications ont des écrans blancs après l'installation de la mise à jour de janvier de Microsoft Feb 19, 2024 pm 02:40 PM

Selon des rapports du 16 janvier, le média technologique étranger WindowsLatest a rapporté qu'après l'installation de la mise à jour KB5034129 par Windows Server 2022, les navigateurs Chrome, Edge et Firefox, ainsi qu'Adobe et d'autres applications avaient un écran blanc et étaient incapables d'afficher du contenu. Lors de l'événement Patch Tuesday de janvier 2024, Microsoft a publié la mise à jour KB5034129, conçue pour résoudre les problèmes d'adaptateur Wi-Fi dans Windows Server 2022. Cette mise à jour est largement recommandée et devrait être installée par de nombreuses entreprises pour garantir la stabilité et les performances du système. Cependant, de nombreux utilisateurs après l'installation et la mise à niveau ont signalé que la mise à jour de Windows Server 2022 entraînerait

See all articles