Nginx 여러 위치

Nginx 여러 위치

문제를 해결하는 방법을 찾으려고 여기에서 5시간을 보냈지만 할 수 없습니다.

다음과 같은 dir 구조가 있다고 가정합니다.

/var/www/key1
/var/www/key1/wwwdir
/var/www/key1/dir1
/var/www/key1/dir2

또 하나 있다

/var/www/key2
/var/www/key2/wwwdir
/var/www/key2/dir1
/var/www/key2/dir2

예를 들어, 내가 입력할 때 원하는 것은http://mysite.com/key1/var/www/key1/wwwdir내가 입력하는 동안 파일 가져오기http://mysite.com/key2다음에서 파일 가져오기/var/www/key2/wwwdir

내 모든 nginx 구성은 다음과 같습니다"keys"

server {
    listen       80;

    include /etc/nginx/conf.d/*.conf;

    location ~ /\.ht {
            deny all;
    }
}

key1.conf는

location ~/key2 {

    chunked_transfer_encoding off;
    index index.php index.html index.htm;
    alias /var/www/key2/wwwdir;

    location ~* \.php$ {


        try_files $uri = 404;
        fastcgi_index   index.php;
        fastcgi_pass unix:/var/php-fpm/key2.sock;
        include /etc/nginx/fastcgi_params;
        fastcgi_keep_conn on;
        fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }
}

이것은 작동하지 않습니다. 다음 URL을 요청하면http://mysite.com/key2알겠어요잘못된 게이트웨이 오류입니다.

/var/log/nginx/error.log오류가 있습니다 /var/www/key2/wwwdir/key2/index.php that file does not exists(key2가 2번 존재하는데 이유를 모르겠습니다).

내가 입력하는 동안

http://mysite.com/key2에서 파일을 받고 싶습니다 /var/www/key2/wwwdir.

예:

http://mysite.com/key2 => /var/www/key2/wwwdir
http://mysite.com/key2/admin => /var/www/key2/wwwdir/admin

물론 다른 가상 호스트 키와 동일하길 원합니다1

답변1

alias대신 사용해야 합니다 root.

설명: root뒤에 uri를 사용 하면 location에 추가되므로 rootdir두 번 나타납니다 key2. 하지만 aliasuri를 사용하면 location추가되지 않습니다.

예를 들어:

location /test {
  root /wwwdir/mydir;
}

제공하다.example.com/test/index.html/wwdir/mydir/test/index.html

location /test {
  alias /wwwdir/mydir;
}

서비스 example.com/test/index.html(일부 없음) /www/mydir/index.html.test

더보기여기.

관련 정보