OSX Server에 기본적으로 Apache 웹서버를 제공하기 때문에 처음에는 이전 포스트(https://blog.lulab.net/web/configure-apache-virtual-host-of-macos-server/) 와 같이 Apache 웹서버의 Virtual Host를 이용하여 블로그 및 여러 서비스들을 Proxy로 구성하여 사용하고 있다.

하지만 가볍고 빠르다는 Nginx를 써보고 싶은 마음으로 Nginx를 이용한 설정 방법을 확인해보았다. 둘 다 설정을 해본 느낌으로는 Nginx가 더 깔끔하다는 생각된다. 성능의 차이는 개인 서버로 특별히 느낄 수 없지만 osx Server 구매 내역이 아까워서 일단은 Apache를 사용할 예정이다. 하지만 Linux로 별도 서버를 구축한다면 Nginx가 좀 더 깔끔해서 사용할 예정이다.

OSX에 Nginx 설치 (Brew 이용)

Apache 웹서버의 경우, OSX에 자동으로 설치되어 있어서 특별한 설치는 없으나 Nginx는 설치가 필요하다. 이럴 때는 멋진 맥용 패키지 관리툴인 Homebrew를 이용하여 설치한다.

$ brew install nginx

위의 명령 한 줄이면 깔끔하게 Nginx가 설치되고 다음의 명령어로 nginx를 시작한다.

$ nginx


위와 같이 nginx로 실행하면 잘 수행되지만 80 포트를 이용할 수 없다. 맥에서 80 포트를 이용하여 서비스 하려면 sudo nginx와 같이 관리 권한을 가지고 실행해야 한다.

Nginx에 Proxy 설정

Homebrew를 이용한 Nginx는 다음의 경로에 설치된다.

/usr/local/etc/nginx

이전 포스트와 동일하게 http://blog.lulab.net을 위한 설정을 위해 다음의 설정 파일을 만든다.

$ vim /usr/local/etc/nginx/servers/blog.lulab.net.conf

아래의 내용을 작성한 뒤 저장한다.

server {
	listen 80;
	server_name blog.lulab.net;
	location / {
	proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}

위의 설정은 간단하게 blog.lulab.net의 server_name으로 80포트로 접근하는 경우, 127.0.0.1:2368과 프록시 연결을 하는 설정이다. 다음의 명령어로 nginx를 재시작하여 설정을 적용하면 Proxy 설정으로 시작된다.

$ sudo nginx -s reload

Nginx는 좋은 느낌

개인 서버 운영 시에는 대부분 1대의 서버에 여러가지 서비스를 올리게 되는데 이 때 Proxy를 이용하면 매우 유용하다. 그리고 도메인도 1개밖에 없기 때문에 서브 도메인을 적극적으로 활용한다. Proxy는 이러한 요구를 완벽하게 만족시켜주고 Nginx는 간단한 설정으로 위 기능들을 제공해준다는 점이 매우 편리하고 좋은 느낌을 준다.

사실 Apache와의 차이는 거의 없지만 조금이라도 짧고 깔끔한 Nginx가 더 편하지 않나 생각한다.