CVAT 프로젝트 생성 및 사용방법

이미지
CVAT 사용방법 1. cvat 프로젝트 생성     Add label 클릭   label 이름 text 입력 타입은 디폴트 Any  선택 Add an attribute 클릭하여 속성 추가   속성 2개 추가 하나는 이미지에 있는 텍스트, 또 하나는 정답 텍스트 속성  text 입력 타입은 Text 이고 수정가능하게 Mutable 체크 속성 transcription 추가 타입은 Text 이고 수정가능학 Mutable 체크 다 추가 한 후에 Submit & Open 클릭하여 저장 2. Tasks 생성 Tasks 탭에서 Create a new task 클릭 Name 입력 :  알아볼수 있는 이름 Project : 기존에 만든 프로젝트 선택 Subset 필수는 아님 그냥 Train 선택 이미지 파일 추가 Advanced configuration image quality 좋게 100% 입력 Overlap size 0 으로 입력해야 추가한 이미지 그룹으로 묶임 segment size 비워둬야 추가한 이미지 전체가 그룹으로 묶임 저장하고 나면 Jobs에 추가한 Tasks가 보임 Jobs 에 클릭하여 들어가서 작업 영역을 잘 선택후 속성에서 text 에는 이미지에 보이는 텍스트 transcription 에는 이미지에 오타가 있을수도 있기 때문에 text와 조금 다를수 있음 대부분 text와 같음 정답을 입력

아파치서버설치 (modcluster) 적용 및 Wildfly 서버 이중화 구성 방법

 /* 아파치 서버 2대 + Wildfly 서버 2대 2중화 구성 방법 */

🗺️ 네트워크 구성도 (Architecture Overview)      


    















/* 서버 운영제제  Rocky Linux 9.3 */ 

/* 아파치 서버 설치 버전 apache-2.4.63 */

🧱 1. 사전 준비

🔹 필수 패키지 설치

dnf groupinstall "Development Tools" -y
dnf install gcc gcc-c++ make cmake autoconf pcre pcre-devel openssl-devel expat-devel wget net-tools apr-devel apr-util-devel libxml2-devel -y

mod_http2, mod_ssl, mod_deflate, mod_proxy, mod_security, mod_cluster 등을 컴파일할 때 필요


📥 2. Apache 소스 다운로드 및 컴파일

🔹 Apache 2.4.63 + APR, APR-util 다운로드

1. 아파치 소스 리눅스에서 직접 다운로드 설치
cd /usr/local/src

 wget https://downloads.apache.org/httpd/httpd-2.4.63.tar.gz

압축해제
tar -xvf httpd-2.4.63.tar.gz

//2. apr 다운로드
wget https://downloads.apache.org/apr/apr-1.7.5.tar.gz

압축을 푼다
tar -xvf apr-1.7.5.tar.gz

//3. apr-util 다운로드
wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz
tar -xvf apr-util-1.6.3.tar.gz

/* 압축해제한 파일들을 apache소스의 srclib폴더로 이동한다. */
mv apr-1.7.5 httpd-2.4.63/srclib/apr

mv apr-util-1.6.3 httpd-2.4.63/srclib/apr-util

// 아파치 서버를 설치할 폴더를 생성한다.
mkdir /app

⚙️ 3. 컴파일 및 설치

🔹 configure (필요 모듈 포함)

/* http2를 지원하기 위해서는 소스를 먼저 다운받아서 컴파일을 해야 enable-http2가 에러없이
처리 된다. */

/* http2 설치 소스 컴파일 */
cd /usr/local/src
git clone https://github.com/nghttp2/nghttp2.git
cd nghttp2
git submodule update --init
autoreconf -i
./configure
make
make install

이렇게 하면 /usr/local/lib 경로에 설치되며, Apache 컴파일 시 LD_LIBRARY_PATH 또는 LDFLAGS, CPPFLAGS로 지정해줄 수 있습니다.
설치 확인
dnf list installed | grep nghttp2

 --with-nghttp2는 HTTP/2를 위한 필수 라이브러리이며, 
  /usr/local 등 설치 경로를 정확히 지정해야 합니다.

/* http2 사전 준비가 끝났으면 configure  설정을 진행합니다. */
/*  일단 clean  명령으로 깨끗하게 정리 해준 뒤에 진행합니다. */

cd /usr/local/src/httpd-2.4.63

make clean

./configure --prefix=/app/apache2.4.63 \
--enable-so \
--enable-ssl \
--enable-http2 \
--with-nghttp2=/usr/local \
--enable-rewrite \
--enable-expires \
--enable-headers \
--enable-deflate \
--enable-cache \
--enable-disk-cache \
--enable-slotmem-shm \
--enable-mpms-shared=all \
--with-mpm=event \
--with-included-apr \
--enable-proxy \
--enable-proxy-fcgi \
--enable-proxy-http \
--enable-proxy-ajp \
--enable-proxy-balancer \
--enable-mods-shared=all \
--enable-manager \
--enable-modules=most

make 
make install

/* http2 모듈 존재 확인 */
mod_http2.so 모듈 존재 확인
ls /app/apache2.4.63/modules/mod_http2.so

파일이 있다면 성공적으로 http2 지원환경 빌드가 처리 되었습니다.

없다면 Apache를 다시 --enable-http2 옵션으로 재빌드 해야 합니다

