Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| sailing:nginx [2023/11/30 19:05] – willy | sailing:nginx [2024/02/01 07:00] (current) – removed willy | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Prev to: [[sailing: | ||
| - | Next to: [[sailing: | ||
| - | |||
| - | ---- | ||
| - | ====== The Reverse Proxy concept ====== | ||
| - | |||
| - | Most of the tools described in these pages have web-based interfaces. It is **not** a good idea to access them directly for quite many reasons: | ||
| - | * Scalability, | ||
| - | * Security, since the tools don't come with a fully featured web server | ||
| - | * Access control, since the tools don't come with a fully featured web server | ||
| - | * Configuration, | ||
| - | * Organization, | ||
| - | |||
| - | In other words, you want a reverse-proxy even if you are going to use this setup only from inside your home. More so, if you plan to have remote access, a reverse-proxy is a must. But what is a reverse-proxy? | ||
| - | |||
| - | There are lots of possible software to use. Basically any web server can act as a reverse proxy. Some are more suited than others, and my choice is on NGINX for a few reasons: | ||
| - | * Much easier than [[https:// | ||
| - | * Much lighter and less features full than Apache | ||
| - | * More complex and more features than [[https:// | ||
| - | * Fully integrated in [[https:// | ||
| - | * I don't personally know how to setup other similar tools | ||
| - | |||
| - | In general NGINX is fully featured but still very lightweight and secure HTTP server that shines as reverse-proxy. If you need to add more features, like [[https:// | ||
| - | |||
| - | |||
| - | ===== Installing NGINX ===== | ||
| - | NGINX installation on the home server is pretty straightforward, | ||
| - | |||
| - | So create the file **/ | ||
| - | < | ||
| - | app-misc/ | ||
| - | www-servers/ | ||
| - | </ | ||
| - | |||
| - | (the first line is needed at the time of writing this page, YMMV) | ||
| - | |||
| - | Note: you might want to tweak the second line to your needs, see the [[https:// | ||
| - | |||
| - | Now install nginx: | ||
| - | <code bash> | ||
| - | > emerge -v nginx | ||
| - | </ | ||
| - | |||
| - | ==== NGINX pam_auth ==== | ||
| - | |||
| - | I think it's nice that with NGINX you can authenticate your users directly with your home server users. This means you don't need to add a second set of users, and that the users will only need one password, and no sync is required between HTTP users and server users. This is achieved using the **pam_auth** module on Linux. You have already built nginx with pam_auth support, but you need to configure it. | ||
| - | |||
| - | Create the file ** | ||
| - | |||
| - | ==== NGINX main configuration ==== | ||
| - | |||
| - | |||
| - | |||
| - | ==== Generate SSL certificates for HTTPS ==== | ||
| - | |||
| - | |||
| - | |||
| - | ---- | ||
| - | Next to: [[sailing: | ||
| - | |||
| - | Prev to: [[sailing: | ||