Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
nghttp2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
nghttp2
Commits
9a6b623c
Commit
9a6b623c
authored
Sep 18, 2021
by
Tatsuhiro Tsujikawa
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update doc
parent
97b36b8c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
19 deletions
+24
-19
README.rst
README.rst
+16
-16
doc/sources/nghttpx-howto.rst
doc/sources/nghttpx-howto.rst
+7
-2
src/shrpx.cc
src/shrpx.cc
+1
-1
No files found.
README.rst
View file @
9a6b623c
...
@@ -841,7 +841,7 @@ information. Here is sample output from ``nghttpd``:
...
@@ -841,7 +841,7 @@ information. Here is sample output from ``nghttpd``:
nghttpx - proxy
nghttpx - proxy
+++++++++++++++
+++++++++++++++
``nghttpx`` is a multi-threaded reverse proxy for HTTP/2, and
``nghttpx`` is a multi-threaded reverse proxy for HTTP/
3, HTTP/
2, and
HTTP/1.1, and powers http://nghttp2.org and supports HTTP/2 server
HTTP/1.1, and powers http://nghttp2.org and supports HTTP/2 server
push.
push.
...
@@ -862,16 +862,16 @@ ticket keys among multiple ``nghttpx`` instances via memcached.
...
@@ -862,16 +862,16 @@ ticket keys among multiple ``nghttpx`` instances via memcached.
``nghttpx`` has 2 operation modes:
``nghttpx`` has 2 operation modes:
================== ================ ================ =============
================== ================
========
================ =============
Mode option Frontend Backend Note
Mode option Frontend
Backend Note
================== ================ ================ =============
================== ================
========
================ =============
default mode HTTP/2, HTTP/1.1 HTTP/1.1, HTTP/2 Reverse proxy
default mode HTTP/
3, HTTP/
2, HTTP/1.1 HTTP/1.1, HTTP/2 Reverse proxy
``--http2-proxy`` HTTP/2, HTTP/1.1 HTTP/1.1, HTTP/2 Forward proxy
``--http2-proxy`` HTTP/
3, HTTP/
2, HTTP/1.1 HTTP/1.1, HTTP/2 Forward proxy
================== ================ ================ =============
================== ================
========
================ =============
The interesting mode at the moment is the default mode. It works like
The interesting mode at the moment is the default mode. It works like
a reverse proxy and listens for HTTP/
2, and HTTP/1.1 and can be
a reverse proxy and listens for HTTP/
3, HTTP/2, and HTTP/1.1 and can
deployed as a SSL/TLS terminator for existing web server.
be
deployed as a SSL/TLS terminator for existing web server.
In all modes, the frontend connections are encrypted by SSL/TLS by
In all modes, the frontend connections are encrypted by SSL/TLS by
default. To disable encryption, use the ``no-tls`` keyword in
default. To disable encryption, use the ``no-tls`` keyword in
...
@@ -889,16 +889,16 @@ server:
...
@@ -889,16 +889,16 @@ server:
.. code-block:: text
.. code-block:: text
Client <-- (HTTP/2, HTTP/1.1) --> nghttpx <-- (HTTP/1.1, HTTP/2) --> Web Server
Client <-- (HTTP/
3, HTTP/
2, HTTP/1.1) --> nghttpx <-- (HTTP/1.1, HTTP/2) --> Web Server
[reverse proxy]
[reverse proxy]
With the ``--http2-proxy`` option, it works as forward proxy, and it
With the ``--http2-proxy`` option, it works as forward proxy, and it
is so called secure HTTP/2 proxy:
is so called secure HTTP/2 proxy:
.. code-block:: text
.. code-block:: text
Client <-- (HTTP/2, HTTP/1.1) --> nghttpx <-- (HTTP/1.1) --> Proxy
Client <-- (HTTP/
3, HTTP/
2, HTTP/1.1) --> nghttpx <-- (HTTP/1.1) --> Proxy
[secure proxy] (e.g., Squid, ATS)
[secure proxy] (e.g., Squid, ATS)
The ``Client`` in the above example needs to be configured to use
The ``Client`` in the above example needs to be configured to use
``nghttpx`` as secure proxy.
``nghttpx`` as secure proxy.
...
@@ -930,7 +930,7 @@ proxy through an HTTP proxy:
...
@@ -930,7 +930,7 @@ proxy through an HTTP proxy:
.. code-block:: text
.. code-block:: text
Client <-- (HTTP/2, HTTP/1.1) --> nghttpx <-- (HTTP/2) --
Client <-- (HTTP/
3, HTTP/
2, HTTP/1.1) --> nghttpx <-- (HTTP/2) --
--===================---> HTTP/2 Proxy
--===================---> HTTP/2 Proxy
(HTTP proxy tunnel) (e.g., nghttpx -s)
(HTTP proxy tunnel) (e.g., nghttpx -s)
...
@@ -938,8 +938,8 @@ proxy through an HTTP proxy:
...
@@ -938,8 +938,8 @@ proxy through an HTTP proxy:
Benchmarking tool
Benchmarking tool
-----------------
-----------------
The ``h2load`` program is a benchmarking tool for HTTP/
2. The UI of
The ``h2load`` program is a benchmarking tool for HTTP/
3, HTTP/2, and
``h2load`` is heavily inspired by ``weighttp``
HTTP/1.1. The UI of
``h2load`` is heavily inspired by ``weighttp``
(https://github.com/lighttpd/weighttp). The typical usage is as
(https://github.com/lighttpd/weighttp). The typical usage is as
follows:
follows:
...
...
doc/sources/nghttpx-howto.rst
View file @
9a6b623c
...
@@ -14,8 +14,8 @@ Default mode
...
@@ -14,8 +14,8 @@ Default mode
If nghttpx is invoked without :option:`--http2-proxy`, it operates in
If nghttpx is invoked without :option:`--http2-proxy`, it operates in
default mode. In this mode, it works as reverse proxy (gateway) for
default mode. In this mode, it works as reverse proxy (gateway) for
both HTTP/
2 and HTTP/1 clients to backend servers. This is also known
both HTTP/
3, HTTP/2 and HTTP/1 clients to backend servers. This is
as "HTTP/2 router".
a
lso known a
s "HTTP/2 router".
By default, frontend connection is encrypted using SSL/TLS. So
By default, frontend connection is encrypted using SSL/TLS. So
server's private key and certificate must be supplied to the command
server's private key and certificate must be supplied to the command
...
@@ -28,6 +28,9 @@ the frontend, and an HTTP/1 connection can be upgraded to HTTP/2 using
...
@@ -28,6 +28,9 @@ the frontend, and an HTTP/1 connection can be upgraded to HTTP/2 using
HTTP Upgrade. Starting HTTP/2 connection by sending HTTP/2 connection
HTTP Upgrade. Starting HTTP/2 connection by sending HTTP/2 connection
preface is also supported.
preface is also supported.
In order to receive HTTP/3 traffic, use ``quic`` parameter in
:option:`--frontend` option (.e.g, ``--frontend='*,443;quic'``)
nghttpx can listen on multiple frontend addresses. This is achieved
nghttpx can listen on multiple frontend addresses. This is achieved
by using multiple :option:`--frontend` options. For each frontend
by using multiple :option:`--frontend` options. For each frontend
address, TLS can be enabled or disabled.
address, TLS can be enabled or disabled.
...
@@ -509,6 +512,8 @@ Bootstrapping WebSockets with HTTP/2 for both frontend and backend
...
@@ -509,6 +512,8 @@ Bootstrapping WebSockets with HTTP/2 for both frontend and backend
connections. This feature is enabled by default and no configuration
connections. This feature is enabled by default and no configuration
is required.
is required.
WebSockets over HTTP/3 is also supported.
HTTP/3
HTTP/3
------
------
...
...
src/shrpx.cc
View file @
9a6b623c
...
@@ -1965,7 +1965,7 @@ void print_version(std::ostream &out) {
...
@@ -1965,7 +1965,7 @@ void print_version(std::ostream &out) {
namespace
{
namespace
{
void
print_usage
(
std
::
ostream
&
out
)
{
void
print_usage
(
std
::
ostream
&
out
)
{
out
<<
R"(Usage: nghttpx [OPTIONS]... [<PRIVATE_KEY> <CERT>]
out
<<
R"(Usage: nghttpx [OPTIONS]... [<PRIVATE_KEY> <CERT>]
A reverse proxy for HTTP/2, and HTTP/1.)"
A reverse proxy for HTTP/
3, HTTP/
2, and HTTP/1.)"
<<
std
::
endl
;
<<
std
::
endl
;
}
}
}
// namespace
}
// namespace
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment