WordPress đàng sau Nginx reverse proxy

Đứng sau Nginx reverse proxy, dường như WordPress không nạp được đầy đủ các file CSS. Giả sử cấu hình Nginx reverse proxy như sau:

server {
  listen       443 ssl;
  server_name  domain.com;
  include ssl.conf;
  access_log /var/log/nginx/reverse-access.log;
  error_log /var/log/nginx/reverse-error.log;
  location / {
    proxy_pass http://192.168.1.200:8000/;
    proxy_redirect          off;
    proxy_set_header        Host            $host;
    proxy_set_header        X-Real-IP       $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size    10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout   90;
    proxy_send_timeout      90;
    proxy_read_timeout      90;
    proxy_buffers           32 4k;
  }

Theo đó, WordPress nằm ở máy cục bộ 192.168.1.200 và lắng nghe port 8000.

Cấu hình trên chưa đủ để WordPress trình bày đúng trên máy người dùng. Chúng ta sửa file wp-config.php trong thư mục wordpress, tìm đến dòng $table_prefix, dán dưới dòng này nội dung sau đây:

if ( (!empty( $_SERVER['HTTP_X_FORWARDED_HOST'])) || (!empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) ) {
  $_SERVER['HTTPS'] = 'on';
} 

Chỉ vậy thôi! Chú ý phải có dòng proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for trong phần cấu hình proxy.

Comments Off on WordPress đàng sau Nginx reverse proxy

Filed under Software

Comments are closed.