반응형

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

+ Recent posts