Конфигурация nginx, позволяющая URL-адресам псевдонимов получать доступ к моей текущей ссылке

Моя текущая конфигурация Nginx работает нормально с этим URL: https://myhostname.com/

Но я создал другой псевдоним для того же сервера, скажем, myhostname1

Теперь, когда я пытаюсь получить доступ к URL

https://myhostname1.com/

это выдает ошибку

XMLHttpRequest не может загрузить https://sg-stg-bms-cdn001.eng.vmware.com//scripts/services/appStatusService.js?pingpong=2831234. Заголовок "Access-Control-Allow-Origin" имеет значение " https://myhostname.com/", которое не равно указанному источнику. Поэтому происхождение " https://myhostname1.com/" не разрешено.

И хост myhostname, и myhostname1 указывают на один и тот же IP-адрес и DNS-запись.

Я попытался добавить эту строку в мою конфигурацию nginx, но это, кажется, не работает

   location / {
      add_header 'Access-Control-Allow-Origin' '*';
..........

Но все же это не похоже на работу. Может кто-нибудь, пожалуйста, помогите мне, если я пропал.

2 ответа

Эта ссылка, вероятно, более полезна, чем моя сводка, но: либо "включить (/ path / to / sites-enabled)" в конце документа, и в этом месте есть файл конфигурации с подробным описанием включенных сайтов, либо добавить блоки на каждый -сервер сервера (сервер {порт; путь; имя; и т. д.), он должен быть уже в соответствующем файле для сервера {listen 80; имя_сервера myhostname.com; index index.htm; root /path/to/root/folder}),

В этом сообщении говорится, что ваш запрос нарушает политику безопасности javascript того же происхождения. Если вы заходите на сайт через браузер, это сообщение, вероятно, приходит из браузера, а не из nginx. Политика такого же происхождения в безопасности javascript защищает пользователей от вредоносных веб-сайтов, пытающихся использовать JavaScript браузера для взаимодействия с другими веб-сайтами. Без этой изолированной программной среды вредоносная веб-страница могла бы использовать движок JavaScript браузера для взаимодействия с другими веб-сайтами - возможно, изменить пароль электронной почты пользователя, отредактировать ее страницу в facebook и т. Д.

Вы можете выборочно расширить эту защиту, добавив заголовки http для совместного использования между источниками (CORS). Nginx может сделать это для вас. Вот как:

  1. Если ваш конфиг включает эту директиву, add_header X-XSS-Protection "1; mode=block";, удалите его (или закомментируйте). Это удаляет обеспечение безопасности, которое говорит браузерам запрещать CORS.
  2. Выборочное расширение межсайтовых сценариев путем добавления заголовков CORS к запросам. В блоке местоположения каждого хоста добавьте эти директивы:
    add_header 'Access-Control-Allow-Origin' "$http_origin" always;
    add_header 'Access-Control-Allow-Credentials' 'true' always;
    add_header 'Access-Control-Allow-Methods' 'GET, POST' always;
    add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
    

Использование "$http_origin" ограничивает CORS *.yourdomain.com, но вы также можете использовать 'Access-Control-Allow-Origin' '*' alwaysОткрытие CORS для всех сайтов - более слабая модель безопасности. Более новые версии nginx требуют третьего аргумента (always в этом примере). Вы упускаете это в своей конфигурации.

Другие вопросы по тегам