Quelle est la différence entre ces deux méthodes de configuration de Nginx ?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-16 17:24:22
0
1
559

使用 $_GET['_url'] comme source des URI :

server {

    listen   80;
    server_name localhost.dev;

    index index.php index.html index.htm;
    set $root_path '/var/www/phalcon/public';
    root $root_path;

    try_files $uri $uri/ @rewrite;

    location @rewrite {
        rewrite ^/(.*)$ /index.php?_url=/;
    }

    location ~ \.php {
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index /index.php;

        include /etc/nginx/fastcgi_params;

        fastcgi_split_path_info       ^(.+\.php)(/.+)$;
        fastcgi_param PATH_INFO       $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
        root $root_path;
    }

    location ~ /\.ht {
        deny all;
    }
}

使用 $_SERVER['REQUEST_URI'] comme source des URI :

server {

    listen   80;
    server_name localhost.dev;

    index index.php index.html index.htm;
    set $root_path '/var/www/phalcon/public';
    root $root_path;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
    }

    location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
        root $root_path;
    }

    location ~ /\.ht {
        deny all;
    }
}
曾经蜡笔没有小新
曾经蜡笔没有小新

répondre à tous(1)
过去多啦不再A梦

La principale différence entre les deux devrait être fastcgi_pass :

La deuxième configuration est :

fastcgi_pass 127.0.0.1:9000;

La première configuration est :

fastcgi_pass unix:/run/php-fpm/php-fpm.sock;

Wiki de référence : http://zh.wikipedia.org/wiki/Unix_domain_socket

Le socket de domaine Unix ou socket IPC est un terminal qui permet la communication de données entre deux ou plusieurs processus sur le même système d'exploitation. Par rapport aux canaux, les sockets de domaine Unix peuvent utiliser à la fois des flux d'octets et des files d'attente de données, tandis que la communication par canal ne peut utiliser que des flux d'octets. L'interface des sockets de domaine Unix est très similaire à celle des sockets Internet, mais elle n'utilise pas le protocole réseau sous-jacent pour communiquer. La fonction du socket de domaine Unix est un composant du système d'exploitation POSIX.

Les sockets de domaine Unix utilisent l'adresse du fichier système comme identité. Il peut être référencé par les processus système. Ainsi, deux processus peuvent ouvrir un socket de domaine Unix en même temps pour communiquer. Cependant, cette méthode de communication se produit dans le noyau du système et ne se propage pas dans le réseau.

Une conclusion est la suivante : Lorsque la pression du serveur n'est pas élevée, il n'y a pas beaucoup de différence entre TCP et socket, mais lorsque la pression est relativement élevée, la méthode socket est en effet meilleure.

Pour plus de détails, vous pouvez vous référer à cette comparaison pour utiliser socket pour connecter Nginx afin d'optimiser les performances de php-fpm

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal