- nginx에서 기본 설정을 작성하는 파일
- 기본 경로는 /etc/nginx/nginx.conf 인 듯 하다
- 설치하고 나면 위와 같은 설정 파일들이 있으며, conf.d 디렉토리에서 각 프로젝트별로 서버 설정을 해주도록 구성되어 있다
기본 소스
server {
listen 80; # 기본 포트는 80
server_name test-test.com; # 여긴 도메인 세팅하는 부분인가? 서버 네이밍
access_log /var/log/nginx/test/test-access.log main; # 액세스 로그 디렉토리
location / {
proxy_pass http:localhost:3000; # 특정 요청을 넘겨버릴때 사용, reverse proxy
# 보통은 nginx 뒷단에 tomcat이 있거나 node express로
include /etc/nginx/proxy_params; # 기본 공통 설정을 추가할때 사용하나 봄
}
}
Multi Domain
- 위 소스를 기본 구조로 가지되, 서버를 나눠서 멀티 도메인 형태로 갖출 수도 있다
# ls -al
... aaa.conf
... bbb.conf
# cat aaa.conf
server {
listen 80;
server_name aaa.com;
access_log /var/log/nginx/aaa/access.log main;
location / {
proxy_pass <http://localhost:8080/aaa/>;
include /etc/nginx/proxy_params;
}
}
# cat bbb.conf
server {
listen 80;
server_name bbb.com;
access_log /var/log/nginx/bbb/access.log main;
location / {
proxy_pass <http://localhost:8080/bbb/>;
include /etc/nginx/proxy_params;
}
}
- 중간에 include /etc/nginx/proxy_params 이 부분은 원래 있었는진 잘 모르겠는데, request에 대한 기본 설정값들을 포함하고 있는걸로 보임
SSL 세팅
- SSL 인증서를 설치를 했다면, nginx에선 443 포트로 SSL 세팅을 할 수 있음
- 업체마다 인증서 파일 포맷이 다른거 같은데, 보통은 인증서와 key로 구성되어 세팅을 해주는듯
server {
listen 80;
server_name www.example.kr;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name www.example.kr;
ssl on;
ssl_certificate /root/example/ssl_certificate.crt;
ssl_certificate_key /root/example/ssl_certificate_key.key;
location / {
proxy_pass <http://127.0.0.1:8000>;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
관련 내용
Reverse Proxy