changeset 2090:a9a9a052b5bd

Documented the "CAP_NET_RAW" capability for transparent proxying.
author Yaroslav Zhuravlev <yar@nginx.com>
date Tue, 26 Dec 2017 15:28:53 +0300
parents 70c1e798a5c2
children fe66463d0799
files xml/en/docs/http/ngx_http_fastcgi_module.xml xml/en/docs/http/ngx_http_memcached_module.xml xml/en/docs/http/ngx_http_proxy_module.xml xml/en/docs/http/ngx_http_scgi_module.xml xml/en/docs/http/ngx_http_uwsgi_module.xml xml/en/docs/stream/ngx_stream_proxy_module.xml xml/ru/docs/http/ngx_http_fastcgi_module.xml xml/ru/docs/http/ngx_http_memcached_module.xml xml/ru/docs/http/ngx_http_proxy_module.xml xml/ru/docs/http/ngx_http_scgi_module.xml xml/ru/docs/http/ngx_http_uwsgi_module.xml xml/ru/docs/stream/ngx_stream_proxy_module.xml
diffstat 12 files changed, 90 insertions(+), 48 deletions(-) [+]
line wrap: on
line diff
--- a/xml/en/docs/http/ngx_http_fastcgi_module.xml
+++ b/xml/en/docs/http/ngx_http_fastcgi_module.xml
@@ -10,7 +10,7 @@
 <module name="Module ngx_http_fastcgi_module"
         link="/en/docs/http/ngx_http_fastcgi_module.html"
         lang="en"
-        rev="48">
+        rev="49">
 
 <section id="summary">
 
@@ -74,9 +74,12 @@ for example, from a real IP address of a
 fastcgi_bind $remote_addr transparent;
 </example>
 In order for this parameter to work,
-it is necessary to run nginx worker processes with the
-<link doc="../ngx_core_module.xml" id="user">superuser</link> privileges
-and configure kernel routing table
+it is usually necessary to run nginx worker processes with the
+<link doc="../ngx_core_module.xml" id="user">superuser</link> privileges.
+On Linux it is not required (1.13.8) as if
+the <literal>transparent</literal> parameter is specified, worker processes
+inherit the <literal>CAP_NET_RAW</literal> capability from the master process.
+It is also necessary to configure kernel routing table
 to intercept network traffic from the FastCGI server.
 </para>
 
--- a/xml/en/docs/http/ngx_http_memcached_module.xml
+++ b/xml/en/docs/http/ngx_http_memcached_module.xml
@@ -10,7 +10,7 @@
 <module name="Module ngx_http_memcached_module"
         link="/en/docs/http/ngx_http_memcached_module.html"
         lang="en"
-        rev="15">
+        rev="16">
 
 <section id="summary">
 
@@ -78,9 +78,12 @@ for example, from a real IP address of a
 memcached_bind $remote_addr transparent;
 </example>
 In order for this parameter to work,
-it is necessary to run nginx worker processes with the
-<link doc="../ngx_core_module.xml" id="user">superuser</link> privileges
-and configure kernel routing table
+it is usually necessary to run nginx worker processes with the
+<link doc="../ngx_core_module.xml" id="user">superuser</link> privileges.
+On Linux it is not required (1.13.8) as if
+the <literal>transparent</literal> parameter is specified, worker processes
+inherit the <literal>CAP_NET_RAW</literal> capability from the master process.
+It is also necessary to configure kernel routing table
 to intercept network traffic from the memcached server.
 </para>
 
--- a/xml/en/docs/http/ngx_http_proxy_module.xml
+++ b/xml/en/docs/http/ngx_http_proxy_module.xml
@@ -10,7 +10,7 @@
 <module name="Module ngx_http_proxy_module"
         link="/en/docs/http/ngx_http_proxy_module.html"
         lang="en"
-        rev="63">
+        rev="64">
 
 <section id="summary">
 
@@ -69,9 +69,12 @@ for example, from a real IP address of a
 proxy_bind $remote_addr transparent;
 </example>
 In order for this parameter to work,
-it is necessary to run nginx worker processes with the
-<link doc="../ngx_core_module.xml" id="user">superuser</link> privileges
-and configure kernel routing table
+it is usually necessary to run nginx worker processes with the
+<link doc="../ngx_core_module.xml" id="user">superuser</link> privileges.
+On Linux it is not required (1.13.8) as if
+the <literal>transparent</literal> parameter is specified, worker processes
+inherit the <literal>CAP_NET_RAW</literal> capability from the master process.
+It is also necessary to configure kernel routing table
 to intercept network traffic from the proxied server.
 </para>
 
--- a/xml/en/docs/http/ngx_http_scgi_module.xml
+++ b/xml/en/docs/http/ngx_http_scgi_module.xml
@@ -10,7 +10,7 @@
 <module name="Module ngx_http_scgi_module"
         link="/en/docs/http/ngx_http_scgi_module.html"
         lang="en"
