Конфиг nginx
upstream wp {
server 10.1.2.2(тут можно прописать порт например «:8080»);
server 10.1.2.3;
}
server {
listen 80;
server_name test.ru;
return 301 https://test.ru$request_uri;
access_log /var/log/nginx/test.ru-access.log;
error_log /var/log/nginx/test.ru-error.log;
location / {
proxy_pass http://wp;
}
}
server {
listen 443 ssl;
server_name test.ru;
access_log /var/log/nginx/test.ru-access.log;
error_log /var/log/nginx/test.ru-error.log;
ssl_certificate /etc/letsencrypt/live/test.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/test.ru/privkey.pem;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
add_header Strict-Transport-Security «max-age=31536000»;
location / {
proxy_pass http://wp;
#обращение к ноде будет по http. хотя используется https. http быстрее обрабатывать, не нужен сертификат, не нужно копировать сертификат. Меньше ресурсов затрачивается.
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Важно!
в файле wp-config.php добавить строку:
if (strpos($_SERVER[‘HTTP_X_FORWARDED_PROTO’], ‘https’) !== false) $_SERVER[‘HTTPS’]=’on’;
тогда будет контент правильно отдаваться по https.
php скрипт для тестирования работы нод:
«<?php»
header( ‘Content-Type: text/plain’ );
echo ‘Host: ‘ . $_SERVER[‘HTTP_HOST’] . «\n»;
echo ‘Remote Address: ‘ . $_SERVER[‘REMOTE_ADDR’] . «\n»;
echo ‘X-Forwarded-For: ‘ . $_SERVER[‘HTTP_X_FORWARDED_FOR’] . «\n»;
echo ‘X-Forwarded-Proto: ‘ . $_SERVER[‘HTTP_X_FORWARDED_PROTO’] . «\n»;
echo ‘Server Address: ‘ . $_SERVER[‘SERVER_ADDR’] . «\n»;
echo ‘Server Port: ‘ . $_SERVER[‘SERVER_PORT’] . «\n\n»;
«»?>»»