엔진엑스 가상 호스트 설정(nginx Virtual Host Setup)


Ubuntu 방식의 장점

가상 호스트는 웹 서버에서 가장 많이 설정하는 기능이며 우분투의 경우 가상 호스트 설정 파일은 sites-available 디렉터리에 위치시키고 실제 동작시킬 가상 호스트가 있을 경우 sites-enabled/ 에 symbolic link 를 만들어서 사용하고 있습니다.


즉 lesstif.com 이라는 가상 호스트가 있을 경우 /etc/nginx/sites-available/lesstif.com 파일에 설정하고 사용할 경우에는 다음 명령어로 symbolic link를 만들어 주면 됩니다.

ln -s /etc/nginx/sites-available/lesstif.com /etc/nginx/sites-enabled


물론 웹 서버가 제대로 가상 호스트 설정을 읽기 위해 다음과 같은 내용을 메인 설정 파일인 /etc/nginx/nginx.conf 에 넣어 줘야 합니다.

include /etc/nginx/sites-enabled/*;



만약 가상 호스트를 중지시키려면 설정 파일을 삭제하지 말고 symbolic link 를 삭제해 주면 되므로 실수로 설정 파일을 날릴 일이 없습니다.

rm /etc/nginx/sites-enabled/lesstif.com


이에 반해 RHEL 와  CentOS 는 단일 설정 파일(/etc/httpd/conf/httpd.conf, /etc/nginx/nginx.conf)에 가상 호스트를 포함한 모든 설정을 넣어주므로 관리하기가 어렵고 파일이 커질 경우 실수할 여지가 많아집니다.


설정

다음과 같이 하면 RHEL이나 CentOS 에서도 우분투 방식대로 웹 서버의 가상 호스트 설정 파일을 편리하게 관리할 수 있습니다.


웹 서버 설정 작업이므로 root 권한으로 실행해야 합니다.



  1. 가상 호스트 폴더 생성

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
  2. nginx.conf 편집합니다.

    vi /etc/nginx/nginx.conf
  3. 주요 설정값
    1. worker_processes:별도의 프로세스로 구동되어 실제 처리를 하는 프로세스의 갯수로 서버 cpu 의 core 갯수를 확인한 후 이 숫자대로 주는게 좋습니다.

      grep processor /proc/cpuinfo | wc -l
    2. worker_connections: 워커 프로세스당 동시에 처리할 수 있는 연결 갯수. 기본 값 768
    3. max_clients = worker_processes * worker_connections
  4. nginx.conf 설정 예제

     Click here to expand...

  5. sites-enabled/example.com 가상 호스트 예제

     Click here to expand...

  6. nginx 재구동

    systemctl restart nginx


serve script 사용

위의 과정을 자동화하기 위해 별도의 스크립트를 작성했으니 다운로드 받아서 실행하면 됩니다.

serve-php

php 로 웹 서비스할 경우 사용합니다.


  1. script 를 다운로드 합니다.

    curl -o serve-php.sh https://gist.githubusercontent.com/lesstif/82c107282241c7a52ad9/raw
    sudo mv serve-php.sh /usr/local/bin/
    sudo chmod +x /usr/local/bin/serve-php.sh 
  2. 실행할 경우 도메인명(예: mynew.site)과 webroot (/var/www/my-new-site-webroot)경로를 파라미터로 주면 됩니다.

    sudo serve-php.sh mynew.site /var/www/my-new-site-webroot

serve-tomcat

tomcat 으로 서비스할 경우 사용합니다.


  1. 다운로드합니다.

    curl -o serve-tomcat.sh https://gist.githubusercontent.com/lesstif/4d162c4c8df756a65286/raw
    sudo mv serve-tomcat.sh /usr/local/bin/
    sudo chmod +x /usr/local/bin/serve-tomcat.sh
  2. 실행은 도메인명과 tomcat 의 http port 를 주면 됩니다.

    sudo serve-tomcat.sh mynew.site 8080


같이 보기


참고