-        rev="37">
+        rev="38">
 
 <section id="summary">
 
@@ -67,9 +67,12 @@ for example, from a real IP address of a
 scgi_bind $remote_addr transparent;
 </example>
 In order for this parameter to work,
-it is necessary to run nginx worker processes with the
-<link doc="../ngx_core_module.xml" id="user">superuser</link> privileges
-and configure kernel routing table
+it is usually necessary to run nginx worker processes with the
+<link doc="../ngx_core_module.xml" id="user">superuser</link> privileges.
+On Linux it is not required (1.13.8) as if
+the <literal>transparent</literal> parameter is specified, worker processes
+inherit the <literal>CAP_NET_RAW</literal> capability from the master process.
+It is also necessary to configure kernel routing table
 to intercept network traffic from the SCGI server.
 </para>
 
--- a/xml/en/docs/http/ngx_http_uwsgi_module.xml
+++ b/xml/en/docs/http/ngx_http_uwsgi_module.xml
@@ -10,7 +10,7 @@
 <module name="Module ngx_http_uwsgi_module"
         link="/en/docs/http/ngx_http_uwsgi_module.html"
         lang="en"
-        rev="41">
+        rev="42">
 
 <section id="summary">
 
@@ -67,9 +67,12 @@ for example, from a real IP address of a
 uwsgi_bind $remote_addr transparent;
 </example>
 In order for this parameter to work,
-it is necessary to run nginx worker processes with the
-<link doc="../ngx_core_module.xml" id="user">superuser</link> privileges
-and configure kernel routing table
+it is usually necessary to run nginx worker processes with the
+<link doc="../ngx_core_module.xml" id="user">superuser</link> privileges.
+On Linux it is not required (1.13.8) as if
+the <literal>transparent</literal> parameter is specified, worker processes
+inherit the <literal>CAP_NET_RAW</literal> capability from the master process.
+It is also necessary to configure kernel routing table
 to intercept network traffic from the uwsgi server.
 </para>
 
--- a/xml/en/docs/stream/ngx_stream_proxy_module.xml
+++ b/xml/en/docs/stream/ngx_stream_proxy_module.xml
@@ -9,7 +9,7 @@
 <module name="Module ngx_stream_proxy_module"
         link="/en/docs/stream/ngx_stream_proxy_module.html"
         lang="en"
-        rev="18">
+        rev="19">
 
 <section id="summary">
 
@@ -85,9 +85,12 @@ for example, from a real IP address of a
 proxy_bind $remote_addr transparent;
 </example>
 In order for this parameter to work,
-it is necessary to run nginx worker processes with the
-<link doc="../ngx_core_module.xml" id="user">superuser</link> privileges
-and configure kernel routing table
+it is usually necessary to run nginx worker processes with the
+<link doc="../ngx_core_module.xml" id="user">superuser</link> privileges.
+On Linux it is not required (1.13.8) as if
+the <literal>transparent</literal> parameter is specified, worker processes
+inherit the <literal>CAP_NET_RAW</literal> capability from the master process.
+It is also necessary to configure kernel routing table
 to intercept network traffic from the proxied server.
 </para>
 
--- a/xml/ru/docs/http/ngx_http_fastcgi_module.xml
+++ b/xml/ru/docs/http/ngx_http_fastcgi_module.xml
@@ -10,7 +10,7 @@
 <module name="Модуль ngx_http_fastcgi_module"
         link="/ru/docs/http/ngx_http_fastcgi_module.html"
         lang="ru"
-        rev="48">
+        rev="49">
 
 <section id="summary">
 
