Ubuntu 20.04 LTS
NGINX 1.18.0
도입
서버의 파일 위치(경로)대로의 URL이 아닌 다른 URL로도 파일을 접근해야 할 경우가 있다. 예를 들어 /var/www/html에 위치한 people.html 파일을 http://00.00.00.00/people.html이 아닌 http://00.00.00.00/api/user로 접근하고자 할 때처럼 말이다.
이럴 때에는 NGINX의 설정에 명시해주면 된다.
경로별 접근 파일 설정
설정 파일 열기
NGINX 설정을 위해 /etc/nginx/sites-enabled에 위치한 default 파일을 수정한다.
콘솔에서 작업한다면 아래와 같이 명령어로 파일을 열면 된다.
$ sudo vi /etc/nginx/sites-enabled/default
설정 파일 수정
server 블록 안 맨 아래에 원하는 경로와 해당 경로 시 접근할 파일을 작성한다.
server {
...
location 원하는_경로 {
# 해당 경로 시 접근 시도할 파일
try_files 파일1 파일2 파일3$is_args$args;
}
}
파일은 띄어쓰기로 구분해 여러개를 지정할 수 있다. 파일1이 없으면 파일2로, 파일2가 없으면 파일3으로 접근하는 식이다.
파일3 뒤에 붙는 $is_args$args는 GET으로 보내는 데이터를 접근 시도할 파일에서도 받고자 할 때 사용한다. 예를 들어 http://00.00.00.00/api/user?id=user_id로 접근한 경우 파일1에서는 id키에 대한 값을 받지 못하지만 파일3에서는 $_GET['id']로 그 값을 받을 수 있다.
예
도입의 예시를 구현해보면 다음과 같다.
server {
...
# 경로 지정
location /api/user {
try_files root /people.html$is_args$args;
}
}
설정 적용
원하는 대로 설정이 완료되었으면 서버를 재시작하여 설정한 것을 적용한다.
# systemctl restart nginx
728x90