Привет! Я пытаюсь настроить Unifi Controller за обратным прокси nginx, чтобы nginx управлял SSL-сертификатами Let's Encrypt. Используя примеры конфигураций из разных постов, мне удалось всё запустить, и оно работает. Но в файле server.log и в логах контроллера входы пользователей отображаются с LocalHost вместо реального IP. Есть ли какие-то особые настройки в Unifi или nginx, о которых стоит знать?
Вот моя конфигурация:
server {
listen 80 default_server;
include /etc/nginx/snippets/letsencryptauth.conf;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
root /var/www/html;
server_name xxxxx.xxxxx.xxxxx;
location /inform {
proxy_pass ;
include /etc/nginx/proxy_params;
}
location / {
return 301 ;
}
}
server {
listen 443 ssl http2;
server_name xxxxx.xxxxx.xxxxx;
ssl on;
ssl_certificate /etc/letsencrypt/live/xxxxx.xxxxx.xxxxx/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxxxx.xxxxx.xxxxx/privkey.pem;
ssl_trusted_certificate /etc/nginx/ssl/default/unifi.pem;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
add_header Strict-Transport-Security "max-age=31536000" always;
server_tokens off;
proxy_ssl_verify off;
proxy_ssl_session_reuse on;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
proxy_cache off;
proxy_store off;
location /wss {
proxy_pass ;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_ssl_verify off;
}
location / {
proxy_pass ;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_intercept_errors on;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
И вот пример вывода из server.log:
[2017-08-07 20:52:50,222] <webapi-157> INFO api - [api] Failed admin login for aa from 127.0.0.1
[2017-08-07 20:52:50,814] <webapi-157> INFO api - [api] api.err.Invalid: /api/login
Я также пробовал аналогично настроить apache — результат тот же. Буду благодарен за помощь. Спасибо!
Вот моя конфигурация:
server {
listen 80 default_server;
include /etc/nginx/snippets/letsencryptauth.conf;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
root /var/www/html;
server_name xxxxx.xxxxx.xxxxx;
location /inform {
proxy_pass ;
include /etc/nginx/proxy_params;
}
location / {
return 301 ;
}
}
server {
listen 443 ssl http2;
server_name xxxxx.xxxxx.xxxxx;
ssl on;
ssl_certificate /etc/letsencrypt/live/xxxxx.xxxxx.xxxxx/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxxxx.xxxxx.xxxxx/privkey.pem;
ssl_trusted_certificate /etc/nginx/ssl/default/unifi.pem;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
add_header Strict-Transport-Security "max-age=31536000" always;
server_tokens off;
proxy_ssl_verify off;
proxy_ssl_session_reuse on;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
proxy_cache off;
proxy_store off;
location /wss {
proxy_pass ;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_ssl_verify off;
}
location / {
proxy_pass ;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_intercept_errors on;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
И вот пример вывода из server.log:
[2017-08-07 20:52:50,222] <webapi-157> INFO api - [api] Failed admin login for aa from 127.0.0.1
[2017-08-07 20:52:50,814] <webapi-157> INFO api - [api] api.err.Invalid: /api/login
Я также пробовал аналогично настроить apache — результат тот же. Буду благодарен за помощь. Спасибо!
