Возможно ли / как я могу сконфигурировать блок местоположения Nginx для прокси на разные бэкэнды в зависимости от метода запроса (т.е. GET / POST)?
Причина в том, что в настоящее время я работаю с двумя методами по двум разным URL-адресам (один через http-прокси, а другой - через fcgi) и пытаюсь сделать его более "ОТДЫХАМ", поэтому в идеале хотелось бы, чтобы GET установил ресурс для возврата списка , в то время как размещение на том же ресурсе следует добавить в список.
if
обычно не рекомендуется в документации Nginx: nginx.com/resources/wiki/start/topics/depth/ifisevilХотя вы могли бы добиться этого с помощью
if
, это, как правило, не одобряется документацией Nginx , потомуif
что не подходит для других директив. Например, предположим, что GET должен быть открыт для всех, а POST - только для аутентифицированных пользователей, использующих HTTP Basic Auth. Это должноif
быть связано сauth_basic
, что не работает должным образом.Вот альтернатива, которая работает без
if
. Хитрость заключается в том, чтобы использовать «GET» и «POST» как часть вышестоящих имен, чтобы они могли быть решены путем подстановки переменных:Чтобы объединить это с HTTP Basic Auth для всего, кроме GET, просто добавьте
limit_except
блок:источник
Это то, что я сделал, чтобы все работало на меня
источник