Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
티스토리 뷰
Nginx 란?
Nginx는 Web server는 보통 WAS(web app server)의 앞단에 위치하여, 클라이언트로부터 HTTP 요청을 받아 정적 콘텐츠를 제공한다.
만약 동적인 콘탠츠(유저별로 다른 데이터)가 필요하다면 WAS에 요청을 넘기는 역할을 수행한다.
대표적인 Web server가 Nginx와 Apache 그리고 IIS(window server)이다.
Web Server의 특성상 로드 밸런싱이 떠오를 수 있다.
실제로 AWS의 ALB는 Nginx로 구현된 로드 벨런서라고 한다.
아파치와 같은 경우는 연결마다 새로운 프로세스가 스레드에 할당되는 방식이다.
따라서 많은 트래픽에는 대처하기 힘들고, 스레드의 컨택스트 전환과 같은 오버헤드로 느려지기 쉽다.
실제로 Spring boot를 사용하면, default로 설치되는 Apache tomcat이 이처럼 동작하기 때문에 커낵션 수가 제한적이다.
(보통 1만명 정도가 한계라고 한다.)
반면 Nginx는 이벤트 기반 처리로 설계되었다.
따라서 커낵션이 프로세스를 만들지 않아, apache에 비해 효율적이다.
커넥션이 Nginx를 위해 할당된 worker 스레드 내에서만 처리되기 때문에, 서버의 일부 자원만 사용하게 만들 수 있다.
추세는 성능이 좋은 Nginx로 많이 기울었지만, 모듈 지원과 호환성에서는 Apache가 우세하다.
실습 환경
외부로 웹서비스를 하진 않고, 내부에서 만 진행하기 위해 Virtual box에서 동작하는 server와 client를 같은 subnet의 ip로 세팅해주었다.
단순히 같은 호스트 전용 어댑터를 사용하는 방법도 있지만, 패킷의 이동을 확인해보기 위해 다른 어댑터를 끼우고 GNS3를 통해 논리적 switch로 연결해 주는 세팅을 진행했다.
Nginx 설치
아래명령어로 Nginx를 설치하고
sudo apt update
sudo apt install nginx
방화벽을 세팅해주자.
sudo ufw allow 'Nginx HTTP' 혹은 sudo ufw allow 80/tcp
sudo ufw enable
ubuntu는 기본적으로 방화벽인 disable 되어 있어서, enable 되면 다른 서비스가 갑자기 차단될 수 있으니 주의하자.
systemctl status nginx로로 정상 동작을 확인하고 :q로 나가주자.
Nginx 메인 페이지 세팅
이제 간단하게 메인 페이지를 세팅하자.
/var/www/html 폴더 내에 index.html을 생성해 주자.
<!doctype html>
<html>
<head>
<title>HTTP Test</title>
</head>
<body>
<p><strong>Top3 Public Cloud list</strong> </p>
<img src="image_aws.png" />
<img src="image_gcp.png" />
<img src="image_azure.png" />
</body>
</form>
</html>
여기서 사용될 image들은 index.html와 동일한 폴더인 /var/www/html에 넣어준다.
정상적으로 수행을 했다면, 서버의 IP의 80번 port(http)로 접속하면, 만들어준 페이지가 보인다.
만약 접속이 되지 않는다면, client의 ip가 server와 같은 subnet인지 확인해 보고, 방화벽도 체크하자.
아주 간단하게 테스트해 보았지만, Nginx의 세팅을 통해 proxy 서버나 connection의 세부적인 세팅도 가능하다.
'개발 > 네트워크 & Ubuntu' 카테고리의 다른 글
브라우저 Parallel connection 확인하기 (0) | 2024.01.09 |
---|---|
Ubuntu server - DNS 서버 설치 및 구성 (1) | 2024.01.07 |
[Virtual Box] 포트 포워딩으로 SSH 접속하기 (0) | 2024.01.02 |
[Virtual Box] Ubuntu server - DHCP server 설치 및 IP할당 (0) | 2024.01.02 |
VirtualBox 다른 host-only adapter 끼리 통신하기 (0) | 2023.12.27 |