'\" t .TH "SYSTEMD\-SOCKET\-PROXYD" "8" "" "systemd 261.2" "systemd-socket-proxyd" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" systemd-socket-proxyd \- پروکسی هدایت سوکت‌های دوطرفه در systemd .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBsystemd\-socket\-proxyd\fR\ 'u \fBsystemd\-socket\-proxyd\fR [\fIOPTIONS\fR...] \fIHOST\fR:\fIPORT\fR .HP \w'\fBsystemd\-socket\-proxyd\fR\ 'u \fBsystemd\-socket\-proxyd\fR [\fIOPTIONS\fR...] \fIUNIX\-DOMAIN\-SOCKET\-PATH\fR .SH "توضیحات (DESCRIPTION)" .PP \fBsystemd\-socket\-proxyd\fR یک دیمن پروکسی و هدایت‌کننده عمومی سوکت‌های شبکه مبتنی بر فعال‌سازی با سوکت (socket\-activated) برای سوکت‌های جریانی IPv4، IPv6 و UNIX است\&. از این ابزار می‌توان برای هدایت دوطرفه ترافیک از یک سوکت شنود محلی به یک سوکت مقصد محلی یا راه‌دور استفاده کرد\&. .PP یکی از کاربردهای این ابزار، ارائه پشتیبانی از فعال‌سازی با سوکت برای سرویس‌هایی است که به‌طور بومی از فعال‌سازی با سوکت پشتیبانی نمی‌کنند\&. این پروکسی از طرف سرویسی که باید فعال شود، سوکت را از systemd به ارث می‌برد، هر اتصال کلاینت را می‌پذیرد، برای هر کلاینت یک اتصال به سرور پیکربندی‌شده باز می‌کند و سپس داده‌ها را به‌صورت دوطرفه بین آن دو هدایت می‌نماید\&. .PP رفتار این ابزار مشابه \fBsocat\fR(1) است\&. تفاوت‌های اصلی \fBsystemd\-socket\-proxyd\fR پشتیبانی از فعال‌سازی سوکت با "Accept=no" و یک طراحی مبتنی بر رویداد (event\-driven) است که با تعداد اتصالات مقیاس‌پذیری بهتری دارد\&. .PP توجه داشته باشید که \fBsystemd\-socket\-proxyd\fR اطلاعات کانال جانبی سوکت را هدایت نخواهد کرد؛ یعنی مواردی مانند \fBSCM_RIGHTS\fR، \fBSCM_CREDENTIALS\fR، \fBSCM_SECURITY\fR، \fBSO_PEERCRED\fR، \fBSO_PEERPIDFD\fR، \fBSO_PEERSEC\fR، \fBSO_PEERGROUPS\fR و مانند آن را هدایت نمی‌کند\&. .SH "گزینه‌ها (OPTIONS)" .PP گزینه‌های زیر پشتیبانی می‌شوند: .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 یک متن راهنمای کوتاه را چاپ کرده و خارج می‌شود\&. .RE .PP \fB\-\-version\fR .RS 4 یک رشته نسخه کوتاه را چاپ کرده و خارج می‌شود\&. .RE .PP \fB\-\-connections\-max=\fR, \fB\-c\fR .RS 4 حداکثر تعداد اتصالات هم‌زمان را تعیین می‌کند، مقدار پیش‌فرض ۲۵۶ است\&. اگر محدودیت اتصالات هم‌زمان حاصل شود، اتصالات بعدی رد خواهند شد\&. .sp در نسخه ۲۳۳ اضافه شد\&. .RE .PP \fB\-\-exit\-idle\-time=\fR .RS 4 زمان پیش از خروج در هنگام نبود اتصال را تعیین می‌کند، مقدار پیش‌فرض \fBinfinity\fR (نامحدود) است\&. یک مقدار بدون یکا بر حسب ثانیه، یا یک مقدار بازه زمانی مانند "5min 20s" می‌پذیرد\&. .sp در نسخه ۲۴۶ اضافه شد\&. .RE .PP \fB\-\-proxy\-protocol=\fR .RS 4 از \m[blue]\fBپروتکل PROXY\fR\m[]\&\s-2\u[1]\d\s+2 برای ارتباط با سرور استفاده می‌کند\&. این به سروری که به‌درستی پیکربندی شده باشد امکان می‌دهد آدرس IP واقعی کلاینت را بداند\&. نسخه \m[blue]\fBپروتکل PROXY\fR\m[]\&\s-2\u[1]\d\s+2 استفاده‌شده را می‌گیرد و در حال حاضر فقط از "v1" پشتیبانی می‌کند\&. پیش‌فرض عدم استفاده از پروتکل PROXY است\&. .sp در نسخه ۲۶۱ اضافه شد\&. .RE .SH "وضعیت خروج (EXIT STATUS)" .PP در صورت موفقیت، 0 بازگردانده می‌شود؛ در غیر این صورت یک کد خرابی غیرصفر بازگردانده خواهد شد\&. .SH "مثال‌ها (EXAMPLES)" .SS "مثال ساده" .PP استفاده از دو سرویس با یک وابستگی و بدون جداسازی فضای نام (namespace)\&. .PP \fBمثال\ \&۱.\ \&proxy\-to\-nginx\&.socket\fR .sp .if n \{\ .RS 4 .\} .nf [Socket] ListenStream=80 [Install] WantedBy=sockets\&.target .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۲.\ \&proxy\-to\-nginx\&.service\fR .sp .if n \{\ .RS 4 .\} .nf [Unit] Requires=nginx\&.service After=nginx\&.service Requires=proxy\-to\-nginx\&.socket After=proxy\-to\-nginx\&.socket [Service] Type=notify ExecStart=/usr/lib/systemd/systemd\-socket\-proxyd /run/nginx/socket PrivateTmp=yes PrivateNetwork=yes .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۳.\ \&nginx\&.conf\fR .sp .if n \{\ .RS 4 .\} .nf [\&...] server { listen unix:/run/nginx/socket; [\&...] .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۴.\ \&فعال‌سازی پروکسی\fR .sp .if n \{\ .RS 4 .\} .nf # systemctl enable \-\-now proxy\-to\-nginx\&.socket $ curl http://localhost:80/ .fi .if n \{\ .RE .\} .PP اگر nginx\&.service گزینه \fIStopWhenUnneeded=\fR را تنظیم کرده باشد، ارسال \fB\-\-exit\-idle\-time=\fR به \fBsystemd\-socket\-proxyd\fR اجازه می‌دهد هر دو سرویس در طول دوره‌های بی‌کاری متوقف شوند\&. .SS "مثال فضای نام" .PP مشابه بالا، اما اجرای پروکسی سوکت و سرویس اصلی در یک فضای نام خصوصی یکسان، با فرض این‌که nginx\&.service نیز گزینه‌های \fIPrivateTmp=\fR و \fIPrivateNetwork=\fR را تنظیم کرده باشد\&. .PP \fBمثال\ \&۵.\ \&proxy\-to\-nginx\&.socket\fR .sp .if n \{\ .RS 4 .\} .nf [Socket] ListenStream=80 [Install] WantedBy=sockets\&.target .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۶.\ \&proxy\-to\-nginx\&.service\fR .sp .if n \{\ .RS 4 .\} .nf [Unit] Requires=nginx\&.service After=nginx\&.service Requires=proxy\-to\-nginx\&.socket After=proxy\-to\-nginx\&.socket JoinsNamespaceOf=nginx\&.service [Service] Type=notify ExecStart=/usr/lib/systemd/systemd\-socket\-proxyd 127\&.0\&.0\&.1:8080 PrivateTmp=yes PrivateNetwork=yes .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۷.\ \&nginx\&.conf\fR .sp .if n \{\ .RS 4 .\} .nf [\&...] server { listen 8080; [\&...] .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۸.\ \&فعال‌سازی پروکسی\fR .sp .if n \{\ .RS 4 .\} .nf # systemctl enable \-\-now proxy\-to\-nginx\&.socket $ curl http://localhost:80/ .fi .if n \{\ .RE .\} .SS "مثال پروتکل PROXY با nginx" .PP استفاده از پروتکل PROXY توسط systemd\-socket\-proxyd و nginx .PP \fBمثال\ \&۹.\ \&proxy\-to\-nginx\&.socket\fR .sp .if n \{\ .RS 4 .\} .nf [Socket] ListenStream=80 [Install] WantedBy=sockets\&.target .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۱۰.\ \&proxy\-to\-nginx\&.service\fR .sp .if n \{\ .RS 4 .\} .nf [Unit] Requires=nginx\&.service After=nginx\&.service Requires=proxy\-to\-nginx\&.socket After=proxy\-to\-nginx\&.socket [Service] Type=notify ExecStart=/usr/lib/systemd/systemd\-socket\-proxyd \-\-proxy\-protocol=v1 /run/nginx/socket PrivateTmp=yes PrivateNetwork=yes .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۱۱.\ \&nginx\&.conf\fR .sp .if n \{\ .RS 4 .\} .nf [\&...] server { listen unix:/run/nginx/socket proxy_protocol; real_ip_header proxy_protocol; [\&...] .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۱۲.\ \&فعال‌سازی پروکسی\fR .sp .if n \{\ .RS 4 .\} .nf # systemctl enable \-\-now proxy\-to\-nginx\&.socket $ curl http://localhost:80/ .fi .if n \{\ .RE .\} .SH "همچنین ببینید (SEE ALSO)" .PP \fBsystemd\fR(1), \fBsystemd.socket\fR(5), \fBsystemd.service\fR(5), \fBsystemctl\fR(1), \fBsocat\fR(1), \fBnginx\fR(1), \fBcurl\fR(1), \m[blue]\fBمشخصات پروتکل PROXY\fR\m[]\&\s-2\u[1]\d\s+2, \m[blue]\fBnginx: پذیرش پروتکل PROXY\fR\m[]\&\s-2\u[2]\d\s+2 .SH "نکات (NOTES)" .IP " 1." 4 پروتکل PROXY .RS 4 \%https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt .RE .IP " 2." 4 nginx: پذیرش پروتکل PROXY .RS 4 \%https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol .RE