nginx란
- HTTP 기반의 서버를 생성하는 소프트웨어
- 웹 서버를 생성 및 정적 웹페이지 호스팅
- Event-Driven 구조로 동작한다 (고정된 프로세스 사용)
- 적은 자원으로 효율적인 운용이 가능하다는 장점
nginx 설치
$ brew install nginx // hombrew가 미리 설치 되어있어야함
nginx.conf 파일
- 논리적으로 작성되어 있는 지시어 목록이다
- 어플리케이션 전체가 지시어에 부여하는 값에 의해 동작한다.
$ sudo find / -name nginx.conf // find 명령어를 이용하여 nginx.conf 파일의 위치를 찾는다
필자의 nginx.conf 위치는 아래 와 같다.
/opt/homebrew/etc/nginx
cat 명령어를 통하여 conf 파일의 내용 확인하면
localhost 의 8080 포트에 index.html 파일이 출력되도록 디폴트 값이 입력되어 있다.
실제로 localhost:8080 확인시
이와 같은 화면이 나타난다.
출력되지 않을 시 nginx 가 실행되고 있는지 확인한다.
$ ps -ef | grep nginx
nginx.conf 파일 수정
필자는 10024 번지 포트로 변경하였고
index.html 파일을 nginx.conf 파일이 있는 디렉토리에 생성해주었다.
index.html 파일엔 아무 html을 넣었다.
파일 저장 후
$ sudo nginx -s reload 명령어를 통해 nginx 를 중단없이 재실행 해주었다.
nginx reload 는 stop & start 와는 다르다
reload 는 서버 중단없이 nginx 를 재실행 한다.
localhost:10024 확인 시
작성해 둔 html 파일 내용이 잘 출력된것을 확인해 볼 수 있다.
오류사항!!
실습 진행 중 오류가 있었다.
실습 초반 html파일 경로를 home 디렉토리 내 임의로 만든 디렉토리에 넣어주었다
ex) /Users/test/files // test 및 files 디렉토리는 임의로 만든것, html 파일은 files 안에있음
localhost:10024 확인 시 404 에러가 뜨는 것이였다.
해결법
404 에러라면 클라이언트의 요청이 잘못됐다는 것
1. 혹시 모르니 포트는 10024 번이 잘 동작되는지 확인했고
포트는 10024로 바꾸고 welcome to nginx! (기본 html) 이 잘 출력되는지 확인했다.
=> 정상
2. nginx 를 삭제하고 다시 설치하였다.
$ brew uninstall nginx
$ brew install nginx
=> 똑같음
3. html 파일을 nginx.conf 파일이 있는 디렉토리에 생성했다.
nginx.conf 에는 절대 경로로 변경해주었다. ( root /opt/homebrew/etc/nginx; )
=> 오류 해결
원래는 홈 디렉토리에 있는 임의의 디렉토리로 경로 지정을 해도 잘 되어야함
맥이 가끔 이런다는데 아직 이유를 못찾았다.
이유를 아시는 분은 댓글 바랍니다.
==>>> 해결함!!
root 경로에 있는 디렉토리 모두 권한 설정을 해줘야함
필자는 중간에 있는 디렉토리가 750으로 되어있어 755로 바꿔주고 재실행했더니 잘됨
추가사항
$ sudo find / -name access.log 파일을 찾아 ( /opt/homebrew/var/log/nginx/access.log )
$ tail -f access.log 를 확인하여 nginx 서버에 수신된 log 를 확인해보자
'DevOps > DevOps' 카테고리의 다른 글
데이터 파이프 라인 (0) | 2022.12.21 |
---|---|
CORS 란? (0) | 2022.12.16 |
[Mac OS]웹서버 - 클라이언트 간단 실습 (netcat-nc) (0) | 2022.12.11 |
[Mac OS]HTTP 요청 메소드 및 상태코드 (Postman, OpenWeatherMap 사용) (0) | 2022.12.10 |
HTTP Message 구성 및 특징 (0) | 2022.12.08 |