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

엔진엑스 가상 호스트 설정(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


같이 보기


참고

Related content

nginx + php-fpm 환경에서 가상 호스트(Virtual Host) 쉽게 구성하기
nginx + php-fpm 환경에서 가상 호스트(Virtual Host) 쉽게 구성하기
More like this
가상 호스트(Virtual Host) 동작 방식
가상 호스트(Virtual Host) 동작 방식
More like this
가상 호스트(Vritual Host)와 SNI(Server Name Indication)
가상 호스트(Vritual Host)와 SNI(Server Name Indication)
More like this
nginx log를 rotate 해서 일자별로 관리(logrotate)
nginx log를 rotate 해서 일자별로 관리(logrotate)
More like this
nginx 와 apache tomcat 연동하기
nginx 와 apache tomcat 연동하기
More like this
서비스 관리하기
서비스 관리하기
More like this