@@ -74,9 +74,13 @@ location / {
 fastcgi_bind $remote_addr transparent;
 </example>
 Для работы параметра
-необходимо запустить рабочие процессы nginx с привилегиями
-<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>,
-а также настроить таблицу маршрутизации ядра
+обычно требуется
+запустить рабочие процессы nginx с привилегиями
+<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>.
+В Linux этого не требуется (1.13.8), так как если
+указан параметр <literal>transparent</literal>, то рабочие процессы
+наследуют capability <literal>CAP_NET_RAW</literal> из главного процесса.
+Также необходимо настроить таблицу маршрутизации ядра
 для перехвата сетевого трафика с FastCGI-сервера.
 </para>
 
--- a/xml/ru/docs/http/ngx_http_memcached_module.xml
+++ b/xml/ru/docs/http/ngx_http_memcached_module.xml
@@ -10,7 +10,7 @@
 <module name="Модуль ngx_http_memcached_module"
         link="/ru/docs/http/ngx_http_memcached_module.html"
         lang="ru"
-        rev="15">
+        rev="16">
 
 <section id="summary">
 
@@ -78,9 +78,13 @@ server {
 memcached_bind $remote_addr transparent;
 </example>
 Для работы параметра
-необходимо запустить рабочие процессы nginx с привилегиями
-<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>,
-а также настроить таблицу маршрутизации ядра
+обычно требуется
+запустить рабочие процессы nginx с привилегиями
+<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>.
+В Linux этого не требуется (1.13.8), так как если
+указан параметр <literal>transparent</literal>, то рабочие процессы
+наследуют capability <literal>CAP_NET_RAW</literal> из главного процесса.
+Также необходимо настроить таблицу маршрутизации ядра
 для перехвата сетевого трафика с сервера memcached.
 </para>
 
--- a/xml/ru/docs/http/ngx_http_proxy_module.xml
+++ b/xml/ru/docs/http/ngx_http_proxy_module.xml
@@ -10,7 +10,7 @@
 <module name="Модуль ngx_http_proxy_module"
         link="/ru/docs/http/ngx_http_proxy_module.html"
         lang="ru"
-        rev="63">
+        rev="64">
 
 <section id="summary">
 
@@ -69,9 +69,13 @@ location / {
 proxy_bind $remote_addr transparent;
 </example>
 Для работы параметра
-необходимо запустить рабочие процессы nginx с привилегиями
-<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>,
-а также настроить таблицу маршрутизации ядра
+обычно требуется
+запустить рабочие процессы nginx с привилегиями
+<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>.
+В Linux этого не требуется (1.13.8), так как если
+указан параметр <literal>transparent</literal>, то рабочие процессы
+наследуют capability <literal>CAP_NET_RAW</literal> из главного процесса.
+Также необходимо настроить таблицу маршрутизации ядра
 для перехвата сетевого трафика с проксируемого сервера.
 </para>
 
--- a/xml/ru/docs/http/ngx_http_scgi_module.xml
+++ b/xml/ru/docs/http/ngx_http_scgi_module.xml
@@ -10,7 +10,7 @@
 <module name="Модуль ngx_http_scgi_module"
         link="/ru/docs/http/ngx_http_scgi_module.html"
         lang="ru"
-        rev="37">
+        rev="38">
 
 <section id="summary">
 
@@ -67,9 +67,13 @@ location / {
 scgi_bind $remote_addr transparent;
 </example>
 Для работы параметра
-необходимо запустить рабочие процессы nginx с привилегиями
-<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>,
-а также настроить таблицу маршрутизации ядра
+обычно требуется
+запустить рабочие процессы nginx с привилегиями
+<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>.
+В Linux этого не требуется (1.13.8), так как если
+указан параметр <literal>transparent</literal>, то рабочие процессы
+наследуют capability <literal>CAP_NET_RAW</literal> из главного процесса.
+Также необходимо настроить таблицу маршрутизации ядра
 для перехвата сетевого трафика с SCGI-сервера.
 </para>
 
--- a/xml/ru/docs/http/ngx_http_uwsgi_module.xml
+++ b/xml/ru/docs/http/ngx_http_uwsgi_module.xml
@@ -10,7 +10,7 @@
 <module name="Модуль ngx_http_uwsgi_module"
         link="/ru/docs/http/ngx_http_uwsgi_module.html"
         lang="ru"
-        rev="41">
+        rev="42">
 
 <section id="summary">
 
@@ -67,9 +67,13 @@ location / {
 uwsgi_bind $remote_addr transparent;
 </example>
 Для работы параметра
-необходимо запустить рабочие процессы nginx с привилегиями
-<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>,
-а также настроить таблицу маршрутизации ядра
+обычно требуется
+запустить рабочие процессы nginx с привилегиями
+<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>.
+В Linux этого не требуется (1.13.8), так как если
+указан параметр <literal>transparent</literal>, то рабочие процессы
+наследуют capability <literal>CAP_NET_RAW</literal> из главного процесса.
+Также необходимо настроить таблицу маршрутизации ядра
 для перехвата сетевого трафика с uwsgi-сервера.
 </para>
 
--- a/xml/ru/docs/stream/ngx_stream_proxy_module.xml
+++ b/xml/ru/docs/stream/ngx_stream_proxy_module.xml
@@ -9,7 +9,7 @@
 <module name="Модуль ngx_stream_proxy_module"
         link="/ru/docs/stream/ngx_stream_proxy_module.html"
         lang="ru"
-        rev="18">
+        rev="19">
 
 <section id="summary">
 
@@ -85,9 +85,13 @@ server {
 proxy_bind $remote_addr transparent;
 </example>
 Для работы параметра
-необходимо запустить рабочие процессы nginx с привилегиями
-<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>,
-а также настроить таблицу маршрутизации ядра
+обычно требуется
+запустить рабочие процессы nginx с привилегиями
+<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>.
+В Linux этого не требуется (1.13.8), так как если
+указан параметр <literal>transparent</literal>, то рабочие процессы
+наследуют capability <literal>CAP_NET_RAW</literal> из главного процесса.
+Также необходимо настроить таблицу маршрутизации ядра
 для перехвата сетевого трафика с проксируемого сервера.
 </para>