Mercurial > hg > digilib
annotate doc/src/site/markdown/server-setup.md @ 1714:d497eb11141c default tip
updated travis-ci config for automatic WAR releases.
author | Robert Casties <casties@mpiwg-berlin.mpg.de> |
---|---|
date | Mon, 18 Feb 2019 20:49:15 +0100 |
parents | 79b95ce5d315 |
children |
rev | line source |
---|---|
1681
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
1 # Server setup for digilib |
1658 | 2 |
3 There are a variety of ways to deploy digilib on different server configurations for production sites. | |
4 | |
1681
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
5 Here are some examples and tips. |
1658 | 6 |
7 ## nginx as proxy | |
8 | |
9 This is an example configuration for `nginx` as a proxy for a single instance | |
10 of digilib (listening on port `8080`) that handles transport encryption and | |
11 restricts access to sensitive data to the gateway of a local network | |
12 (`1.2.3.4`). | |
13 | |
14 ```nginx | |
15 server { | |
16 listen 443 ssl http2; | |
17 listen [::]:443 ssl http2; | |
18 server_name digilib.example.org; | |
19 | |
20 # this certificate chain shall *not* include the root certificate: | |
21 ssl_certificate /etc/ssl/certs/digilib.example.org.pem; | |
22 ssl_certificate_key /etc/ssl/private/digilib.example.org.key; | |
23 | |
24 include /etc/nginx/proxy_params; | |
25 | |
26 location ~* .*/(dlConfig|dlRequest).jsp$ { | |
27 allow 1.2.3.4; | |
28 deny all; | |
29 proxy_pass http://localhost:8080; | |
30 } | |
31 | |
32 location / { | |
33 proxy_pass http://localhost:8080; | |
34 } | |
35 } | |
36 ``` | |
37 | |
1699
79b95ce5d315
Small fix to docs.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1698
diff
changeset
|
38 Please check the [nginx documentation](nginx.org/en/docs/). |
1681
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
39 |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
40 ## Apache as proxy and load-balancer |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
41 |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
42 This is an example configuration for [Apache](https://httpd.apache.org/) as a proxy and load balancer for two instances of |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
43 digilib (one running on localhost, port 8080 and another on otherserver, port 8080), using SSL and http/2: |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
44 |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
45 ``` |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
46 <VirtualHost *:443> |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
47 # HTTP/2 protocol (Apache 2.4.29 and later) |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
48 Protocols h2 http/1.1 |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
49 ServerName digilib.example.com |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
50 SSLCertificateFile /etc/ssl/private/digilib-cert.pem |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
51 SSLCertificateKeyFile /etc/ssl/private/digilib-key.pem |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
52 SSLEngine on |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
53 |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
54 DocumentRoot /var/www |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
55 <Directory /> |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
56 Options FollowSymLinks |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
57 AllowOverride None |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
58 </Directory> |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
59 <Directory /var/www/> |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
60 Options Indexes FollowSymLinks MultiViews |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
61 AllowOverride None |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
62 Order allow,deny |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
63 allow from all |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
64 </Directory> |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
65 |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
66 ErrorLog ${APACHE_LOG_DIR}/digilib-ssl-error.log |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
67 LogLevel warn |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
68 CustomLog ${APACHE_LOG_DIR}/digilib-ssl-access.log combined |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
69 |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
70 # do not forward-proxy! |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
71 ProxyRequests off |
1698
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
72 # set proxy headers |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
73 ProxyPreserveHost On |
1681
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
74 RequestHeader set X-Forwarded-Proto "https" |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
75 # digilib instances |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
76 <Proxy balancer://digilibs> |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
77 BalancerMember http://127.0.0.1:8080 |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
78 BalancerMember http://otherserver.example.com:8080 |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
79 </Proxy> |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
80 # balance by busy-ness |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
81 ProxyPass /digitallibrary balancer://digilibs/digitallibrary lbmethod=bybusyness |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
82 ProxyPassReverse /digitallibrary balancer://digilibs/digitallibrary |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
83 |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
84 # balancer-manager frontend (be careful!) |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
85 <Location /balancer-manager> |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
86 SetHandler balancer-manager |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
87 Require host localhost |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
88 </Location> |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
89 </VirtualHost> |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
90 ``` |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
91 |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
92 ## Jetty behind a proxy |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
93 |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
94 When you are using [Jetty](https://www.eclipse.org/jetty/) as servlet container behind an Apache or nginx proxy |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
95 then you should make sure that Jetty processes the `X-Forwarded-*` headers from the proxy server to derive the |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
96 correct request URL for the servlets. |
6d5e04a54848
updated server-setup documentation. fixed broken link.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1658
diff
changeset
|
97 |
1698
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
98 Please see [this information for Jetty 9.4](http://www.eclipse.org/jetty/documentation/9.4.x/configuring-connectors.html#_proxy_load_balancer_connection_configuration) |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
99 or [this information for Jetty 8 and earlier versions](https://wiki.eclipse.org/Jetty/Tutorial/Apache#Configuring_mod_proxy_http). |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
100 |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
101 ## Tomcat behind a proxy |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
102 |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
103 When you are using [Tomcat](https://tomcat.apache.org) as a servlet container behind an Apache or nginx proxy then |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
104 you should make sure that Tomcat processes the `X-Forwarded-*` headers from the proxy server to derive the |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
105 correct request URL for the servlets. |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
106 |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
107 Please see the Tomcat documentation about the [Remote IP Valve](https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Remote_IP_Valve). |
1699
79b95ce5d315
Small fix to docs.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1698
diff
changeset
|
108 You basically need to add the following XML tag with your proxy's IP numbers to the `Host` tag of your `server.xml` file |
79b95ce5d315
Small fix to docs.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1698
diff
changeset
|
109 and make sure `ProxyPreserveHost` is set to `on`: |
79b95ce5d315
Small fix to docs.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1698
diff
changeset
|
110 |
1698
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
111 ``` |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
112 <Valve className="org.apache.catalina.valves.RemoteIpValve" |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
113 internalProxies="127\.0\.0\.1|123\.45\.67\.89" |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
114 remoteIpHeader="x-forwarded-for" |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
115 proxiesHeader="x-forwarded-by" |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
116 protocolHeader="x-forwarded-proto" /> |
7e4396e467de
Add documentation about running Tomcat behind a proxy.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1681
diff
changeset
|
117 ``` |
1699
79b95ce5d315
Small fix to docs.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1698
diff
changeset
|
118 |
79b95ce5d315
Small fix to docs.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1698
diff
changeset
|
119 |