Реагировать приложение с wordrpess на nginx не будет работать на HTTPS - PullRequest
1 голос
/ 25 февраля 2020

Я создаю приложение React с сайтом WordPress. Это должно работать следующим образом:

example.com -> Приводит меня к моему приложению реагирования example.com/blog -> Принимает меня в мой блог WordPress.

У меня работает EC2 с nginx использование обратного прокси-сервера для перенаправления пользователей в мой блог WordPress. И мой конфиг такой:

  listen 80;
  listen 443 http2 ssl;
  listen [::]:443 http2 ssl;

  server_name example.com;

  root /var/www/react-app/react-app/build;
  index index.html;

  access_log off;
  error_log /var/log/nginx/react-app.error.log;

  location ^~/blog {
   proxy_pass https://54.175.178.245;
   proxy_set_header Host $host;
   #proxy_set_header X-Real-IP $remote_addr;
   #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
  }


  location / {
    try_files $uri /index.html =404;
  }

   location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {

     expires 365d;

  }

  location = /favicon.ico {
    alias /var/www/react-app/react-app/build/favicon.ico;
  }

}

У меня проблема в том, что он работает правильно, когда я использую IP-адрес моего сервера, но не работает, когда я go to example.com

Это просто не будет перенаправлять меня в мое приложение WordPress.

Важно отметить, что если я вхожу непосредственно в example.com/blog в режиме инкогнито, он работает правильно.

Я что-то не так делаю?

РЕДАКТИРОВАТЬ:

Хорошо, на самом деле эти две строки не нужны:

listen 443 http2 ssl;
listen [::]:443 http2 ssl;

Я управляю своими SSL-сертификатами через ELB на AWS, что подключен к моему серверу EC2.

Сейчас моя конфигурация сервера, кажется, работает, так как она работает правильно, если я использую cURL. Если я запрашиваю example.com/blog от cURL, он работает правильно. Но он не работает правильно в моем браузере.

1 Ответ

0 голосов
/ 25 февраля 2020

вы не можете смешивать 80 и 443 в одном блоке, особенно если вы хотите изменить прокси https

{
    listen 443 http2 ssl;
    listen [::]:443 http2 ssl;

    server_name *.example.com;

    root /var/www/react-app/react-app/build;
    index index.html;

    ssl_...
    ...

    access_log off;
    error_log /var/log/nginx/react-app.error.log;

    location /blog/ { # the end trailing slash is important
        proxy_pass https://54.175.178.245/blog;
        proxy_set_header Host $host;
        #proxy_set_header X-Real-IP $remote_addr;
        #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location / {
      try_files $uri /index.html =404;
    }

     location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
       expires 365d;
    }

    location = /favicon.ico {
      alias /var/www/react-app/react-app/build/favicon.ico;
    }
}
...