시작하기
sudo apt install nginx -y
systemctl start nginx # 실행
systemctl status nginx # 상태 확인
systemctl stop nginx # 종료
systemctl restart nginx # 재실행
systemctl reload nginx # 재로드(설정파일 변경시)
nginx -t
# 정상
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# 오류
nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/default:22
nginx: configuration file /etc/nginx/nginx.conf test failed
캐싱 설정하기
1. 캐시 설정을 위해 디폴트 설정파일을 복사한 커스텀 파일 생성
cd /etc/nginx/sites-available
cp default custom
vi custom
server {
listen 80 default_server;
listen [::]:80 default_server;
root /app/web;
server_name _;
location / {
try_files $uri $uri/ =404
}
location /file/ {
location ~* \.(plist|apk|ipa)$ {
add_header Cache-Control "no-store";
etag off; # ETag 사용 안함
}
}
}
- location 은 중첩해서 사용 가능하다.
- /file/: /app/web/file 디렉토리 하위에 있는 파일들에 설정 적용
- ~* 정규 표현식이 일치하고 대소문자 구분없이
- .(plist|apk|ipa)$ .plist, .apk, .ipa 로 끝나는 파일
- add_header 로 커스텀한 헤더 설정 가능
- etag off 추가해서 ETag 사용 안하도록 설정
2. 설정파일을 사용하도록 심링크 추가 & 기존 default 설정파일 심링크 삭제
ln -s /etc/nginx/sites-available/custom /etc/nginx/sites-enabled/
rm /etc/nginx/sites-enabled/default
3. 수정된 내용을 nginx에 반영
nginx -t # 설정 파일 오류 확인
systemctl restart nginx
4. 정상적으로 반영되었는지 확인
curl -I localhost/file/manifest.plist
결과
캐싱 비활성화 적용된 경우
- Cache-Control: no-store
- ETag 없음

기본값 그대로 적용된 경우
- Cache-Control 없음
- ETag 있음

참고