💪 Today I Learned

Apache VS Nginx

  • Apache : MPM 방식, 스레드/프로세스 기반 구조
  • Nginx : 비동기 Event-Driven 기반 구조

발표 자료 만들다가 문득 궁금해져서 찾아봤다. 2주에 걸쳐 서버 프로그램으로 apachenginx를 사용했는데 정작 둘의 차이점은 모르고 있었다. 그래서 오늘 포스팅에 간략하게나마 정리했다. 간단하게 동시 접속 요청이 많을 경우 nginx를 사용하면 될 것 같다.

  • hard link : 원본 파일과 동일한 inode를 가진다.
  • symbolic link : 원본 파일의 이름을 가리킨다.

phpmyadmin 설치 시 ln -s 명령어로 심볼릭 링크를 걸어줬는데 이게 뭔가 싶었다. 찾아보니 2년 전 시스템 프로그래밍 시간에 배운 내용이었다. 수업 당시 교수님께서 soft link라는 용어로만 설명하셔서 생소하지 않았나 싶다.
어쨌든 심볼릭 링크는 쉽게 말해 윈도우 바로가기와 같은 것이다. 그래서 원본 파일이 삭제된다면 무용지물이 된다. 반면 하드 링크는 동일한 inode를 가지므로 원본 파일이 삭제되도 데이터만 남아있다면 문제 없다.

Nginx server block

  • redirection 위주

어제 말한대로 nginx의 server block에 대해 공부해봤다. 깊게 파보진 않고 http -> httpsip -> domain 형식으로 redirection 걸어주는 방식에 대해 많이 알아봤다. 과제를 끝마쳤다고 생각했었는데 크롬이 아닌 edge로 들어가서 확인해보니 아니었다. (캐시를 삭제해주지 않아서 그런듯)
어쨌든 이번엔 제대로 구현했고 수차례 확인까지 했다. 삽질을 조금 했지만 굉장히 간단했다. http로 요청 들어오는 경우에 301로 리턴하여 리다이렉션 적용할 주소를 써주면 됐다.

🏃 한마디

생각보다 내가 했던 과제에 빈틈이 많이 존재했다. 그래서 아예 AWS instance를 하나 더 생성해 처음부터 다시해봤다. 한 번 더 훑어보니 서버 구축의 전반적인 과정을 이해하기 훨씬 수월했다. 또한 거의 2년 만에 사용하는 putty가 편해지기 시작했다.
궁금했던 점이 있는데, 인바운드 규칙에서 3306 포트를 열었는데도 불구하고 MySQL 연결이 안된다는 것이다. 우분투 방화벽인 ufw를 설정하여 해결하긴 했지만 왜 그런지 모르겠다. 내일 과제 발표 마치고 물어봐야겠다.