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.
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?
Перенаправление 301, скорее всего, исходит от вашего внутреннего сервера в контейнере докера. Он настроен с помощью http: // ...
URL. Настройте сервер приложений в контейнере с правильным URL-адресом.
HTTP 301 означает постоянное перенаправление, а постоянное означает, что кеш браузера всегда подозрительный. (Вот почему я всегда использую HTTP 302 в течение нескольких недель в любой новой версии.) Очистите весь кеш браузера. Кроме того, вы можете найти в Google руководство, как удалить все кешированные ответы 301 в вашем браузере. Они довольно липкие!
По возможности всегда используйте curl -v http: // x
для отладки, он ничего не кэширует.
Очистите кеш и измените значение перенаправления на если ($ sceme = http) { возврат 301 https: // my_website $ request_uri