redireciona um serviço web localhost para https por nginx

3

Estou tentando redirecionar um serviço da Web fossil-scm pelo nginx seguro. Mas eu não sei quais são as configurações adequadas e como verificar o log de erros.

Desejo que, com essa configuração, eu possa usar

https://test.example.com/fossil/a/b/c

em vez de

http://test.example.com:8888/a/b/c

A mensagem de erro mostra "página não encontrada".

Aqui está o meu arquivo de configurações nginx.

upstream fossil_server {
  server localhost:8888 fail_timeout=0
}

server {
  listen 80;
  server_name test.example.com;
  return 301 https://$server_name$request_uri;
}
server {
  listen 443 default ssl;
  server_name test.example.com;
  ssl_certificate /etc/ssl/server.crt;
  ssl_certificate_key /etc/ssl/server.key;
  ssl_session_cache  builtin:1000  shared:SSL:10m;               
  ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;                          
  ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';                  
  ssl_prefer_server_ciphers on;                                  
  ssl_session_cache shared:SSL:10m;                                
  add_header Strict-Transport-Security max-age=63072000;           
  add_header X-Frame-Options DENY;                                 
  add_header X-Content-Type-Options nosniff;                       
  location / {
    ...
  }
  location ^~ /fossil/ {
    proxy_pass http://fossil_server;
  }
}
    
por Daniel YC Lin 29.12.2015 / 11:04

1 resposta

1

Sua configuração atual está mapeando https://test.example.com/fossil/a/b/c para o upstream /fossil/a/b/c . Para remover o /fossil inicial, você precisa adicionar um / à direita. Experimente:

location ^~ /fossil/ {
    proxy_pass http://fossil_server/;
}

Veja este documento para detalhes.

    
por 29.12.2015 / 11:23

Tags