반응형
nginx 구성
#기본 경로
/etc/nginx
#메인 설정
/etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
#설정 값 경로 -> alphabetical order로 설정파일 읽음
/etc/nginx/conf.d
#nginx -T 로 설정값 읽는 순서 파악 가능
reverse proxy로서의 역할
- server side proxy; client와 백엔드 사이에서 연결 중재
- server블락 안의 proxy_pass 지시문
- 연결이 끊어지기 전에 연결을 닫고, 백엔드에 대한 새 연결을 하는데, 도중에 original 정보 손실 가능성 있음
- 클라이언트 정보(ip, request, etc) 캡처 후 연결 종료
- 백엔드로 새 연결 시 기존 정보를 헤더(proxy_set_header)에 담아서 전달
- 웹서버 역할도 하고 애플리케이션을 호스팅도 하면서 프록시역할도 함
location / {
proxy_pass http://127.0.0.1:8080;
}
이것이 기본적인 구문이다. 즉, 현재 서버에 / 로 시작하는 path로 접근하면, http://127.0.0.1:8080 으로 return 한다는 의미이다. 그러면 실제 사용자는 8080 포트에 접근하지 않았지만 8080 포트에 접근한 것과 동일한 효과가 발생한다.
nginx는 클라이언트가 접근한 path를 보고, 가장 적합한 location의 블럭으로 요청을 보내서 처리하게 된다. 주소에 대한 규칙 및 우선순위는 다음과 같다.
- = : 정규식이 정확하게 일치
- location = /admin { . . . }
- ^~ : 정규식 앞부분이 일치
- location ^~ /admin { . . . }
- ~ : 정규식 대/소문자 일치
- location ~ /admin/ { . . . }
- ~* : 대/소문자를 구분하지 않고 일치
- location ~* .(jpg|png|gif)
- / : 하위 일치(prefix match)
- location /admin { . . . }
예시는 아래 링크로 첨부한다.
default.conf수정
새로운 로그파일에 해더 찍도록 설정
sudo nginx -s reload
conf파일을 수정한 경우 위 명령어로 반드시 리로드를 해줘야 한다.
참고: 원문 https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
728x90
반응형
'서버 세팅 & tool > nginx' 카테고리의 다른 글
[이슈해결][apache] 304 NOT_MODIFIED (0) | 2023.10.12 |
---|---|
[nginx] WAF (0) | 2022.03.30 |
[nginx] API gateway (0) | 2022.03.14 |
[nginx] 실전 cors 해결하기 (0) | 2022.03.14 |
[nginx] load balancing (0) | 2022.03.11 |