정상적으로 nginx를 설치한 후 실행하면 실행중인 엔진엑스 프로세스가 이렇게 나온다.
nginx와 apache는 작동 방식이 다른데 한줄 요약하자면 nginx는 이벤트 중심, apache는 프로세스 중심 아키텍처를 가지고 있다.
과거의 인프라 구성에 맞게 설계된 아파치보다 훨씬 많은 수의 연결(C10K문제)을 고려한 nginx가 최적화나 성능 면에서 우위를 갖고 있지만 그로 인한 단점도 몇가지 있는 것 같다.(가벼워진 대신 기능이 삭제되는 등)
참고하면 좋을 만한 글
https://blog.hojaelee.com/262
https://foxutech.com/apache-vs-nginx-architecture/
https://aosabook.org/en/v2/nginx.html
이제 vmware나 virtualbox로 생성했든, cloud로 생성했든 curl localhost or 아이피를 브라우저 주소 창에 입력하면
이런 화면이 나온다.
기본 설정이 저장된 루트 디렉터리
기본 설정 파일로, 모든 설정에 대한 진입점이며 워커 프로세스 개수, 튜닝, 동적 모듈 적재 뿐만아니라 모든 설정 파일을 포함 하는 최상위 http 블록을 포함
기본 HTTP 서버 설정 파일을 포함 디렉터리 내 파일 중 이름이 .conf로 끝나는 파일은 앞서 언급한 /etc/nginx/nginx.conf 파일이 가진 최상위 http 블록에 포함됩니다.
엔진엑스의 로그가 저장되는 디렉터리(access, error, debug까지)
/etc/nginx/conf.d/default.conf
해당 위치에서 값을 수정해보자.(주석은 제외해도 됨)
server { #server 블록 선언 -> nginx가 처리할 컨텍스트 정의
listen 80 default_server; # nginx가 80번 포트로 들어오는 요청을 수신, 이 블록에 정의된 내용이
# 80번 포트에 대한 기본 컨텍스트가 되도록 default_server 매개변수(기본 값) 사용
# 필요에 따라 포트를 범위 지정 가능
server_name www.example.com; # 서버가 처리할 호스트명이나 도메인명 지정
# 설정이 default_server(기본 값) 지정이 돼있지 않다면 server_name의 값과 같을 때만 server 블록 내용 수행
# ==> 서버가 사용할 도메인이 정해지지 않았다면 예시와 같이 default_server 매개변수 사용으로 기본 컨텍스트 정의 및 server_name 지시자 생략 가능
location / { # location 블록은 URL의 경로를 기반으로 함. 경로나 도메인 뒤에 붙은 URL 문자열을 통합 자원 식별자(URI)라 부름
# nginx는 요청된 URI에 가장 적합한 location 블록을 찾게 됨.
root /usr/share/nginx/html; # root 지시자는 서버의 어떤 경로에서 파일을 찾을지 알려줌 nginx는 root 지시자 경로+URI로 요청된 파일을 찾음
# alias /usr/share/nginx/html;
# location 지시자에 URI를 사용했다면 이 값도 root 지시자에 지정한 값과 합쳐지는데 이렇게 동작되지 않게 하려면 alias 사용
index index.html index.htm; # index 지시자는 URI에 더는 참고할 경로 정보가 없을 때 nginx의 기본 파일 혹은 확인할 파일 목록을 알려줌
}
}
수정이 완료됐다면 저장한 후 nginx -s reload 명령을 실행한다.