Eu configurei o Apache para enviar de volta uma resposta 200 sem servir nenhum arquivo com esta linha de configuração
Redirect 200 /hello
Posso fazer isso com Nginx? Não quero servir um arquivo, só quero que o servidor responda com um 200 (estou apenas registrando a requisição).
Eu sei que posso adicionar um arquivo de índice e conseguir a mesma coisa, mas fazê-lo na configuração significa que há uma coisa a menos que pode dar errado.
Sim você pode
Se você quiser retornar um texto HTML formatado , sem servir um arquivo HTML:
Caso queira retornar um texto sem formato html , conforme aponta a resposta:
E se você simplesmente quiser retornar 200:
Só para lembrar:
location
os blocos vão dentro dosserver
blocos. Aqui está um documento para obter mais informações sobre o tópico.PS: Eu tenho uma configuração semelhante (html formatado) rodando em muitos servidores.
Você precisa usar um 204, pois o Nginx não permitirá um 200 sem corpo de resposta. Para enviar um 204, basta usar a diretiva return to
return 204;
no local apropriado.Para completar a resposta do @Martin Fjordval, tenha cuidado se estiver usando essa configuração para fazer uma verificação de integridade.
Embora um
204
código HTTP seja semanticamente perfeito para uma verificação de integridade (indicação de sucesso sem conteúdo), alguns serviços não o consideram um sucesso.Ou seja, tive o problema com os balanceadores de carga do Google Cloud .
De acordo com as definições de código de status, acredito que você queira que seja um 204, e não 200. Os 200 precisam estar com um recurso na resposta, ou eu suspeito que a maioria dos navegadores sensatos ficaria confuso com isso. O outro que você pode usar é o 304, que é para conteúdo em cache.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
Expandindo a resposta @cadmi para um caso específico de configuração do controlador Kubernetes ingress-nginx.
No meu caso, eu só poderia anexar a pequena parte da configuração do Nginx dentro da
location
diretiva.Eu queria adicionar uma mensagem JSON de erro 404 personalizada para uma
if
diretiva específica. Comodefault_type
não é permitido dentro daif
diretiva, criei a adição do "em branco"default_type
fora daif
diretiva eadd_header
dentro daif
diretiva:Sem a
default_type "";
diretivaadd_header
, estava adicionando o segundoContent-Type
cabeçalho em vez de alterar o padrão.