1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

UNIXドメインソケット

Posted at

本日得た知識の1つを記していきます。

ソケット通信とは

プロセス間通信の方法の一つ。ネットワークを経由することで、データのやりとりなどを行う。その際に通信先を特定する際には、通信先のドメイン名・IPアドレス・ポート番号を基に、通信先のソケットという部分に接続します。ソケットとは、通信におけるインターフェースの名前です。

UNIXドメインソケットとは

プロセス間通信の際に、ネットワークを経由する事なく、通信先と繋げる方法のこと、またはそのインターフェースのことをUNIXドメインソケットと言います。同一のホスト間で行われ、IPアドレスなどを用いて名前解決する必要がない為、高速なプロセス間通信を可能にします。UNIXドメインソケットを用いて接続された機器(webサーバーなど)は、同一のプロセスとして扱う事ができる。

参考

認識違い等ございましたら、ご指摘頂けると幸いです。

例:NginxとUnicorn

Dockerの同一コンテナ内で、NginxとUnicornをUNIXドメインソケット接続する。

:app/nginx/ドメイン名.conf
user root;
events {
	:
}
http {
	upstream app {
		server unix:/root/tmp/unicorn.sock;
	}
	server {
		:
	}
}

:app/confing/dev_unicorn.rb
	:
listen  File.expand_path('/root/tmp/unicorn.sock', app_path)
	:

IPアドレスとポート番号を指定する代わりに、socketファイルの位置を指定する事で、UNIXドメインソケット通信を実現させています。
ちなみに、こちらの設定ではソケットファイルをroot/配下の/tmpファイルに設置する事で、コンテナの停止・起動とを同一のタイミングでプロセス同士の接続を行うよう設定している。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?