Nginx reconfigurar para dir específico

2

Tenho que admitir que sou completamente novo em WebServers e agora tento descobrir como configurar meu nginx (para uso doméstico). Eu já estou executando um rutorrent de serviço da web no meu nginx com a estrutura padrão. Agora quero mudar a estrutura do diretório para:

/usr/share/nginx/html/        (should contain the default-config)
/usr/share/nginx/rtorr_dir/   (should contain the rutorrent-content)

Meu objetivo é: no meu navegador, quero inserir 192.168.0.2/rutorrent e isso deve acessar automaticamente no rtorr_dir . Eu tentei o seguinte:

server {
        listen *:80;

    access_log  /var/log/nginx/access.log info;
    error_log   /var/log/nginx/error.log debug;
    auth_basic      "ruser";
    auth_basic_user_file    /etc/users.htpasswd;

        location /rutorrent {
          rewrite /rutorrent/(.*) /$1 break;
          root /usr/share/nginx/rtorr_dir;
          index index.php index.html;
        }

        location /RPC1 {
          include /etc/nginx/scgi_params;
          scgi_pass backend2;
        }
        location ~  \.php$ {
          fastcgi_split_path_info ^(.+\.php)(.*)$;
          fastcgi_pass   backend;
        ....

Eu tentei também location / e outras variações, mas obviamente não as adequadas :(. Então, minha pergunta seria

  • Como configurar a reescrita corretamente?
  • Qual é a mudança, quando a raiz já inclui alguma parte da URL? (por exemplo, rtorr_dir)
  • Preciso alterar para os outros locais também, ou isso é levado automaticamente para os arquivos subjacentes (por exemplo, php)?
por LeO 04.10.2013 / 12:29

1 resposta

1

Você pode usar a diretiva alias no seu caso de uso. Ref: link

Então,

location /rutorrent {
  alias /usr/share/nginx/rtorr_dir;
}

Deve funcionar. Você ainda pode precisar de index e diretivas.

Do I need to change for the other locations as well something, or is this taken automatically for the underlying files (i.e. php)?

Como você usa vários locais, recomendo usar location ~* \.php$ { em cada um desses locais. Por exemplo ...

location /rutorrent {
  alias /usr/share/nginx/rtorr_dir;
  try_files $uri $uri/ /index.php;

  location ~* \.php$ {
    # directives to process PHP
  }
}

location /another_random_location {
  alias /usr/share/nginx/another_random_directory;
  try_files $uri $uri/ /index.php;

  location ~* \.php$ {
    # directives to process PHP
  }
}

Se você mantiver um bloco de localização PHP ao lado de outros blocos de localização, o bloco PHP só obterá seu caminho da diretiva root definida para o bloco server . A maneira mais segura é incluir o bloco de localização do PHP em cada local que precisa processar o PHP.

Espero que ajude.

    
por 04.10.2013 / 13:43

Tags