1. 개요

  작업 외주를 통해서 문의가 접수되었다. 내용을 검토해보니, AWS 에서 EC2 서비스를 구성 중인데  32bit-64bit Library 충돌로 인해 현재 구성이 정상적으로 이루어지지 않고 있다고 한다.

아직 구성된 프로그램이 존재하지 않기에 EC2 신규 구성 후 진행할 것을 권고 했다.

클라이언트도 이를 동의하여 작업을 진행한다.

 

2. 구성

 1) 기초 구성

export REPO_UTIL="gcc gcc-* pcre apr apr-util zlib zlib-devel cmake wget zip unzip crontab crond openssl perl expat-devel expect"

export REPO_MANAGE="git htop iptraf-ng tcpdump telnet nslookup bind-utils ping rdate grep rsync lsync net-tools certbot"
yum update -y

yum clean all

yum install yum-fastestmirror

echo -e "yum repostiory 갱신 시작."
yum install -y epel-release

echo -e "유틸 프로그램 설치 시작."
yum install -y ${REPO_UTIL}

echo -e "관리 툴 설치 시작."
yum install -y ${REPO_MANAGE}
yum install glibc
yum install glibc.i686 libstdc++.i686 -y
yum install htop
yum install lib32tinfo5
sudo yum install ncurses-libs.i686
yum install libcurl.i686
ln -s /usr/lib/libcurl.so.4 /usr/lib/libcurl-gnutls.so.4

export LIMIT_PATH=/etc/security/limits.conf
export TIME_SERVER=time.bora.net
echo -e "시간체크"
rdate -p ${TIME_SERVER}
echo -e "시간 동기화"
rdate -s ${TIME_SERVER}
echo "#DrSoft Custom Set"  >> ${LIMIT_PATH}
echo "*    soft    nofile    65536" >> ${LIMIT_PATH}
echo "*    hard    nofile    65536" >> ${LIMIT_PATH}
echo "*    soft    memlock    unlimited" >> ${LIMIT_PATH}
echo "*    hard    memlock    unlimited" >> ${LIMIT_PATH}
rdate -s ${TIME_SERVER}

 2) PufferPanel 구성

   - RPM 설치

curl -s https://packagecloud.io/install/repositories/pufferpanel/pufferpanel/script.rpm.sh | sudo bash
sudo yum install pufferpanel
sudo systemctl enable pufferpanel

#관리자 계정 생성
sudo pufferpanel user add

# 서비스 자동 실행 및 활성화
sudo systemctl enable --now pufferpanel

# Port Listen 확인
netstat -tnlp | grep 8080

   - 웹서버 설정 ( Apache )

#필요 모듈
mod_proxy
mod_proxy_http
mod_proxy_wstunnel
mod_rewrite
# Apache
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerName panel.example.com

        ProxyPreserveHost On
        SSLProxyEngine On
        ProxyPass / http://localhost:8080/
        ProxyPassReverse / http://localhost:8080/

        RewriteEngine on
        RewriteCond %{HTTP:Upgrade} websocket [NC]
        RewriteCond %{HTTP:Connection} upgrade [NC]
        RewriteRule .* ws://localhost:8080%{REQUEST_URI} [P]

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/panel.example.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/panel.example.com/privkey.pem
    </VirtualHost>
</IfModule>

   - 웹서버 설정 ( Nginx )

# Nginx
server {
         listen 80;
         root /var/www/pufferpanel;

         server_name panel.examplehost.com;

         location ~ ^/\.well-known {
           root /var/www/html;
           allow all;
         }

         location / {
             proxy_pass http://localhost:8080;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header X-Nginx-Proxy true;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection "Upgrade";
             proxy_set_header Host $host;
             client_max_body_size 100M;
         }
     }

 

PufferPanel 초기 화면

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기