AWS

엘라스틱 빈스톡 SSH 접속 후 nginx, spring 동작 및설정 확인하기

Sol b 2023. 11. 12. 21:42

엘라스틱 빈스톡 환경 구축 후

NginX가 80포트로 열려잇고, Spring 서버가 5000포트로 잘 열여있는지 확인하기 위해

SSH접속을 하겠습니다.

 

NginX의 location / { } 안에서 proxy_pass의 값을 변경하면 5000포트가 아닌 다른 포트로 변경 가능합니다!
이제 정말 변경이 가능한지 확인해 보겠습니다. 

실행중인 프로세스 확인

엘라스틱 빈스톡에서 유저 네임은 우분투가 아닌 ec2-user입니다.

ps -ef

 

java -jar application.jar 라는 이름으로 프로세스가 작동하고 있습니다.
application.jar는 엘라스틱 빈스톡에 업로드 하면 Default jar파일 값입니다.

 

nginx이름으로 돌고 있는 프로세스도 확인이 가능합니다.

포트 확인

netstat -nlpt

nginx : 80 -> 0.0.0.0:* 모든 포트 접근가능
Spring server : 5000 -> :::* 내부만 포트 접근
포트로 실행되고 있습니다.

 

웹브라우져 -> 로드밸런서(80포트) -> nginx(80포트) -> Spring Server(5000포트) 로 접근하게 됩니다.
따라서 5000포트는 내부에서만 접근 가능해도 상관이 없습니다.

 

NginX

sudo find / -name nginx

 

nginx의 설정 파일은 nginx.conf 파일이고 /etc/nginx 경로에 위치합니다.

cd /etc/nginx
vi nginx/conf

nginx 서버 설정

서버 설정을 보니
포트 : 80
로그 : /var/log/nginx/access.log main
등등 설정이 되어있는 것을 확인할 수 있습니다.

 server {
        listen        80 default_server;
        access_log    /var/log/nginx/access.log main;

        client_header_timeout 60;
        client_body_timeout   60;
        keepalive_timeout     60;
        gzip                  off;
        gzip_comp_level       4;
        gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;

        # Include the Elastic Beanstalk generated locations
        include conf.d/elasticbeanstalk/*.conf;
    }

이제 include에 지정된 경로로 가보겠습니다.

cd conf.d/elasticbeanstalk

 

00_application.conf 파일의 권한은 root 유저만 읽고 쓸 수 있고,

그룹, 다른 유저는 읽기만 할수 있습니다.
지금은 ec2-user이기때문에 읽을수만 있습니다.

location / {
    proxy_pass          http://127.0.0.1:5000;
    proxy_http_version  1.1;

    proxy_set_header    Connection          $connection_upgrade;
    proxy_set_header    Upgrade             $http_upgrade;
    proxy_set_header    Host                $host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
}

파일을 열어보면 location / 설정이 되어있습니다.
80포트에 주소가 / 인 요청이 들어올 때의 설정입니다.
이 포트는 내부적으로만 호출이 됩니다.

여기서 proxy_pass http://127.0.0.1:5000를 다른 port로 바꿔주면 원하는 포트로 바꿀수 있습니다!