httpd.conf에 모듈 로딩 추가
LoadModule http2_module modules/mod_http2.so

/* HTTP/2 프로토콜 활성화 */
SSL 가상 호스트 내에 Protocols 지시어 추가:

<VirtualHost *:443>
  ServerName www.example.com
  Protocols h2 http/1.1

  SSLEngine on
  SSLCertificateFile /path/to/cert.pem
  SSLCertificateKeyFile /path/to/key.pem

  ...
</VirtualHost>

* 주의: HTTP/2는 HTTPS 환경에서만 완벽히 작동
Apache의 mod_http2는 HTTP(포트 80)에서도 동작할 수는 있지만,
대부분의 브라우저는 HTTPS 연결에서만 HTTP/2를 사용합니다.

🔄 mod_proxy_cluster(구 mod_cluster) 소스 컴파일 및 설치

1. 의존성 및 소스 다운로드

cd /usr/local/src

https://github.com/modcluster/mod_proxy_cluster
mod_proxy_cluster (구 mod_cluster) 는 Apache httpd 2.4.X 버전으로 올라가면서 명칭이 mod_proxy_cluster로 변경되었습니다.
mod_cluster는 WAS서버(jboss, wildfly, tomcat)에서 사용되는 모듈의 명칭이고
mod_proxy_cluster는 WEB서버(Apache httpd)에서 사용되는 모듈의 명칭으로 지정되었습니다

git clone https://github.com/modcluster/mod_proxy_cluster.git
$ cd mod_proxy_cluster/native
$ mkdir build
$ cd build/

$ cmake ../ -G "Unix Makefiles" \
  -DAPR_LIBRARY=/app/apache2.4.63/lib/libapr-1.so \
  -DAPR_INCLUDE_DIR=/app/apache2.4.63/include \
  -DAPRUTIL_LIBRARY=/app/apache2.4.63/lib/libaprutil-1.so \
  -DAPRUTIL_INCLUDE_DIR=/app/apache2.4.63/include \
  -DAPACHE_INCLUDE_DIR=/app/apache2.4.63/include

$ make

/* 컴파일 확인 */
[root@8cec427cb119 build]# ll ./modules/
total 292
drwxr-xr-x 2 root root   4096  4월 20 09:24 .
drwxr-xr-x 8 root root   4096  4월 20 09:24 ..
-rwxr-xr-x 1 root root  32272  4월 20 09:24 mod_advertise.so
-rwxr-xr-x 1 root root  36528  4월 20 09:24 mod_lbmethod_cluster.so
-rwxr-xr-x 1 root root 118672  4월 20 09:24 mod_manager.so
-rwxr-xr-x 1 root root 100080  4월 20 09:24 mod_proxy_cluster.so

/* 4개파일이 생성 되었으면 성공이다. 생성된 파일을 아파치 모듈 경로에 복사 해 준다. */
cp ./modules/*.so /app/apache2.4.63/modules/

/* mod_proxy_cluster  설정 */
vi /app/apache2.4.63/conf/extra/httpd-modcluster.conf

LoadModule proxy_module       modules/mod_proxy.so
LoadModule proxy_http_module  modules/mod_proxy_http.so
LoadModule proxy_ajp_module   modules/mod_proxy_ajp.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

LoadModule manager_module       modules/mod_manager.so
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule advertise_module     modules/mod_advertise.so
LoadModule watchdog_module      modules/mod_watchdog.so
LoadModule lbmethod_cluster_module modules/mod_lbmethod_cluster.so

<IfModule manager_module>

<VirtualHost *:80>
  ServerName 127.0.0.1

  <Location /mod_cluster-manager>
    SetHandler mod_cluster-manager
    Require all granted
  </Location>
</VirtualHost>


  Listen 6666
  ServerName localhost
  # WebSocket 사용시
  EnableWsTunnel
  WSUpgradeHeader websocket

  # mod_cluster reverse proxy용 서비스 정의
  <VirtualHost *:6666>
    # WAS가 연결하는 위치 정의
    <Location />

#      Require ip 192.168.0
     Order deny,allow
      Deny from all
      Allow from 127.0.0.1
    </Location>

   # 이 매니저에 연결된 WAS그룹 이름 지정

    # 만약 WAS 에서 직접 balancer 이름을 지정하는경우 무시된다.

    ManagerBalancerName mycluster
    # Advertise 기능 활성화 여부
    ServerAdvertise Off
    EnableMCMPReceive

    # modcluster 관련 로그 출력
    LogLevel info
    ErrorLog logs/modcluster.log

    # 원본 호스트의 요청 헤더를 백엔드로 넘겨줌
    ProxyPreserveHost on
    # Where administrator reads the console from

    <Location /mod_cluster-manager>
      SetHandler mod_cluster-manager
      Order deny,allow
      Deny from all
      Allow from all
      #Require ip 127.0.0

    </Location>

  </VirtualHost>

</IfModule>

/* 아파치 서버 재기동후 브라우저에서 확인한다. */
브라우저 접속 은 http(80)이나 https(443) 포트만 허용된다.
6666 포트는 내부 was 통신만 허용된다.

curl http://127.0.0.1:6666/mod_cluster-manager

브라우저 http://127.0.0.1/mod_cluster-manager

댓글

이 블로그의 인기 게시물

티베로 이관 작업 절차

아파치 보안관련 기본설정

윈도우 네트워크 리소스 사용권한 오류