Nginx Ubuntu 14.04에서 여러 애플리케이션 호스팅

Nginx Ubuntu 14.04에서 여러 애플리케이션 호스팅

해결책을 찾는 데 어려움을 겪고 있습니다. NGINX를 실행하는 Ubuntu 14.04 시스템이 있습니다. 다음 2개의 폴더를 호스팅하고 싶습니다.

/var/www/apphost.comp.ill.com/app1/home/index.html /var/www/apphost.comp.ill.com/app2/index.html

"apphost.comp.ill.com/app1"에 접속할 때 app1의 인덱스 파일을 열고, "apphost.comp.ill.com/app2"에 접속할 때 app2의 인덱스 파일을 열고 싶습니다.

이를 달성하려면 "/etc/nginx/sites-available/apphost.comp.ill.com"을 편집해야 한다고 생각하지만 방법을 알 수 없는 것 같습니다. 여러 가지 접근 방식을 시도하고 온라인으로 검색했지만 해결책을 찾을 수 없습니다. 현재 내 파일은 다음과 같습니다.

server {
    listen 80;
    listen [::]:80;

    root /var/www/apphost.comp.ill.com/app1/home;     
    index index.html index.htm home home.html;

    # Make site accessible from http://localhost/
    server_name apphost.comp.ill.com;

    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
    }

apphost.comp.ill.com을 방문하면 app1에서 작동합니다. "apphost.comp.ill.com/app1"로 이동하면 어떻게 작동하게 하고 "apphost.comp.ill.com/app2"로 이동하면 작동하도록 app2를 추가할 수 있나요?

도와주세요. 감사해요

답변1

나는 이것을 시도했고 작동합니다 :

server {
    listen 80;
    listen [::]:80;

    index index.html index.htm home home.html;

    # Make site accessible from http://localhost/
    server_name apphost.comp.ill.com;

    location /app1 {
            # we need to use alias here to strip the "app1" from 
            # the requested path
            alias /var/www/apphost.comp.ill.com/app1/home;

            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
    }    
    location /app2 {
            # we don't need an alias here because app2 matches the
            # directory structure
            root /var/www/apphost.comp.ill.com/;

            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
    }
}

테스트에서.../app1로 탐색하는 것이 작동하지 않았기 때문에 앞에 슬래시 없이 /app1 및 /app2를 사용하는 것이 좋습니다.

별칭 명령에 대한 문서:http://nginx.org/en/docs/http/ngx_http_core_module.html#alias

답변2

편집 : 이 답변은 잘못되었습니다, "location" 다음 부분이 문서 루트에 추가되기 때문입니다. (예: nginx가 /var/www/apphost.comp.ill.com/app1/home/app1/index.html 파일을 열려고 시도합니다.) 먼저 시도해 보지 않고 게시하면 안 됐습니다. 죄송합니다.

시도해 보셨나요:

server {
    listen 80;
    listen [::]:80;

    index index.html index.htm home home.html;

    # Make site accessible from http://localhost/
    server_name apphost.comp.ill.com;

    location /app1/ {
            root /var/www/apphost.comp.ill.com/app1/home;
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
    }    
    location /app2/ {
            root /var/www/apphost.comp.ill.com/app2;
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
    }
}

관련 정보