Viruleedung vun https op http?

Komesche Problem hei. Ech benotze FullCalendar fir eng ajax Ufro un en Endpunkt op mengem Server ze initiéieren. Endpunkt ass:

https: // my_website / events /? Start = 2019-03-31 & end = 2019-05-12 & _ = 1555698739056

Bedenkt datt et explizit https ass. Wéi och ëmmer, wann ech eng Ufro initiéieren (dat ass, wann Fullcalendar eng Ufro initiéiert), kréien ech en 301 an e Redirect op en net-https Endpunkt:

http: // my_website / events? Start = 2019-03-31 & end = 2019-05-12 & _ = 1555698739056

wat fällt well d'Säit iwwer https gelueden ass.

enter image description here

Den Endpunkt funktionnéiert gutt - wann ech en an de Browser lueden, kréien ech déi erwaart Json Ausgab (via https). Et ginn aner Ajax Ufroen déi op dëser Säit passéieren déi richteg funktionnéieren, an ech maachen erfollegräich genau datselwecht mat Fullcalendar soss anzwousch op dëser Säit (zu engem aneren Endpunkt). Et ass just dësen Szenario deen sech onerwaart verhält.

Wahrscheinlech bemierkenswäert ass dat an engem Docker Container hannert nginx Reverse Proxy / Load Balancer; Site config ass relativ einfach:

upstream docker {
    server localhost:8701;
    server localhost:8702;
  }

server {
    server_name my_website;
    location / {
      proxy_pass http://docker;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
      # proxy_set_header                HTTP_Country-Code $geoip_country_code;
        proxy_pass_request_headers      on;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/my_website/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/my_website/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
    if ($host = my_website) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    server_name my_website;
    return 404; # managed by Certbot

}

An den nginx Protokoll vun der Ufro ass esou:

134.124.11.91 - - [19 / Apr / 2019: 13: 49: 49 -0500] "GET / events /? start = 2019-04-28 & end = 2019-06-09 & _ = 1555699678658 HTTP / 1.1 "301 0" https: // my_website "" Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML , wéi Gecko) Chrome / 73.0.3683.103 Safari / 537.36 "

Gesäit iergendeen eppes wat ech vermësst wat dës komesch 301 Redirect op en net-https Endpunkt verursaache géif?

3
задан 19 April 2019 в 22:10
3 ответа

Перенаправление 301, скорее всего, исходит от вашего внутреннего сервера в контейнере докера. Он настроен с помощью http: // ... URL. Настройте сервер приложений в контейнере с правильным URL-адресом.

3
ответ дан 3 December 2019 в 06:26

HTTP 301 означает постоянное перенаправление, а постоянное означает, что кеш браузера всегда подозрительный. (Вот почему я всегда использую HTTP 302 в течение нескольких недель в любой новой версии.) Очистите весь кеш браузера. Кроме того, вы можете найти в Google руководство, как удалить все кешированные ответы 301 в вашем браузере. Они довольно липкие!

По возможности всегда используйте curl -v http: // x для отладки, он ничего не кэширует.

0
ответ дан 3 December 2019 в 06:26

Очистите кеш и измените значение перенаправления на если ($ sceme = http) { возврат 301 https: // my_website $ request_uri

0
ответ дан 3 December 2019 в 06:26

Теги

Похожие вопросы