172 похожих чатов

Да, не так давно задавал вопрос о CORS как настроить,

в итоге у меня завелась такая конструкция, кому надо пользуйтесь!
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/enable-access-log: "true"
nginx.ingress.kubernetes.io/enable-rewrite-log: "true"
nginx.ingress.kubernetes.io/proxy-body-size: 100m
ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/configuration-snippet: |-
if ($http_origin ~* (https?://.*\.site\.com)) {
set $allow_origin $http_origin;
}
more_set_headers 'Access-Control-Allow-Origin: $allow_origin';
more_set_headers 'Access-Control-Allow-Credentials: true';
more_set_headers 'Access-Control-Allow-Methods: PUT, GET, PATCH, DELETE, POST, OPTIONS';
more_set_headers 'Access-Control-Allow-Headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
# Cors Preflight methods needs additional options and different Return Code - UPDATED
if ($request_method = 'OPTIONS') {
more_set_headers 'Access-Control-Max-Age: 1728000';
more_set_headers 'Content-Type: text/plain charset=UTF-8';
more_set_headers 'Content-Length: 0';
return 204;
}
name: ui-https-cors-ing
spec:
tls:
- hosts:
- ui.site.com
secretName: fullchain
rules:
- host: ui.site.com
http:
paths:
- path: /
backend:
serviceName: node-user-info-svc
servicePort: 8080

13 ответов

18 просмотров

Ты его знаешь ?

Антон Сенько
Знаю, а что

Помоги ему напрямую

что же творят люди =). При переезде на другой контроллер ingress все перестанет работать. Почему бы это не отдать на откуп приложению, пусть само этими корсами рулит, даже балально через nginx sidecar + будет вероятность сломать сниппетами конфигурацию ingress nginx гораздо ниже

Dmitry Sergeev 🇺🇦
что же творят люди =). При переезде на другой конт...

поддержу, обычно само приложение умеет правильные CORS-заголовки выставлять, многие зачем-то пытаются переопределить их на nginx-ingress-controller

а зачем кстати more_set_headers а не провославный и нативный add_header. more_set_headers он же нужен для того, чтобы несколько заголовков в одну опцию накидывать, а у вас по заголовку на одну опцию, то есть тоже самое что и при add_header. Можно просто заменить на add_header и будет тоже самое.

𝚔𝚟𝚊𝚙𝚜
поддержу, обычно само приложение умеет правильные ...

+++ а если не умеет, то надо пнуть прогеров чтобы научили, или sidecar c nginx втыкать. Если уж приложение требует спец. заголовки, то пусть их и выставляет само. Тащить это на балансировку L7 нет причин.

Dmitry Sergeev 🇺🇦
+++ а если не умеет, то надо пнуть прогеров чтобы ...

у меня кстати была ситуация. Прилетела задача - добавить Access-Control-Allow-Origin. И прогеру прилетела задача сделать тоже самое. И мы оба сделали, я на балансировщике, он на бэкенде. В итоге получили дублирующийся Access-Control-Allow-Origin. А многие браузеры ой как такое не любят, и часть запросов сломалась. С тех пор, любые заголовки, которые требуются приложению выставляются в нем же. А на балансировщике только всякая мета информация, которая приложением не используется, или не влияет на его работоспособность.

Joe-Lomakin Автор вопроса
Dmitry Sergeev 🇺🇦
+++ а если не умеет, то надо пнуть прогеров чтобы ...

Спасибо, в ПН на планерке пну нодеров, пусть поправят))))

Dmitry Sergeev 🇺🇦
у меня кстати была ситуация. Прилетела задача - до...

Часто люди не понимают разницы между вебсервером и реверс прокси. И если у вас нджинкс работает в режиме вебсервера, то приложение не всегда получает все запросы (отдача статики шлёт привет). Поэтому иногда установку некоторых заголовков приходится выносить в вебсервер

Joe Lomakin
Спасибо, в ПН на планерке пну нодеров, пусть попра...

Только аргументов собери - почему плохо так делать

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

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта