ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Nginx
    Data Engineer 2024. 3. 28. 19:19
    728x90

    nginx : 기동

    nginx -s stop : 정지

    nginx -s reload : 재기동

    nginx -t : 설정파일 체크

    /etd/nginx : main 설정파일 위치

    /etc/nginx/conf.d/ : 각 서버용 설정파일 위치

     

    -?,  -h nginx 명령어의 도움말 표시
    -v nginx 버전 확인
    -V nginx를 make 했을 시 컴파일러 또는 configure 옵션 표시
    -t, -q nginx 설정파일 오류 체크
    -s stop 강제종료
    -s quit 실행중인 request 처리 종료하고 nginx 정리
    -s reload 설정파일 다시 읽음
    -s reopen nginx 재기동중 로그파일을 다시 오픈
    -c 설정파일 지정한 설정파일로 nginx 기동(보통 부하시험 등에 사용되며, 보통 사용하지 않는다)
    -g global 디렉터스 설정 지정한 global 디렉티브의 설정으로 nginx를 기동(부하실험 등..)
    -p prefix default=/usr/local/nginx

    내달이면 지금 하고 있는 프로젝트의 유지보수 작업을 총괄하게 된다. (ㅎㅎ...승진도 함)

    개발 과정에서부터 투입되어 지금껏 하고 있는데, NAS 연결법과 네트워크 구성도를 완벽히 숙지한 건 오늘이다..

    nginx가 핵심으로 작용하는 만큼, 이런 기본 명령어를 토대로 더 공부해보기로 하자.

    앞으로도 종종 nginx 명령어 혹은 구동 원리를 올릴 예정이다.

    Nginx란 무엇인가?

    nginx는 높은 성능과 안정성, 그리고 가장 많이 사용되고 있는 웹 서버이다. Apache와 같은 웹 서버와 비교하면 더 빠르며 가볍고, 대규모 애플리케이션 처리에 적합하다.

    1. 클라이언트  : 서비스를 이용하기 위해 네트워크를 통해 요청을 보내는 주체 Ex. Chrome, Safari, Whale 등

    2. 웹 서버: HTML, CSS, JS, 이미지 파일과 같은 정적 파일을 응답하여 제공하는 소프트웨어 Ex.Nginx, Apache

    3. WAS : 클라이언트 요청에 대해 동적인 처리를 담당하는 영역. 웹 서버와 달리 애플리케이션 로직을 실행할 수 있도록 구성되어 있다.

    데이터베이스 연동, 트랜잭션 관리, 보안, 로깅 등의 기능도 제공한다. Ex. Tomcat, JBoss, WebLogic, WebSphere, Django

    4. DB : 조직이나 개인이 필요한 정보를 체계적으로 저장, 관리하고 검색할 수 있는 시스템

    웹 서버를 사용하는 이유는?

    첫번째, WAS 부담을 덜어내기 위해 사용되며, 그 이유는 HTML, CSS, JS와 같은 정적 파일을 클라이언트에게 전달하는 역할을 웹 서버에 위임함으로써 WAS의 작업 부담을 덜어낸다

    두번째, 보안 기능을 제공한다. 웹 서버는 보안 기능을 제공하여 웹 페이지에 대한 접근을 제어할 수 있으며, SSL/TLS 프로토콜을 사용하여 데이터를 암호화하고, 액세스 제어, 웹 방화벽 등의 보안 기능을 제공하여 웹 사이트를 보호한다.

    세번째, 높은 성능을 제공한다. 웹 서버는 대부분 비동기 처리 방식을 사용하여 높은 성능을 제공한다. Nginx, Apache와 같은 웹 서버는 이벤트 기반, 멀티 프로세싱, 스레드 풀의 기술을 사용하여 수천 대의 클라이언트 요청을 동시에 처리한다.

     

    Nginx는 다음과 같은 특징으로 많이 사용되는 데, 높은 성능/적은 메모리 , 리버스 프록시 사용이 가능하다는 점이다.

    Nginx는 비동기 I/O 처리 방식을 사용하여 높은 성능을 제공하고, 이로 인해 대규모 웹 사이트에서도 빠른 응답시간을 보장한다. Nginx는 이벤트 기반으로 비동기 처리를 수행하고, 프로세스와 쓰레드를 재활용하며, 모듈화된 아키텍처를 사용하여 필요한 기능만 활성화가 가능하다. 또한 자체적으로 메모리 관리를 위해 최적화를 실시하기 때문에, 적은 메모리로도 이같은 높은 성능 구현이 가능하다.

    Proxy, 인터넷 접속을 할 때 보안상의 문제로 직접 통신을 주고받을 수 없을 때 그 사이의 중계기로서 대리로 통신을 수행하느 기능을 프록시라고 한다. 프록시에는 포워드 프록시(클라이언트와 인터넷 간)와 리버스 프록시(인터넷과 백엔드 간)가 있다.

     포워드 프록시를 사용하게 되면 클라이언트의 IP 주소가 웹 서버가 노출되 지 않아 클라이언트의 위치나 신원을 식별하는 것이 어려워져 보안이 강화된다. 이 같은 특징을 바탕으로 포워드 프록시를 사용하게 되면 특정 IP 주소, 도메인 또는 URL에 대한 접근을 제한할 수 있다. 또한 미디어 스트리밍을 지원할 수 있는데, 미디어 파일의 경우 큰 용량을 가지고 있어 포워드 프록시를 사용하여 미디어 파일을 캐시하고 클라이언트에게 빠르게 제공할 수 있다.

     리버스 프록시는 인터넷과 백엔드 사이에 위치한 서버 영역이며, 로드 밸런싱이 대표적인 리버스 프록시로 구현한 기능이라고 할 수 있다. 또한 캐싱 서버로도 이용이 가능한데, 클라이언트가 이미지를 요청했을 때 처음에는 서버에서 가져오지만 이후 동일한 요청이 있을 경우 캐시 서버에서 가져와 클라이언트에게 전달해준다. 또 보안 효과도 있는데, WAS의 데이터 응답시 나오는 기기 명칭, 주소 등 민감 정보들을 중간에서 숨겨 보안을 높일 수 있다.

    Nginx는 SSL(Secure Sockets Layer) 또한 지원한다. SSL은 웹 사이트와 사용자 간의 통신을 암호화하고 보안을 유지하는 데 사용되는 프로토콜이며, HTTPS로 알려진 보안 HTTP 프로토콜의 기반 기술이다. SSL 프로토콜을 사용하여 웹 서버와 클라이언트 간에 보안 연결을 설정하고, SSL 인증서를 사용하여 서버의 신원을 인증한다. 이를 통해 중간자 공격과 같은 보안 위협을 방지하고, 사용자의 개인 정보와 웹 사이트의 기밀 정보를 보호할 수 있다.

    Nginx는 클라이언트의 요청이 Text일 경우 gzip을 사용하여 해당 데이터를 압축시킬 수 있다.

    B

     

    728x90

    'Data Engineer' 카테고리의 다른 글

    Schema On Read  (0) 2024.08.20
    GlobalEventBus ?  (0) 2024.05.02
    [Error] MySQL : Update 문 실수 시 조치 사항  (0) 2024.03.12
    Git action - 이론  (0) 2024.03.08
    App Update  (0) 2024.03.08
Designed by Tistory.