У меня проблема с подключением wordpress через https. Когда я использую HTTP все работает правильно и сайт выглядит следующим образом: port 80 connectionwordpress (nginx) https vs. http (HAproxy)
Когда я добавить HTTPS (порт 443) это выглядит следующим образом: port 443 connection
Вот моя инфраструктура:
Серверы: Centos7 HAproxy: 1.5.4 Wordpress: 4.3.1 (без плагинов) Nginx: 1.6.3
Мой HAproxy конф файл:
chroot /var/lib/haproxy
daemon
group haproxy
log 127.0.0.1 local2
maxconn 4000
pidfile /var/run/haproxy.pid
stats socket /var/lib/haproxy/stats
tune.ssl.default-dh-param 2048
user haproxy
defaults
log global
maxconn 8000
mode http
option redispatch
option forwardfor
option http-server-close
option httplog
retries 3
stats enable
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout check 10s
frontend www
bind *:80
default_backend www-backend
option http-server-close
reqadd X-Forwarded-Proto:\ http
frontend www-https
bind *:443 ssl crt /etc/pki/tls/certs/haproxy.pem
default_backend www-backend
option http-server-close
reqadd X-Forwarded-Proto:\ https
backend www-backend
balance roundrobin
redirect scheme https if !{ ssl_fc }
server wp1 192.168.56.33:80 check
server wp2 192.168.56.34:80 check
Мой nginx.conf файл:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
log_format format_json '{"time": "$time_iso8601", '
'"remote_addr": "$remote_addr, '
'"remote_user": "$remote_user", '
'"body_bytes_sent": $body_bytes_sent, '
'"request_time": $request_time, '
'"status": $status, '
'"request": "$request", '
'"request_method": "$request_method", '
'"http_referrer": "$http_referer", '
'"http_user_agent": "$http_user_agent"}';
access_log /var/log/nginx/access.log format_json;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
Мой wordpres.conf для Nginx:
upstream php {
server 127.0.0.1:9000;
}
server {
listen 80 default_server;
root /var/www/html/wordpress;
index index.php;
server_name wordpress;
location/{
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_pass php;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
Я был бы признателен за любую помощь.