Web Server

Mac 환경에서 NGINX 설치하고 도메인 붙이기

2023. 12. 04. by 박하람

맥 환경에서 nginx를 설치해야 할 일이 생겼다. 우분투 환경에서 여러 번 nginx는 설치해봤는데, 맥 환경에서 설치하는 건 처음이다. 전반적으로 우분투 환경에서 설치하는 것과 비슷하지만, homebrew 환경에서 설치하는 게 조금 다르다. 설치는 mac에 nginx 설치하기Let's Encrypt를 이용한 SSL 인증서 발급 받기의 블로그 글을 참고했다.

homebrewnginx 설치하기

먼저 nginx가 설치되어 있지 않은지 확인하고, homebrewnginx를 설치한다.

brew services # homebrew로 설치된 서비스 확인
brew install nginx  # homebrew로 nginx 설치하기

nginx가 설치되면 8080 포트에서 nginx가 실행된다. 브라우저에서 localhost:8080으로 접속하면 아래와 같이 Welcome to nginx!라는 기본 화면이 뜬다.

nginx html

포트 8080에서 80으로 변경하기

homebrewnginx를 설치하면, /usr/local/etc/nginx/nginx.conf의 경로에 conf 파일이 생성된다. 일반적으로 웹 서버는 80 포트에서 실행되므로, nginx가 열리는 포트는 80 대신 8080 포트로 바꿔주는 것이 편하다. conf 파일을 변경하는 것이라 sudo로 접속해야 한다.

sudo vim /usr/loca/etc/nginx/nginx.conf  # vim으로 conf 파일 열고 포트 변경 후 저장
brew services restart nginx  # nginx 재시작

conf 파일에서 서버가 listen하는 포트를 8080에서 80으로 변경한다. conf 파일을 변경했다면, nginx를 다시 시작하고 localhost:80 또는 localhost로 접속한다. localhost:80으로 접속했을 때 nginx의 초기 html 화면이 나온다면 정상적으로 포트가 변경된 것이다.

nginx html

sites-available과 sites-enabled 설정

우분투 환경에서 nginx를 설정하면, sites-availablesites-enabled 폴더가 자동생성된다. 보통 sites-available은 비활성화된 설정을 담아놓고, 활성화하고 싶을 때 sites-available에 있는 파일을 sites-enabled 폴더에 심볼링 링크를 건다. homebrew로 설치한 nginx는 2개의 폴더를 자동으로 생성해주지 않아서 직접 폴더를 만든다.

# 폴더 생성하기
mkdir sites-available
mkdir sites-enabled

보통은 서브도메인별로 sites-available 폴더에 설정이 담긴 파일을 생성한다.

# 폴더에 들어가 개별 도메인에 대한 conf 파일 설정하기
cd sites-available
vim test.domain.com

test.domain.com이란 파일을 생성하고, 다음의 코드를 작성한다.

  • server_name: 웹서버와 연결할 도메인 이름을 작성한다.
  • access_logerror_log: 로그가 담길 경로와 파일명을 작성한다.
  • root: 웹 서버가 html을 불러올 홈 디렉토리를 작성한다. 해당 경로에 위치한 모든 폴더에서 웹 서버가 html을 읽는다.
  • try_files: 웹 서버가 원하는 파일을 찾지 못할 경우 404 Not Found 오류를 반환한다.
server {
    server_name test.domain.com;
    access_log /var/log/nginx/test.domain.com.access.log;
    error_log /var/log/nginx/test.domain.com.error.log;

    location / {
        root /path/to/server;
        index index.html;
        try_files $uri $uri/ =404;
    }
}

심볼릭 링크 걸기

sites-available 폴더에서 test.domain.com 파일을 작성했다면, sites-enabled 폴더과 sites-available 폴더에 있는 test.domain.com의 파일을 심볼릭 링크로 연결한다. 심볼릭 링크는 sudo 환경에서 설정한다.

sudo ln -s /usr/local/etc/nginx/sites-available/test.domain.com /usr/local/etc/nginx/sites-enabled/test.domain.com

정상적으로 심볼릭 링크가 걸어졌는지 확인하려면 sites-enabled에 들어가 test.domain.com 파일이 생겼는지 확인한다. test.domain.com의 설정을 바꾸고 싶다면, sites-available의 폴더에 있는 test.domain.com 파일을 수정하면 된다. sites-available 폴더에 있는 파일이 수정되면 심볼릭 링크가 걸린 파일은 자동으로 수정된다. 심볼링 링크를 걸어주지 않으면 nginx에 변경된 사항이 반영되지 않으므로!!! 심볼릭 링크를 걸어주는 것을 잊지 말자!

설정 변경 테스트하기

새로운 설정이 잘 적용됐는지 확인하려면 다음의 코드를 작성하면 된다. 주석처리 해 놓은 것과 같이 결과가 잘 나타나면 설정 변경에 오류가 없는 것이다. 마지막으로 nginx를 재시작하면 설정을 변경한 것이 적용된다.

sudo nginx -t
# nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
brew services restart nginx

변경한 홈디렉토리에 있는 index.html 파일이 localhost:80에도 보인다면, 홈디렉토리의 변경은 잘 된 것이다. 마지막으로 웹 브라우저에 test.domain.com을 접속했을 떄 홈 디렉토리에 있는 index.html 파일이 보인다면 성공적으로 웹 서버와 도메인을 연결했다!

Tags:
#blazegraph
#bulk data
#fastload.properties