Nginxのunixソケットとtcpソケットの違いは何ですか

WBOY
リリース: 2023-05-16 13:37:06
転載
1665 人が閲覧しました

Nginx が fastcgi に接続するには、unix ドメイン ソケットと TCP の 2 つの方法があります。Unix ドメイン ソケットまたは IPC ソケットは、同じオペレーティング システム上の 2 つ以上のプロセスが相互に通信できるようにする端末です。パイプとは対照的に、Unix ドメイン ソケットはバイト ストリームとデータ キューの両方を使用できますが、パイプ通信はバイト ストリーム経由でのみ可能です。 Unix ドメイン ソケットのインターフェイスはインターネット ソケットに非常に似ていますが、通信に基礎となるネットワーク プロトコルを使用しません。 Unix ドメイン ソケットの機能は、POSIX オペレーティング システムのコンポーネントです。

TCP と UNIX ドメイン ソケット メソッドの比較

TCP は TCP ポートを使用して 127.0.0.1:9000 に接続し、Socket は UNIX ドメイン ソケットを使用してソケット /dev/shm に接続します/php-cgi.sock (多くのチュートリアルではパス /tmp が使用され、パス /dev/shm はディスクよりもはるかに高速な tmpfs です)

fastcgi_pass unix:/tmp/php-cgi.sock
fastcgi_pass 127.0.0.1:9000
ログイン後にコピー

サーバーの負荷が高くない場合、 tcp とソケットの違いはあまりありませんが、圧力が高い場合にはソケット方式の方が優れています。

PHP 5.3 以降で TCP をソケット モードに変更するための設定方法は次のとおりです。

php-fpm.conf (/usr/local/php/etc/php-fpm. conf)

;listen = 127.0.0.1:9000
listen = /dev/shm/php-cgi.sock
ログイン後にコピー

nginx設定ファイルのサーバーセクションの設定を変更し、httpモードをソケットモードに変更します

location ~ .*.(php|php5)?$
{
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
ログイン後にコピー

php-fpmとnginx

service nginx restart
service php-fpm restart
ls -al /dev/shm
ログイン後にコピー

を再起動しますphp-cgi .sock ファイルの unix ソケット タイプを確認できます。理論上、unix ソケットはネットワークを経由しないため効率的ですが、安定性はあまり理想的ではありません。

以上がNginxのunixソケットとtcpソケットの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!