🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

nginx + https 적용하기 (front) 질문드립니다.

21.08.26 08:11 작성 조회수 454

0

인강에 나온 내용대로 진행하면 아래와같은오류가나옵니다

그래서 검색하다가 제로초님 블로그를 발견했고

https://www.zerocho.com/category/NodeJS/post/5ef450a5701d8a001f84baeb


위 링크 제로초님 블로그에 있는 기존방식은 동작하지않아서 snap & nginx 방식으로 진행했고 질문드립니다.

snap과 nginx 방식을참고해서 블로그에 있는코드에서
도메인만 nodebird.com -> donghwi-reactbird.shop으로 변경하였습니다

sudo certbot --nginx를 블로그 보고 입력해보았는데

snap과 nginx 방식으로 진행해보았는데 아래와 같은 오류가 발생합니다 

답변 1

답변을 작성해보세요.

0

41번째 줄에 에러가 있다고 하네요. 오타일겁니다 대부분. 그리고 # managed by certbot 부분은 직접 수정하시먼 안 됩니다.

제로초님 혹시 그렇다면 해당 파일을 초기화하거나 삭제하고 다시 깔 수 있을까요?
이미 바꿔버려서 기존내용을 모르겠습니다

vim /etc/nginx/nginx.conf 이후 

제로초님 블로그를 보고 따라하려는데 코드 복사붙여넣기로 인해 원본을 잊어버린 문제입니다.

https://www.zerocho.com/category/NodeJS/post/5ef450a5701d8a001f84baeb

https://stackoverflow.com/questions/12362967/how-can-i-restore-etc-nginx

이 방법으로 초기화 해보세요.

그리고 /etc/nginx/nginx.conf를 바꾸시면 안 됩니다. default를 바꾸셔야 합니다.

넵 그방법으로 해보겠습니다 

그리고 /etc/nginx/nginx.conf를 바꾸시면 안 됩니다. default를 바꾸셔야 합니다 라는 말씀은

sudo vim /etc/nginx/nginx.conf 저는 이렇게 들어가서 내용을 바꾸는데 이렇게 바꾸는게 아닌가요?

제가 블로그에 include가 있는 경우 nginx.conf를 바꾸는 게 아니라고 적어두었습니다.

넵 알려주신 include가 있어서 default 파일을 vim을 켜서 수정을했는데 

ubuntu@ip-172-31-9-42:/etc/nginx/sites-enabled$ sudo service nginx start

수정후 sudo service nginx start를 입력하면 아래와 같은 오류가 뜹니다

Job for nginx.service failed because the control process exited with error code.

See "systemctl status nginx.service" and "journalctl -xe" for details.

현재 제가 넣은 default폴더 내용입니다. 



제로초님 블로그에는 아래에 내용도 추가하는것같은데 아래내용도 넣어야할까요?
ssl_certificate /etc/letsencrypt/live/nodebird.com-0002/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/nodebird.com-0002/privkey.pem; # managed by Certbot

# managed by certbot 부분은 직접 수정하시먼 안 됩니다. 라는 말씀을 주셨어서 블로그에 해당 주석 # managed by Certbot 이게 있는부분은 안넣었습니다.

< 질문 > 제로초님 블로그로 따라가기 너무어려워서 강의내용대로 해보려고 합니다

sudo su

sudo lsof -i tcp:80

(나오는 값이 없어야 함, 나온다면 sudo kill -9 프로세스아이디(PID))

sudo apt-get install -y nginx

vim /etc/nginx/nginx.conf

(여기서 http 안에 server에 여러분 도메인(server_name)과 프록시 포트(3060같은 것)로 작성)

:wq!로 저장

sudo systemctl start nginx (정상 실행이면 바로 아무 말 없이 실행)

까지 했는데  sudo systemctl start nginx 명령어를 입력하면


아래와 같은 오류가 계속 나는데 아래 오류는 어떤오류인가요?

Job for nginx.service failed because the control process exited with error code.

See "systemctl status nginx.service" and "journalctl -xe" for details.

혹시 sudo lsof -i tcp:80 할때마다 계속 포드번호가 떠서 kill 해도 계속 새로운게 뜨는데 관련있는문제일까요?

항상 에러 메시지에 답이 있습니다. Address already in use를 보고 80번 포트를 이미 누군가가 쓰고 있다는 것을 알아야합니다.

kill해도 계속 생성된다는 것은 누군가가 자꾸 살린다는 것인데요. 이럴 때는 kill 대신 다른 명령어를 써봐야합니다. 예를 들어 sudo service nginx stop 같은 게 있을 수 있죠. 80번 포트를 완전히 죽이면 될 겁니다.

