[Spring Boot] 44. 80번 포트로 운영하기(포트 번호 없이 접속하기)
우리는 그동안 로컬 서버의 8080번 포트를 사용했다.
하지만 운영환경에서는 실제로 가장 많이 사용하는 80번 포트를 사용해야 한다.
사실 아래와 같은 옵션을 추가하면 80번 포트로 서비스를 운영할 수 있다.
$sudo java -Dserver.port=80 -jar sbb-0.0.2.jar
하지만 직접 지정하는 방법은 옳지 않다.
80번 포트로 실행하려면 루트 권한도 필요할 뿐더러, SSL을 이용한 HTTPS 서비스를 운영하기 쉽지 않다.
따라서 엔진엑스나 아파티와 같은 웹 서버를 이용해 설정할 수 있다.
엔진엑스 설치 및 설정하기
1. MobaXterm에서 아래와 같이 입력해 루트 권한으로 엔진엑스를 설치하자.
$sudo apt install nginx
이 화면이 나오면 OK를 선택한다.
2. 설치 후에는 /etc/nginx/sites-available 디렉터리로 이동하자.
cd /etc/nginx/sites-available
이 디렉터리는 엔진엑스의 설정 파일이 위치하며 현재 이 폴더에는 'default'파일만 존재한다.
3. SBB서비스의 엔진엑스 설정 파일을 다음과 같이 루트 권한으로 생성해자.
ubuntu@jumpto:/etc/nginx/sites-available$ sudo nano sbb
/etc/nginx/sites-available/sbb
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:8080;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
4. 이제 작성한 sbb파일을 엔진엑스가 SBB서비스의 설정 파이로 읽을 수 있도록 sbb파일을 /etc/nginx/sites-enabled 디렉터리에 링크해야 한다.
ubuntu@jumpto:/etc/nginx/sites-available$ cd /etc/nginx/sites-enabled/
ubuntu@jumpto:/etc/nginx/sites-enabled$
5. ls를 수행하면 현재 'default'만 있다.
ubuntu@jumpto:/etc/nginx/sites-enabled$ ls
default
6. site-enabled 디렉터리의 default 링크는 삭제하자.
ubuntu@jumpto:/etc/nginx/sites-enabled$ sudo rm default
7. 그리고 sbb파일을 이 디렉터리로 링크하자.
ubuntu@jumpto:/etc/nginx/sites-enabled$ sudo ln -s /etc/nginx/sites-available/sbb
ubuntu@jumpto:/etc/nginx/sites-enabled$ ls
sbb
엔진엑스 실행 및 적용하기
1. 엔진엑스를 설치할 때 엔진엑스가 자동으로 실행됐기 때문에 재실행해야 한다.
ubuntu@jumpto:/etc/nginx/sites-enabled$ sudo systemctl restart nginx
위 명령어를 통해 엔진엑스에 오류가 없는지 확인한다.
2. 이제 브라우저로 접속해보자. http://15.164.187.123/
502 Bad Gateway 오류 발생시 스프링 부트를 실행해줘야 한다.(./start.sh)