해결책을 찾는 데 어려움을 겪고 있습니다. 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
}
}