다음의 글이 도움이 될 듯 싶다. Kernel hugepages does not alter the calculation of SHMMAX, which you need to set large enough to fit your largest Oracle SGA. SHMMAX applies to SYS V shared memory, which can be hugepages or use conventional 4K memory pages. SHMMAX is not relevant when you use /dev/shm POSIX shared memory (Oracle AMM). The Oracle database requires shared memory for the SGA. This can be Sys V (IPC) or POSIX /dev/shm. Shared memory and semaphores, […]
XFS 마운트 옵션.
XFS 파일 시스템은 요즘에 들어서 많이 사용되는 파일 시스템입니다. SGI 회사에서 개발한 것으로 대용량 파일 시스템으로 특화되어 있습니다. 최근들어 Big Data 가 대두되면서 스토리지 용량이 대용량화 되면서 XFS 가 떠오르는데, CentOS 7 배포판은 기본 파일시스템으로 XFS 가 되었습니다. XFS 는 옵션들이 많이 있는데, 보통 대용량으로 많이 사용할 경우에 다음과 같은 옵션을 주로 많이 사용합니다.
1 |
/dev/sdb /srv/node/sdb xfs noatime,nodiratime,nobarrier,logbufs=8 0 2 |
Apache 2.4 에서 RemoteIPInternalProxy 의미
Apache 2.4 에서 RemoteIPInternalProxy 는 다음과 같이 사용합니다.
1 |
RemoteIPInternalProxy 192.0.2.0/24 |
이 문법을 X-Forwared-For 와 함께 사용하면 다음과 같다.
1 2 |
RemoteIPInternalProxy 192.0.2.0/24 X-Forwarded-For 198.51.100.1, 198.51.100.2, 192.0.2.1 |
X-Forwarded-For 는 원격지 주소를 192.0.2.1 이 된다. 그런데 RemoteIPInternalProxy 의 영향으로 인해서 192.0.2.1 은 내부 Proxy 로 지정되었기 때문에 X-Forwarded-For 의 원격지 주소는 198.51.100.2 가 된다. ps, X-Forwarded-For 는 여러개의 IP를 기록할 수 있다. 만일 여러개를 기록할 경우에 맨 오른쪽에 IP가 최종 원격지 IP 주소가 된다.
UBUNTU 14.04 KVM 게스트에 콘솔 접속하기
KVM 가상화를 사용하고 있고 게스트로 Ubuntu14.04 를 사용하고 있다면 콘솔 접속을 위해서는 다음과 같이 해주어야 한다. ttyS0 터미널 설정 KVM 게스트인 Ubuntu14.04 에 콘솔로 접속하기 위해서는 게스트 Ubuntu14.04 에 ttyS0 터미널로 접속을 해야 한다. 그런데 Ubuntu 14.04 에는 ttyS0 터미널 설정이 되어 있지 않아 이를 설정을 해야 한다. /etc/init/ttyS0.conf 파일을 다음과 같이 생성한다.
1 2 3 4 5 6 7 8 9 10 |
# ttyS0 - getty # # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -L 115200 ttyS0 xterm |
그리고 다음과 같이 /etc/securetty 파일에 ttyS0 를 추가 해준다.
1 |
ttyS0 |
/etc/default/grub 편집 이제 grub 에서 ttyS0 이 콘솔 접속이 되도록 다음과 같이 편접해 준다. […]
Apache Proxy Load Balancer 구성
Apache 웹 서버는 세계적으로 많이 사용되는 웹 서버이다. 많은 기능을 내장하고 있는데, 그 중에서 Proxy Load Balancer 구성에 대해서 설치부터 설정까지 기술 한다. 기술 환경은 다음과 같다. 배포판: Ubuntu14.04 64bit Apache: 2.4.25 컴파일 설치. 운영환경도 아주 중요하다. 이 문서에서 기술한 운영 환경은 AWS 환경이며 External ELB 바로 뒤에 Apache 웹 서버가 있다. 이 Apache 웹 서버는 뒤에 WAS 서버가 존재하는 환경이다. 의존성 패키지 설치 컴파일 설치를 하기전에 의존성 패키지를 다음과 같이 설치해 줍니다.
1 2 3 4 5 |
apt install libpcre3-dev apt install zlib1g-dev # mod_deflate 를 위해서 필요. apt install libevent-openssl-2.0-5 apt install libssl-dev apt install libtool autotools-dev |
설치 설치는 소스를 받아 직접 […]
KVM에 Bridge Network 설정
CentOS 6 에는 가상화로 KVM만 지원합니다. Xen은 빼버렸습니다. 가상화로 KVM을 하게되면 사용할 수 있게됩니다. 그런데, KVM을 활성화하게 되면 virbr0 라는 가상의 이더넷이 생성이되는데 이것이 NAT로 동작하게 됩니다. 그러니까 KVM의 게스트들은 virbr0 의 NAT를 이용해서 인터넷을 하게 되는 것입니다. 그런데 제가 집에서 사용하는 인터넷 사용환경은 공유기를 이용해서 각 피시에서 private ip 주소를 할당해서 사용합니다. 그래서 KVM의 게스트들도 직접 공유기로 부터 private ip 주소를 할당 받기를 원했습니다. 그렇게 하기위해서는 virbr0 를 NAT를 정지시키고 br0 을 만들어서 eth0와 br0를 Bridged 시키면 됩니다. 이 […]
Apache 2.4 환경변수를 이용한 로그 남기기 – mod_setenvif
Apache 2.4 에서 로그를 남기는 다양한 방법이 있는데, mod_setenvif 모듈을 이용하면 다양한 조건에 부합한 것만 로그를 남길 수 있다.
1 2 3 4 5 |
<VirtualHost 192.168.96.30:80> CustomLog "|/opt/httpd/bin/rotatelogs /opt/httpd/logs/access.%Y-%m-%d.log 86400" combinedio </VirtualHost> |
위 예제는 access.2017-04-13.log 파일에 로깅을 하는데 combinedio 로 정의된 로그 포맷대로 기록하며 86400(1day) 하루에 한번 로그 로테이션을 하도록 설정한 것이다. 그런데, 만일 기록되어지는 로그중에 특정 형식의 URI 로 시작하는 경우에 별도의 로그 파일에 기록하고 싶다면 어떻게 해야할까?
1 |
192.168.96.11 - - [13/Apr/2017:23:43:03 +0900] "POST /wp-admin/admin-ajax.php HTTP/1.1" 200 58 "http://linux.systemv.pe.kr/wp-admin/edit.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.54 Safari/537.36" "-" |
위 처럼 /wp-admin 으로 시작하는 URI 를 별도 파일로 기록하고 싶다면 다음과 같이 하면 된다.
1 2 3 4 5 6 7 8 |
SetEnvIfNoCase Request_URI "^/wp-admin.*" object_is_admin <VirtualHost 192.168.96.30:80> CustomLog "|/opt/httpd/bin/rotatelogs /opt/httpd/logs/access.%Y-%m-%d.log 86400" combinedio CustomLog "|/opt/httpd/bin/rotatelogs /opt/httpd/logs/access_wp_admin.%Y-%m-%d.log 86400" combinedio env=object_is_admin </VirtualHost> |
위와같이 mod_setenvif 모듈이 제공하는 SetEnvIfNoCase 문을 […]
Nginx 이용한 로드 밸런싱(Load Balancing) 구현하기
Nginx 는 전세계적으로 인기있는 웹 서버 입니다. 기존 웹 서버들과 달리 고속이며 대량의 접속을 적은 자원으로 처리해줍니다. 또, Nginx 는 Reverse Proxy 기능도 아주 훌륭하게 수행하며 이에 더해서 로드밸런싱 기능도 제공하는듯 다양한 기능을 다른 웹서버들보다 훌륭하게 수행합니다. 아키텍쳐(Architecture) 먼저 다음과 같은 아키텍쳐를 생각해 봅시다. AWS 에 흔히 볼수 있는 기본적인 아키텍쳐입니다. 외부 접속은 External ELB가 담당하고 이것을 뒤에 Nginx 서버가 ELB의 접속을 받아서 Nginx 뒤에 있는 Jboss EAP 서버에 분배 접속을 하도록 하는 것입니다. Nginx 로드 밸런싱(Load Balancing) Nginx 는 […]
Ubuntu 16.04 KVM 게스트에 콘솔 접속하기
KVM 가상화를 사용하고 있고 게스트로 Ubuntu16.04 를 사용하고 있다면 콘솔 접속을 위해서는 Grub2 설정을 다음과 같이 해주면 된다.
1 2 3 4 |
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0" GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --stop=1" |
위와같이 해주고 다음과 같이 grub 을 갱신해준다.
1 |
update-grub |
[AWS] Private Subnet 으로 서비스 구성하기.
AWS 는 전 세계적으로 가장 인기있는 Cloud Platform 이다. Web Console을 이용해서 원하는 자원을 구성하고 컴퓨터, 네트워크, 저장소등을 실시간으로 생성할 수 있으며 네트워킹 구성도 실시간으로 구성이 가능하다. 그래서 많은 IT 업체들이 AWS 클라우드를 사용하고 있다. 특히나 전 세계를 대상으로 인터넷 서비스를 하려는 업체들은 AWS 를 통해서 막대한 IT 인프라 구축비용 절감하고 있다. 오늘은 AWS 클라우드를 이용해서 가장 많은 구성이며 기본적인 구성인 Web Service 를 Private Subnet 을 이용해 구성해보도록 하겠다. 이 포스트는 AWS 클라우드에 대해서 어느정도 기초지식을 갖추고 있다고 가정하고 […]