Fossil SCM
Small tweaks to the Debian nginx doc.
Commit
14406b7ca25cb9f75c50b09c534272ed9c42a108e1b2733fa4b2639246f22f95
Parent
46d5fd16ad33749…
1 file changed
+18
-16
+18
-16
| --- www/server/debian/nginx.md | ||
| +++ www/server/debian/nginx.md | ||
| @@ -34,21 +34,21 @@ | ||
| 34 | 34 | To give you some idea of the sort of thing you can readily |
| 35 | 35 | accomplish with nginx, your author runs a single public web server |
| 36 | 36 | that provides transparent name-based virtual hosting for four |
| 37 | 37 | separate domains: |
| 38 | 38 | |
| 39 | - * One is entirely static, not involving any dynamic content or | |
| 40 | - Fossil integration at all. | |
| 39 | + * <p>One is entirely static, not involving any dynamic content or | |
| 40 | + Fossil integration at all.</p> | |
| 41 | 41 | |
| 42 | - * Another is served almost entirely by Fossil, with a few select | |
| 42 | + * <p>Another is served almost entirely by Fossil, with a few select | |
| 43 | 43 | static content exceptions punched past Fossil, which are handled |
| 44 | - entirely via nginx. | |
| 44 | + entirely via nginx.</p> | |
| 45 | 45 | |
| 46 | - * The other two domains are aliases for one another — e.g. | |
| 46 | + * <p>The other two domains are aliases for one another — e.g. | |
| 47 | 47 | `example.com` and `example.net` — with most of the content being |
| 48 | - static. This pair of domains has three different Fossil repo | |
| 49 | - proxies attached to various sections of the URI hierarchy. | |
| 48 | + static. This pair of domains has several unrelated Fossil repo | |
| 49 | + proxies attached to various sections of the URI hierarchy.</p> | |
| 50 | 50 | |
| 51 | 51 | By using nginx, I was able to do all of the above with minimal |
| 52 | 52 | repetition between the site configurations. |
| 53 | 53 | |
| 54 | 54 | * **Integration** — Because nginx is so popular, it integrates with |
| @@ -64,37 +64,35 @@ | ||
| 64 | 64 | ## <a name="modes"></a>Fossil Service Modes |
| 65 | 65 | |
| 66 | 66 | Fossil provides four major ways to access a repository it’s serving |
| 67 | 67 | remotely, three of which are straightforward to use with nginx: |
| 68 | 68 | |
| 69 | -* **HTTP** — Fossil has a built-in HTTP server: [`fossil | |
| 70 | - server`](../any/none.md). While this method is efficient and it’s | |
| 69 | +* **HTTP** — Fossil has [a built-in HTTP server](../any/none.md). | |
| 70 | + While this method is efficient and it’s | |
| 71 | 71 | possible to use nginx to proxy access to another HTTP server, we |
| 72 | 72 | don’t see any particularly good reason to make nginx reinterpret |
| 73 | 73 | Fossil’s own implementation of HTTP when we have a better option. |
| 74 | 74 | (But see [below](#http).) |
| 75 | + | |
| 76 | +* **SSH** — This method exists primarily to avoid the need for HTTPS, | |
| 77 | + but we *want* HTTPS. (We’ll get to that [below](#tls).) | |
| 78 | + There is probably a way to get nginx to proxy Fossil to HTTPS via | |
| 79 | + SSH, but it would be pointlessly complicated. | |
| 75 | 80 | |
| 76 | 81 | * **CGI** — This method is simple but inefficient, because it launches |
| 77 | 82 | a separate Fossil instance on every HTTP hit. |
| 78 | - | |
| 79 | 83 | Since Fossil is a relatively small self-contained program, and it’s |
| 80 | 84 | designed to start up quickly, this method can work well in a |
| 81 | 85 | surprisingly large number of cases. |
| 82 | - | |
| 83 | 86 | Nevertheless, we will avoid this option in this document because |
| 84 | 87 | we’re already buying into a certain amount of complexity here in |
| 85 | 88 | order to gain power. There’s no sense in throwing away any of that |
| 86 | 89 | hard-won performance on CGI overhead. |
| 87 | 90 | |
| 88 | 91 | * **SCGI** — The [SCGI protocol][scgip] provides the simplicity of CGI |
| 89 | 92 | without its performance problems. |
| 90 | 93 | |
| 91 | -* **SSH** — This method exists primarily to avoid the need for HTTPS, | |
| 92 | - but we *want* HTTPS. (We’ll get to that [below](#tls).) | |
| 93 | - There is probably a way to get nginx to proxy Fossil to HTTPS via | |
| 94 | - SSH, but it would be pointlessly complicated. | |
| 95 | - | |
| 96 | 94 | SCGI it is, then. |
| 97 | 95 | |
| 98 | 96 | [scgip]: https://en.wikipedia.org/wiki/Simple_Common_Gateway_Interface |
| 99 | 97 | |
| 100 | 98 | |
| @@ -102,10 +100,14 @@ | ||
| 102 | 100 | |
| 103 | 101 | The first step is to install some non-default packages we’ll need. SSH into |
| 104 | 102 | your server, then say: |
| 105 | 103 | |
| 106 | 104 | $ sudo apt install fossil nginx |
| 105 | + | |
| 106 | +You can leave “`fossil`” out of that if you’re building Fossil from | |
| 107 | +source to get a more up-to-date version than is shipped with the host | |
| 108 | +OS. | |
| 107 | 109 | |
| 108 | 110 | |
| 109 | 111 | ## <a name="scgi"></a>Running Fossil in SCGI Mode |
| 110 | 112 | |
| 111 | 113 | For the following nginx configuration to work, it needs to contact a |
| 112 | 114 |
| --- www/server/debian/nginx.md | |
| +++ www/server/debian/nginx.md | |
| @@ -34,21 +34,21 @@ | |
| 34 | To give you some idea of the sort of thing you can readily |
| 35 | accomplish with nginx, your author runs a single public web server |
| 36 | that provides transparent name-based virtual hosting for four |
| 37 | separate domains: |
| 38 | |
| 39 | * One is entirely static, not involving any dynamic content or |
| 40 | Fossil integration at all. |
| 41 | |
| 42 | * Another is served almost entirely by Fossil, with a few select |
| 43 | static content exceptions punched past Fossil, which are handled |
| 44 | entirely via nginx. |
| 45 | |
| 46 | * The other two domains are aliases for one another — e.g. |
| 47 | `example.com` and `example.net` — with most of the content being |
| 48 | static. This pair of domains has three different Fossil repo |
| 49 | proxies attached to various sections of the URI hierarchy. |
| 50 | |
| 51 | By using nginx, I was able to do all of the above with minimal |
| 52 | repetition between the site configurations. |
| 53 | |
| 54 | * **Integration** — Because nginx is so popular, it integrates with |
| @@ -64,37 +64,35 @@ | |
| 64 | ## <a name="modes"></a>Fossil Service Modes |
| 65 | |
| 66 | Fossil provides four major ways to access a repository it’s serving |
| 67 | remotely, three of which are straightforward to use with nginx: |
| 68 | |
| 69 | * **HTTP** — Fossil has a built-in HTTP server: [`fossil |
| 70 | server`](../any/none.md). While this method is efficient and it’s |
| 71 | possible to use nginx to proxy access to another HTTP server, we |
| 72 | don’t see any particularly good reason to make nginx reinterpret |
| 73 | Fossil’s own implementation of HTTP when we have a better option. |
| 74 | (But see [below](#http).) |
| 75 | |
| 76 | * **CGI** — This method is simple but inefficient, because it launches |
| 77 | a separate Fossil instance on every HTTP hit. |
| 78 | |
| 79 | Since Fossil is a relatively small self-contained program, and it’s |
| 80 | designed to start up quickly, this method can work well in a |
| 81 | surprisingly large number of cases. |
| 82 | |
| 83 | Nevertheless, we will avoid this option in this document because |
| 84 | we’re already buying into a certain amount of complexity here in |
| 85 | order to gain power. There’s no sense in throwing away any of that |
| 86 | hard-won performance on CGI overhead. |
| 87 | |
| 88 | * **SCGI** — The [SCGI protocol][scgip] provides the simplicity of CGI |
| 89 | without its performance problems. |
| 90 | |
| 91 | * **SSH** — This method exists primarily to avoid the need for HTTPS, |
| 92 | but we *want* HTTPS. (We’ll get to that [below](#tls).) |
| 93 | There is probably a way to get nginx to proxy Fossil to HTTPS via |
| 94 | SSH, but it would be pointlessly complicated. |
| 95 | |
| 96 | SCGI it is, then. |
| 97 | |
| 98 | [scgip]: https://en.wikipedia.org/wiki/Simple_Common_Gateway_Interface |
| 99 | |
| 100 | |
| @@ -102,10 +100,14 @@ | |
| 102 | |
| 103 | The first step is to install some non-default packages we’ll need. SSH into |
| 104 | your server, then say: |
| 105 | |
| 106 | $ sudo apt install fossil nginx |
| 107 | |
| 108 | |
| 109 | ## <a name="scgi"></a>Running Fossil in SCGI Mode |
| 110 | |
| 111 | For the following nginx configuration to work, it needs to contact a |
| 112 |
| --- www/server/debian/nginx.md | |
| +++ www/server/debian/nginx.md | |
| @@ -34,21 +34,21 @@ | |
| 34 | To give you some idea of the sort of thing you can readily |
| 35 | accomplish with nginx, your author runs a single public web server |
| 36 | that provides transparent name-based virtual hosting for four |
| 37 | separate domains: |
| 38 | |
| 39 | * <p>One is entirely static, not involving any dynamic content or |
| 40 | Fossil integration at all.</p> |
| 41 | |
| 42 | * <p>Another is served almost entirely by Fossil, with a few select |
| 43 | static content exceptions punched past Fossil, which are handled |
| 44 | entirely via nginx.</p> |
| 45 | |
| 46 | * <p>The other two domains are aliases for one another — e.g. |
| 47 | `example.com` and `example.net` — with most of the content being |
| 48 | static. This pair of domains has several unrelated Fossil repo |
| 49 | proxies attached to various sections of the URI hierarchy.</p> |
| 50 | |
| 51 | By using nginx, I was able to do all of the above with minimal |
| 52 | repetition between the site configurations. |
| 53 | |
| 54 | * **Integration** — Because nginx is so popular, it integrates with |
| @@ -64,37 +64,35 @@ | |
| 64 | ## <a name="modes"></a>Fossil Service Modes |
| 65 | |
| 66 | Fossil provides four major ways to access a repository it’s serving |
| 67 | remotely, three of which are straightforward to use with nginx: |
| 68 | |
| 69 | * **HTTP** — Fossil has [a built-in HTTP server](../any/none.md). |
| 70 | While this method is efficient and it’s |
| 71 | possible to use nginx to proxy access to another HTTP server, we |
| 72 | don’t see any particularly good reason to make nginx reinterpret |
| 73 | Fossil’s own implementation of HTTP when we have a better option. |
| 74 | (But see [below](#http).) |
| 75 | |
| 76 | * **SSH** — This method exists primarily to avoid the need for HTTPS, |
| 77 | but we *want* HTTPS. (We’ll get to that [below](#tls).) |
| 78 | There is probably a way to get nginx to proxy Fossil to HTTPS via |
| 79 | SSH, but it would be pointlessly complicated. |
| 80 | |
| 81 | * **CGI** — This method is simple but inefficient, because it launches |
| 82 | a separate Fossil instance on every HTTP hit. |
| 83 | Since Fossil is a relatively small self-contained program, and it’s |
| 84 | designed to start up quickly, this method can work well in a |
| 85 | surprisingly large number of cases. |
| 86 | Nevertheless, we will avoid this option in this document because |
| 87 | we’re already buying into a certain amount of complexity here in |
| 88 | order to gain power. There’s no sense in throwing away any of that |
| 89 | hard-won performance on CGI overhead. |
| 90 | |
| 91 | * **SCGI** — The [SCGI protocol][scgip] provides the simplicity of CGI |
| 92 | without its performance problems. |
| 93 | |
| 94 | SCGI it is, then. |
| 95 | |
| 96 | [scgip]: https://en.wikipedia.org/wiki/Simple_Common_Gateway_Interface |
| 97 | |
| 98 | |
| @@ -102,10 +100,14 @@ | |
| 100 | |
| 101 | The first step is to install some non-default packages we’ll need. SSH into |
| 102 | your server, then say: |
| 103 | |
| 104 | $ sudo apt install fossil nginx |
| 105 | |
| 106 | You can leave “`fossil`” out of that if you’re building Fossil from |
| 107 | source to get a more up-to-date version than is shipped with the host |
| 108 | OS. |
| 109 | |
| 110 | |
| 111 | ## <a name="scgi"></a>Running Fossil in SCGI Mode |
| 112 | |
| 113 | For the following nginx configuration to work, it needs to contact a |
| 114 |