nginx: Excluir subpastas de serem criptografadas por SSL

nginx: Excluir subpastas de serem criptografadas por SSL

Eu configurei meu servidor nginx assim:

server {
   listen 443;
   ssl on;
   ssl_certificate /etc/ssl/certs/example.com.crt;
   ssl_certificate_key     /etc/ssl/private/example.com.key;
   server_name example.com;
   ... other things down here..
}

Como posso excluir diretórios do SSL? Por exemplo, em /static/tour tenho um tour explicando o aplicativo da web e não há necessidade de criptografá-lo.

SO: Ubuntu 10.04

Responder1

Acho que você desejará definir outra configuração de servidor para escutar na porta 80, direcionada para a mesma raiz do documento (e certificar-se de que o aplicativo esteja forçando SSL ou não SSL, dependendo do URL que está sendo acessado, para que o usuário possa ' (apenas exclua o 'S' do HTTPS) ou use algo assim:http://ariejan.net/2011/10/22/automatically-switch-between-ssl-and-non-ssl-with-nginx-unicorn-rails

Responder2

Isto não será possível. Uma solicitação SSL é criptografada, o que significa que o servidor não pode nem dizer a aparência do URI até depois de descriptografar a solicitação. Não há como dizer ao cliente que ele deve enviar solicitações para um determinado subdiretório usando um protocolo não-SSL.

Como disse o Demelziraptor, você pode configurar dois vhosts, um com SSL na porta 443 e outro sem SSL na porta 80.

Você pode facilmente configurar regras de reescrita para que qualquer solicitação /static/tourno vhost SSL cause um redirecionamento para a mesma página no vhost não SSL e vice-versa no vhost não SSL para redirecionar de volta para o vhost SSL.

informação relacionada