문제를 해결하는 방법을 찾으려고 여기에서 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
. 하지만 alias
uri를 사용하면 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
더보기여기.