루트와 별칭의 차이점에 대한 nginx

不言
풀어 주다: 2023-04-02 20:10:02
원래의
2703명이 탐색했습니다.

이 글은 주로 nginx에 대한 루트와 별칭의 차이점을 소개합니다. 이제는 모든 사람과 공유합니다. 필요한 친구들이 참고할 수 있습니다.

결론

구성 데모:

location xxx {
    root yyy
}
로그인 후 복사

브라우저 액세스 xxx, 실제 액세스는 yyy/xxx
브라우저가 xxx/abc.html에 액세스하고, 실제 액세스가 yyy/xxx/abc.html입니다.
브라우저가 xxx/ccc/abc.html에 액세스하고, 실제 액세스가 yyy/xxx/ccc/abc입니다. .html

결론: 루트 속성은 루트 값(여기서는 yyy)을 액세스 경로(위치)에 추가합니다

데모 구성:

locaiton xxx {
    # alias必须以 / 结束,否则无效
    alias yyy/ 
}
로그인 후 복사

브라우저 액세스 xxx, 실제 액세스는 yyy
브라우저 액세스 xxx/abc입니다. .html, 실제 액세스는 yyy/abc.html
브라우저가 xxx/ccc/abc.html에 액세스하고, 실제 액세스는 yyy/ccc/abc.html

결론: alias 속성은 alias 값을 변경합니다(여기서는 yyy) 대체 액세스 경로 일치 부분(여기서는 xxx)

Example

nginx의 디렉터리 구조는 다음과 같습니다.

nginx/
    -html/
        -index.html
    -logs/
        - access.log
    -conf/
        -nginx.conf
로그인 후 복사

1) 이 구성은 http://localhost:8086/access.log에서 볼 수 있습니다. nginx로 이동 /logs/access.log이지만 html 디렉터리의 문서에 액세스할 수 있을 것으로 예상하지 마세요

server {
    listen       8086;
    server_name  localhost;
    location / {
        root   logs;
    }
}
로그인 후 복사

2) 이 구성으로 http://localhost:8086/log/access.log를 방문하면 볼 수 있습니다. nginx/logs/access.log;
http://localhost:8086/을 방문하면 nginx/html/index.html을 볼 수 있습니다

server {
    listen       8086;
    server_name  localhost;
    location / {
        root   html;
        index  index.html index.htm;
    }
    # 配置成 location /log/ 或 location /log 都可以
    location /log/ {
        # 不能写成logs, 必须已 / 结束
        alias logs/;
        # 以下配置没用也可以,只是方便你输入 localhost:8086/log/ 后能,看到nginx/logs/目录下的所有文件
        autoindex on;
    }
}
로그인 후 복사

3) 이 구성으로 http://localhost:8086/logs/access를 방문하세요. .log, nginx/logs/access.log 볼 수 있음;
http://localhost:8086/ 방문, nginx/html/index.html

server {
    listen       8086;
    server_name  localhost;
    # http://localhost:8086/ 访问的是
    # nginx/html/  (然后会自动显示 index.html 或 index.htm,如果存在这两个文件之一)
    # 啰嗦的注释: nginx/html(html是root的值)/(/是location的值)
    location / {
        root   html;
        index  index.html index.htm;
    }
    # http://localhost:8086/logs/ 访问的是
    # nginx/./logs/
    # .是root的值,logs是location的值
    # 请与第4种错误配置进行比较,深入理解root属性
    location /logs/ {
        # 写成./也可以
        root .;
    }
}
로그인 후 복사

4) 잘못된 구성

server {
    listen       8086;
    server_name  localhost;
    location / {
        root   html;
        index  index.html index.htm;
    }
    # 这样子配置是错的, 请与第三种配置比较一下
    # 关键点:root属性会把root的值加入到最终路径之前
    # 即: http://localhost:8086/logs/access.log访问的是:
    # nginx/logs/logs/access.log
    # 因为: nginx/logs(root的值)/logs(locaition的值)/access.log,
    location /logs/ {
        root /logs/;
    }
}
로그인 후 복사

발췌: https://www .cnblogs.com/zhang... 이 단락: 루트 속성으로 지정된 값이 최종 경로에 추가되므로 액세스한 위치가 루트 값/위치 값이 됩니다. 그리고 액세스한 URI를 경로에 추가하고 싶지 않습니다. 따라서 URI를 버리고 별칭으로 지정된 위치에 직접 액세스하는 별칭 속성을 사용해야 합니다.

위 내용은 모두의 학습에 도움이 되기를 바랍니다. PHP 중국어 웹사이트를 주목하세요!

관련 권장 사항:

XHProf를 사용하여 PHP 성능 병목 현상을 분석하는 방법 2

위 내용은 루트와 별칭의 차이점에 대한 nginx의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