안녕하세요, Brad입니다. 오늘 공부한 내용 정리해볼게요.
'응답없음' 이슈 해결방법
서버의 인스턴스를 시작하고 계속 해당 HTTP 포트로 접속하였을 때 '응답없음' 반응이 나타났습니다.
처음에는 제가 서버쪽을 만지다가 설정을 잘못하여 그렇게 된줄 알고 서버 내에 설정파일들을 살펴보았는데요(어차피 잘 모르지만..)
그러다가 아마존 EC2 Securtiy Group설정이 잘못되었을 수 있다는 생각이 들었습니다. 이전에 저는 HTTP 포트가 다음과 같이 설정되어 있었습니다.
그런데 이렇게 설정하면 안되더라구요. 다음과 같이 설정해야합니다.
jar파일 실행시킬 때 포트 설정하기
이전에 실습을 하면서 jar파일 실행시킬 때 포트 설정을 했었는데요. 이번에 여러 어플리케이션을 돌리려하다보니 그 설정이 다시 필요했습니다. 설정은 다음과 같이 하면 됩니다.
java -Dserver.port=8080 -jar myApplication.jar
그런데 application.properties에 설정해놓은 포트값이 있으면 이렇게 해서 포트값이 안바뀌네요..
test없이 gradle 빌드 시키기
gradle build -x test
unstaged된 파일 이전으로 되돌리기
git checkout -- application.properties
Nginx 적용하기
방화벽
여러 블로그를 보다가 방화벽 설정하는 것이 있어 따라해보았습니다. 하지만 방화벽을 설정하니
curl http://localhost
로 http를 읽기는 했지만 웹브라우저에서 접근은 안되었습니다.pobi에게 물어보니 그것은 리눅스를 실제로 사용할 경우 필요한 것이고 저희의 경우 Spring security에서 별도로 설정한 부분이 있어 방화벽은 필요없다는 답변을 들을 수 있었습니다.
sudo ufw enable // 방화벽 활성화 sudo ufw disable // 방화벽 비활성화
AWS Security Group 내 포트 설정
- 위에 언급한 바와 같이 웹브라우저에 또 접근할 수 없는 경우가 생겼는데 그건 포트를 설정하는 것이었습니다. 더 살펴봐야 할 점은 0.0.0.0 이런 식으로 설정되어야 한다는 점입니다.
Nginx 설치
이에 대한 내용은 여러 방법이 있겠지만 저는
sudo apt -get install nginx
를 이용하여 설치하였습니다.관련 명령어
systemctl stop nginx
: 중단systemctl start nginx
: 시작systemctl restart nginx
: 재시작
설정
Nginx관련 설정파일은
/etc/nginx
에 들어있습니다.이 안에서 주요적으로 살펴봐야할 파일과 폴더가 다음과 같습니다.
폴더
- sites-available : 설정파일이 있습니다.
- sites-enabled : 설정파일에 대한 시멘틱블록(바로가기)이 있습니다. sites-available내 설정파일을 바라봅니다.
파일
- nginx.conf
nginx.conf 가 가장 main으로 설정하는곳입니다. 만약 여기에 설정을 하지않고 위 폴더에 설정을 하려면 nginx.conf 의 http 블록 안에 다음과 같이 설정하면 폴더의 파일을 읽어올 수 있습니다.
// http 블록 안 include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;
전 처음에 nginx.conf 안에 Server 블록 안에 80포트의 / 경로에 대해 스프링부트 어플리케이션 8080포트를 매핑시켰는데요. 이후에 sites-available 내에 설정파일에도 적용해보고 싶어 기본적으로 있는 default파일의 Server블록에 다음과 같이 적었습니다.
location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. # try_files $uri $uri/ =404; 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; }
- 5번째 줄이 / 경로에 대해 저의 8080포트로 실행되는 스프링부트 어플리케이션을 매핑시킨 것입니다.
- 위 적용을 하고 제대로 확인하기 위해선
systemctl restart nginx
로 Nginx를 재가동시켜줘야 합니다.
서버 설정에 대해 모르는 점이 너무 많아 저의 설명이 정확하지 않을 수 있습니다. 좀 더 공부해서 깨달음이 올 때 Nginx의 여러 설정들에 대해 다시 정리해보고 싶네요.
'TIL' 카테고리의 다른 글
Today's Dev Notes(2019-01-17) (0) | 2019.01.17 |
---|---|
Today's Dev Notes(2019-01-16) (0) | 2019.01.16 |
Today's Dev Notes(2019-01-14) (0) | 2019.01.14 |
Todays' Dev Notes(2019-01-12) (0) | 2019.01.12 |
Todays' Dev Notes(2019-01-10) (0) | 2019.01.10 |