엔진엑스 가상 호스트 설정(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 권한으로 실행해야 합니다.
가상 호스트 폴더 생성
mkdir /etc/nginx/sites-available/ mkdir /etc/nginx/sites-enabled/
nginx.conf 편집합니다.
vi /etc/nginx/nginx.conf
- 주요 설정값
worker_processes:별도의 프로세스로 구동되어 실제 처리를 하는 프로세스의 갯수로 서버 cpu 의 core 갯수를 확인한 후 이 숫자대로 주는게 좋습니다.
grep processor /proc/cpuinfo | wc -l
- worker_connections: 워커 프로세스당 동시에 처리할 수 있는 연결 갯수. 기본 값 768
- max_clients = worker_processes * worker_connections
nginx.conf 설정 예제
sites-enabled/example.com 가상 호스트 예제
nginx 재구동
systemctl restart nginx
serve script 사용
위의 과정을 자동화하기 위해 별도의 스크립트를 작성했으니 다운로드 받아서 실행하면 됩니다.
serve-php
php 로 웹 서비스할 경우 사용합니다.
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
실행할 경우 도메인명(예: mynew.site)과 webroot (/var/www/my-new-site-webroot)경로를 파라미터로 주면 됩니다.
sudo serve-php.sh mynew.site /var/www/my-new-site-webroot
serve-tomcat
tomcat 으로 서비스할 경우 사용합니다.
다운로드합니다.
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
실행은 도메인명과 tomcat 의 http port 를 주면 됩니다.
sudo serve-tomcat.sh mynew.site 8080