권한 문제 없이 nginx가 기호 경로에 액세스하도록 하는 방법

권한 문제 없이 nginx가 기호 경로에 액세스하도록 하는 방법

내 문서 디렉토리를 참조하는 nginx 서버 측에 심볼릭 링크 경로를 만들었습니다.

[user1@localhost nginx] pwd 
/user/share/nginx

[user1@localhost nginx] sudo ln -s ~/Documents/nginx-sites/app app
[user1@localhost nginx] ls
lrwxrwxrwx 1 root root   37 Sep 21 14:58 app -> /home/user1/Documents/nginx-sites/app

그런데 nginx 사용자가 해당 파일에 접근할 수 없는 것 같습니다(권한 거부됨)

nginx 오류 로그는 여기에 있습니다-> 2022/09/21 13:35:20 [오류] 20547#20547: *3 open() "/usr/share/nginx/app/public" 실패(13: 권한 거부됨), 클라이언트: 127.0, 서버: localhost, 요청: "GET /app/public HTTP/1.1", 호스트: "localhost"

그래서 난 행동하려고 해통계자료명령을 사용하여http (나의 nignx 사용자)디렉토리에 접근을 시도한 결과는 다음과 같습니다.

// 1'st tried

[user1@localhost nginx]$ sudo -u http stat app/public
stat: cannot statx 'app/public': Permission denied
// 2nd tried -> cd inside subsequently, and perform stat again

[user1@localhost nginx]$ sudo -u http stat app
 File: app -> /home/user1/Documents/nginx-sites/app
  Size: 37              Blocks: 0          IO Block: 4096   symbolic link
Device: 259,2   Inode: 13375664    Links: 1
...

[user1@localhost nginx]$ cd app
[user1@localhost app]$ sudo -u http stat public
File: public
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 259,2   Inode: 11015535    Links: 2
...

결과적으로 첫 번째 시도는 실패했지만 두 번째 시도는 성공했습니다. 왜 이런 문제가 발생합니까? 다음 작품을 만드는 방법은 무엇입니까?

  1. nginx 사용자는 이에 액세스하고 제공할 수 있습니다.
  2. sudo -u http stat app/public이 성공을 반환합니다.
/*For information purpose*/

[user1@localhost ~]$ groups http
user1 http

[user1@localhost ~]$ ls ~/Documents/nginx-sites
drwxr-xr-x 13 user1 user1 4096 Sep 21 14:16 app

[user1@localhost ~]$ ls ~/Documents/nginx-sites/app
drwxr-xr-x  7 user1 user1   4096 Sep 20 21:19 app
-rwxr-xr-x  1 user1 user1   1686 Sep 20 21:19 artisan
drwxr-xr-x  3 user1 user1   4096 Sep 20 21:19 bootstrap
drwxr-xr-x  2 user1 user1   4096 Sep 20 21:19 public

관련 정보