>  기사  >  운영 및 유지보수  >  nginx를 사용하여 정적 콘텐츠 제공

nginx를 사용하여 정적 콘텐츠 제공

(*-*)浩
(*-*)浩원래의
2019-11-30 14:37:383380검색

nginx를 사용하여 정적 콘텐츠 제공

중요한 웹 서버 작업은 파일(예: 이미지 또는 정적 HTML 페이지)을 제공하는 것입니다.

요청 시 파일은 /data/www(HTML 파일 포함 가능) 및 /data/images(이미지 포함) 등 다양한 로컬 디렉터리에서 제공됩니다. 이를 위해서는 구성 파일을 편집하고 두 개의 위치 블록을 사용하여 http 블록 내에 서버 블록을 설정해야 합니다. (추천 학습: nginx 사용법)

먼저 /data/www 디렉토리를 생성하고 텍스트 내용이 포함된 index.html 파일을 넣은 다음 /data/images 디렉토리를 생성하고 그 안에 이미지를 넣습니다. 두 개의 디렉토리 생성-

[root@localhost ~]# mkdir -p /data/www
[root@localhost ~]# mkdir -p /data/images
[root@localhost ~]#

위에서 생성한 두 개의 디렉토리에 두 개의 파일을 넣습니다: /data/www/index.html 및 /data/images/logo.png, /data/www/index.html 파일 내용은 다음과 같습니다. 다음과 같이 한 줄만 입력하세요. -

<h2> New Static WebSite Demo.</h2>

다음으로 구성 파일(/usr/local/nginx/conf/nginx.conf)을 엽니다. 기본 구성 파일에는 이미 서버 블록의 여러 예가 포함되어 있으며 대부분은 주석 처리되어 있습니다. 이제 해당 블록을 모두 주석 처리하고 새 서버 블록을 시작합니다.

http {
    server {
    }
}

일반적으로 구성 파일에는 서버가 수신 대기하는 포트와 서버 이름으로 구별되는 여러 서버 블록이 포함될 수 있습니다. nginx는 요청을 처리할 서버를 결정할 때 서버 블록 내에 정의된 위치 지시문의 매개변수에 대해 요청 헤더에 지정된 URI를 테스트합니다.

다음 위치 블록을 서버 블록에 추가합니다.

http {
    server {
        location / {
            root /data/www;
        }
    }
}
위치 블록은 요청의 URI와 비교되는 "/" 접두사를 지정합니다. 일치하는 요청의 경우 루트 지시문(예: /data/www)에 지정된 경로에 URI가 추가되어 로컬 파일 시스템에서 요청된 파일에 대한 경로를 형성합니다. 일치하는 위치 블록이 여러 개 있는 경우 nginx는 위치 블록과 일치하는 접두사가 가장 긴 블록을 선택합니다. 위의 위치 블록은 가장 짧은 접두사 길이인 1을 제공하므로 이 블록은 다른 모든 위치 블록이 일치 항목을 제공할 수 없는 경우에만 사용됩니다.

다음으로 두 번째 위치 블록을 추가합니다.

http {
    server {
        location / {
            root /data/www;
        }
        location /images/ {
            root /data;
        }
    }
}
/images/가 됩니다(location/도 이러한 요청과 일치하지만 접두사가 더 짧습니다. 즉, "/" 길이보다 "/images/"가 길음). 요청.

서버 블록의 최종 구성은 다음과 같아야 합니다.

server {
    location / {
        root /data/www;
    }
    location /images/ {
        root /data;
    }
}

이는 이미 표준 포트 80에서 수신 대기하고 로컬 컴퓨터에서 액세스할 수 있는 서버( http://localhost/ )에 대한 작업 구성입니다. /images/로 시작하는 URI에 대한 요청에 대한 응답으로 서버는 /data/images 디렉터리에서 파일을 보냅니다. 예를 들어, http://localhost/images/logo.png 요청에 대한 응답으로 nginx는 서비스에 /data/images/logo.png 파일을 보냅니다. 파일이 존재하지 않으면 nginx는 404 오류를 나타내는 응답을 보냅니다. /images/로 시작하지 않는 URI에 대한 요청은 /data/www 디렉터리에 매핑됩니다. 예를 들어, http://localhost/about/example.html에 대한 요청에 대한 응답으로 nginx는 /data/www/about/example.html 파일을 보냅니다.

새 구성을 적용하려면 아직 시작하지 않은 경우 nginx를 시작하거나 다음 명령을 실행하여 nginx의 기본 프로세스에 다시 로드 신호를 보내세요.

[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
오류나 예외로 인해 제대로 작동하지 않는 경우 시도해 볼 수 있습니다. /usr/local/ 디렉토리를 보려면 nginx/logs 또는 /var/log/nginx의 access.log 및 error.log 파일에서 이유를 찾으십시오.

브라우저를 열거나 CURL을 사용하여 아래와 같이 Nginx 서버에 액세스합니다. -

nginx를 사용하여 정적 콘텐츠 제공

전체 nginx.conf 파일 구성 내용은 다음과 같습니다.

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  &#39;$remote_addr - $remote_user [$time_local] "$request" &#39;
    # &#39;$status $body_bytes_sent "$http_referer" &#39;
    # &#39;"$http_user_agent" "$http_x_forwarded_for"&#39;;
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    ## 新服务(静态网站)
    server {
        location / {
            root /data/www;
        }
        location /images/ {
            root /data;
        }
    }
}

위 내용은 nginx를 사용하여 정적 콘텐츠 제공의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.