해당 오류 관련해서 검색을 해보았는데 

sudo fuser -k 80/tcp

sudo /etc/init.d/apache2 stop

서버를 종료 or sudo service nginx stop 중지해도 계속해서 똑같은 현상이 발생됩니다.

이러한 경우 어떻게 해결을 해야할지 모르겠습니다.. 80번 포트를 누군가 쓰고있어서 
kill or 중지시켜도 계속해서 sudo systemctl start nginx를 하면 실패합니다 
그리고 status로 보면 그대로입니다

브라우저로 80번 포트로 접속하면 뭐가 뜨나요?

제 도메인으로 접속 말씀하시는거죠?
http://donghwi-reactbird.shop 이렇게 접속하면 제가만든 페이지 그대로 잘뜹니다

그러면 지금 80번 포트가 nginx가 아니라 node pm2인거 아닌가요?

넵 지금 80번포트는 그런것같습니다 pm2 맞습니다

그럼 sudo pm2 kill을 하셔야겠죠? 그 자리에 nginx를 실행하고 pm2는 포트를 3060으로 돌리고요.

넵 감사합니다! 그게문제였네여 해당부분은 해결돼서
sudo systemctl status 했을때 실패가 안뜨는데여 

바로 오류를만나네요..ㅠ

wget https://dl.eff.org/certbot-auto 명령어를 입력하면 아래와같이 (이전에 실패했을때와같은) notFound가 뜨는데 혹시 이런경우는 어떻게해야할까요?

wget 말고 snap으로 설치하세요. wget 명령어는 없어졌습니다.

넵 감사합니다! snap으로 진행해보겠습니다 

제로초님 혹시 snap으로 설치하세요. 부분은 따로 나와있는 링크가 있을까요?
지금 $ sudo service nginx start 해당명령어로 실행시키고 그 이후에
snap으로 설치가 어떤건지 모르겠습니다.

wget 말고 snap으로 설치를 어떻게하는지 의문입니다.

cerbot을 깔아야하는데 어떻게 해야할까요

root@ip-172-31-9-42:/home/ubuntu/Twitter-next.js-node.js/front# chmod a+x certbot-auto

chmod: cannot access 'certbot-auto': No such file or directory

제 블로그에 snap 설치가 나와있습니다. snap으로 설치하면 한 방에 설치됩니다.

sudo snap install certbot --classic
sudo apt-get install nginx
sudo certbot --nginx

혹시 이게 맞을까요?

네. nginx 설정 다 지운 상태에서 저렇게 하시면 됩니다.

넵 다시 초기화하고 진행해보겠습니다 
감사합니다!
이렇게 crertbot-auto에 접근할 수 없다는데 다시 시도해보겠습니다!

root@ip-172-31-9-42:/home/ubuntu/Twitter-next.js-node.js/front# chmod a+x crertbot-auto

chmod: cannot access 'crertbot-auto': No such file or directory

혹시 다지우고 다시 했을때 이렇게 나오는데 여전히
chmod a+x crertbot-auto의 경우 안먹고 / ls 에도 cerbot-auto파일이 존재하지 않는데 잘못된부분이 있을까요?
status를 입력하면 아래와 같이 나옵니다

잘 이해가 안 되는 것이 chmod a+x 같은 걸 하실 일이 없을텐데요? chmod a+x는 기존 설치방식이잖아요.지금 nginx가 잘 돌아가고 있습니다.

아 기존방식이 chmod a+ x를 해서 cerbot-auto 파일을 이용하는것이구 
제로초님께서 블로그에 적어두신 방법은 해당코드와는 관련이 없는일인가요?

https로 들어가니까 이렇게 나오네요 .. 제가 좀 잘못이해한것같습니다.
nginx는 이걸로 된것일까요? https로 들어갈 수 있게 설정은 nginx와 달리 다른부분을 작업하는것이고

snap 명령어 하나로 끝납니다. 블로그에서 기존 방식은 아예 지워버렸습니다.

이제 nginx에 3060 설정 부분 적으시고, pm2를 3060번 포트로 실행하시면 됩니다.

넵 감사합니다!

안녕하세요 제로초님 알려주신대로해서 프론트 서버는 완료했는데
백서버쪽도 똑같이 해줘야할까요? https로 접속은 잘되는데, 서버와의 연결이 안되네여

접속이 잘 되는데 서버랑 연결이 안된다는게 무슨 말씀이신가요? 접속하면 nginx 페이지가 뜨나요?

채널톡 아이콘