반응형
proxy 설정
http {
...
upstream was_server {
server localhost:8080;
}
...
server {
...
# 모든 URL에 대해서 was_server로 proxy
location / {
access_log /home/ubuntu/logs/access.tomcat.log;
proxy_pass http://was_server;
proxy_set_header Host $host;
# proxy_http_version 1.1; # 426 upgrade required 오류 응답이 올 경우 설정 필요
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header Access-Token $arg_accessToken; # accessToken 파라미터값을 Access-Token 헤더값으로 세팅
}
...
}
}
정적 파일 서비스 설정
http {
...
server {
...
# 요청 : http://localhost/test.html
# 반환 : /home/ubuntu/deploy/resources/test.html
location ~* \.(.*) {
access_log /home/ubuntu/logs/access.resources.log;
root /home/ubuntu/deploy/resources;
}
# 요청 : http://localhost/resources/test.html
# 반환 : /home/ubuntu/deploy/resources/test.html
location /resources {
access_log /home/ubuntu/logs/access.resources.log;
root /home/ubuntu/deploy;
}
...
}
...
}
SSL 설정
- OpenSSL로 인증서, 키 생성 후 설정 적용
mkdir -p ~/ssl && cd ~/ssl \
&& openssl req -new -newkey rsa:2048 -nodes -keyout cert.key -out cert.csr \
&& openssl x509 -req -days 3650 -in cert.csr -signkey cert.key -out cert.pem \
&& openssl rsa -in cert.key -out cert.key \
&& sudo mv ~/ssl /home/ubuntu/app/nginx/conf
http {
...
server {
listen 80;
server_name localhost;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /home/ubuntu/app/nginx/conf/ssl/cert.pem;
ssl_certificate_key /home/ubuntu/app/nginx/conf/ssl/cert.key;
location / {
root html;
index index.html index.htm;
}
}
...
}
CORS 허용 설정
http {
...
server {
...
location / {
...
add_header 'Access-Control-Allow-Origin' '*';
...
}
...
}
...
}
auth_request 설정
http {
...
upstream auth_was {
server localhost:8080;
}
server {
location /resources {
auth_request /auth_test;
root /deploy;
}
location /auth_test {
internal;
proxy_set_header Host $host;
set $query '';
if ($request_uri ~* "[^\?]+\?(.*)$") {
set $query $1;
}
# 헤더는 별도 설정 없이 잘 넘어감
# 쿼리스트링은 아래처럼 설정해주어야지 잘 넘어감
proxy_pass http://auth_was/api/token/check?$query;
}
}
...
}
반응형
'Development > Nginx' 카테고리의 다른 글
[Nginx] Let's Encrypt로 SSL 설정(Docker) (0) | 2024.02.08 |
---|---|
[Nginx] Echo Module 사용하기 (0) | 2019.09.07 |
[Nginx] 설치 (0) | 2019.07.04 |