nginx — это HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения, изначально написанный Игорем Сысоевым.
server {
listen 443 ssl;
ssl_certificate /etc/ssl/certs/site.crt;
ssl_certificate_key /etc/ssl/private/site.key;
...
}
server {
listen 80;
server_name wiki.koobik.net;
return 301 https://wiki.koobik.net$request_uri;
}
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;
}