NGINX

nginx — это HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения, изначально написанный Игорем Сысоевым.

Конфиг для https
server {
            listen 443 ssl;
            ssl_certificate /etc/ssl/certs/site.crt;
            ssl_certificate_key /etc/ssl/private/site.key;
            ...

}
Редирект с http на https
server {
            listen 80; 
            server_name wiki.koobik.net; 
            return 301 https://wiki.koobik.net$request_uri; 
}
Конфиг связки с php-fpm
server {
        listen 80;
        root /var/www/;
        index index.php index.html index.htm;
        server_name lab.lan;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:<путь к сокету php-fpm>;
        }
}
Конфиг обратного прокси
### На прокси

server {
        listen 80;
        server_name one.lab.lan;

        location / {
                proxy_pass http://10.20.30.1;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
        }

server {
        listen 80;
        server_name two.lab.lan;

        location / {
                proxy_pass http://10.20.30.2;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
        }
}
### На веб-сервере (прием корректного ip клиента)

server {
            ...
            set_real_ip_from 10.20.30.254;
            real_ip_header X-Real-IP;
            ...
}
Балансировщик нагрузки
server {
        listen 80 default_server;
        server_name _;
        location / {
                proxy_pass http://myservers;
        }
}

upstream myservers {
        server 10.20.30.1:80;
        server 10.20.30.2:80;
        server 10.20.30.3:80;
}