라벨이 Nginx 서버 셋업인 게시물 표시

[7] Nginx 서버 셋업 - Drogon 서버 OpenCV를 활용한 Text Detection API 구축

이미지
RHEL 환경에서 Text Detection을 Drogon 서버에 연동하여 API 형태로 추출 및 Client에 보여지는 기능 개발 주의. OCR(Optical Character Recognition, 광학 문자 인식)이 아닌 Text Detection이 목적 Detection 이후 OCR은 추후에 연동 해보는걸로.. ## 0. Text Detection 프레임 워크 서치 | 프레임워크 | 언어 | 장점 | 단점 | |---------------------|-----------------|--------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------| | Tesseract OCR | C++ (Python 등) | 오픈 소스, 다국어 지원, 커스터마이징 가능 | 전처리 없이는 성능 저하 가능, 텍스트 감지 기능이 따로 없으므로 OpenCV 등과 함께 사용 필요 | | OpenCV + EAST 모델 | C++, Python | 빠른 텍스트 감지, CPU 및 GPU 모두 지원, OpenCV와의 통합 용이 | 텍스트 감지만 지...

[6] Nginx 서버 셋업 - Up/Down 구현 + 간단한 업로드 client

이미지
리스팅 까지 진행됫고, 업/다운을 Drogon을 통해 구현한다 --- ## 1. 서버 기능 구현 ### 1-1. Drogon Contoller 구현 Drogon Contoller 등록 진행을 한다 ( 아래 작업을 해야 빌드시 인식이 됨 ) ``` cd /root/drogon2/drogon/build/drogon_ctl drogon_ctl create controller FileController ``` --- ### 1-2. 업/다운 구현 소스 위치할 경로 ( /root/drogon2/drogon/build/drogon_ctl/testAPI/controllers ) FileController.h #pragma once #include using namespace drogon; class FileController : public HttpController { public: std:: string _storagePath = "/root/storage/"; METHOD_LIST_BEGIN // "/upload" 경로의 POST 요청 처리 ADD_METHOD_TO(FileController::handleUpload, "/upload", Post); // "/download/{filename}" 경로의 GET 요청 처리 ADD_METHOD_TO(FileController::handleDownload, "/download/{1}", Get); METHOD_LIST_END // 메서드 선언 void handleUpload(const HttpRequestPtr& req, std::function && callback); void handleDownload(const HttpRequestPtr& req, std::function && ca...

[5] Nginx 서버 셋업 - Web에서 서버 폴더 리스팅

이미지
업/다운로드를 구현 하기 전 우선 장비 local 저장소를 만들고 해당 저장소를 web에서 볼수있게 먼저 정의한다 --- ## 1. 저장소 생성 및 권한 부여 - 저장소 생성 ``` mkdir /root/storage cd /root/storage vi test.txt ( 적당히 아무값 넣고 저장 종료 ) ``` - nginx가 뜬 user권한을 폴더에 부여 ``` ps aux | grep nginx --- # 제 경우는 nobody 이므로 해당 폴더 소유주 변환 [root@vbox build] (master) $ ps aux | grep nginx root 52636 0.0 0.0 4544 2412 ? Ss 01:26 0:00 nginx: master process ./nginx root 59772 0.0 0.1 13064 9600 pts/1 T 06:04 0:00 /usr/bin/vim nginx.conf nobody 60676 0.0 0.0 13168 5484 ? S 06:23 0:00 nginx: worker process nobody 60677 0.0 0.0 13168 5612 ? S 06:23 0:00 nginx: worker process --- # 권한 및 소유주 변환 sudo chmod -R 755 /root/storage sudo chown -R nobody:nobody /root/storage # SELinux 보안 컨텍스트 수정 sudo chcon -R -t httpd_sys_content_t /root/storage ``` 위 작업들을 수행하지 않으면, 403 Fobbiden을 맞게된다 --- ## 2. Nginx 설정 적용 - alias 통해, list api 가 들어오면 /root/storage의 경로를 보여준다 ``` user nobody; worker_proce...

[4] Nginx 서버 셋업 - Drogon 테스트 API 작성

이미지
API를 만들어보자 Drogon 으로 만들거고, 관련 해서 특정 값을 리턴하는 정도로 진행한다 --- ## 1. Drogon Test Project 설정 - drogon_ctl 이 설치된 곳에서 아래 명령어를 입력한다 ``` drogon_ctl create project testAPI cd testAPI ``` --- ## 2. 빌드 - 전체 경로의 경우 /root/drogon2/drogon/build/drogon_ctl/testAPI/build 가 된다 ``` mkdir build cd build cmake .. make ``` --- 만약 아래 에러 발생 시 환경변수 선언하고 drogon 재설치하는게 마음편하니 재설치하자 ``` CMake Error at /usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package): By not providing "FindJsoncpp.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Jsoncpp", but CMake did not find one. Could not find a package configuration file provided by "Jsoncpp" with any of the following names: JsoncppConfig.cmake jsoncpp-config.cmake Add the installation prefix of "Jsoncpp" to CMAKE_PREFIX_PATH or set "Jsoncpp_DIR" to a directory containing one of the above files. If "Jsoncpp...

[3] Nginx 서버 셋업 - C++ 웹 프레임워크 연결

이미지
C++ 서버로 만들어 보는게 목표이기에 프레임워크 서치를 우선 진행 ## 0. C++ 웹 프레임워크 조사 | 프레임워크 | 장점 | 단점 | |------------|------|------| | **Drogon** | - 최신 C++14/17 지원 - 비동기 프로그래밍 및 다중 스레드 지원 - HTTP2, WebSocket 지원 - 높은 성능 및 사용자 친화적 API - 활발한 커뮤니티 및 지원 | - 초기 설정이 복잡할 수 있음 | | **Pistache** | - 경량 설계로 빠른 웹 서버 구현 - RESTful API 개발에 적합 - 간단한 코드와 쉬운 학습 | - 개발 및 업데이트 속도가 느림 - 제한된 기능성 | | **Crow** | - Flask와 유사한 직관적인 사용법 - JSON 지원 및 라우팅 기능 포함 - 경량 설계 | - 기능이 제한적이며 대규모 애플리케이션에는 부적합 - 유지보수가 부족할 수 있음 | | **CppCMS** | - 고성능 웹 애플리케이션 구축 가능 - 세션 관리 및 국제화 지원 | - 설정이 복잡하고 높은 학습 곡선 - 문서가 부족하고 사용법이 어렵다 | | **Restbed** | - RESTful API 개발에 적합 - 비동기 및 확장 가능한 설계 | - 제한된 기능으로 대규모 프로젝트에는 부적합 - 커뮤니티 지원이 활발하지 않음 | - GPT 피셜 인기 좋은 Drogon으로 우선 진행해보기로한다. --- ## 1. 프레임워크 의존성 설치 ``` sudo yum install -y git cmake gcc-c++ libuuid-devel openssl-devel zlib-devel brotli-devel jsoncpp-devel libuuid libuuid-devel ``` jsoncpp-devel 없다면 별개 설치필요 --- ### jsoncpp는 별개 설치 ``` # jsoncpp 소스 코드 다운로드 git clone https://github.com/open-source-parsers/jso...

[2] Nginx 서버 셋업 - 특정버전 nginx 다운로드하여 셋업

이미지
시스템 경로에 셋업하여 실행하는 법이 있지만, 다운로드 및 빌드하여 셋업하는 방법으로 진행하겠습니다. ## 구축환경 - Red Hat Enterprise Linux release 9.4 (Plow) ## 1. NGINX 다운로드 및 압축 해제 ``` wget http://nginx.org/download/nginx-1.21.6.tar.gz tar -xvf nginx-1.21.6.tar.gz ``` --- ## 2. 필요 Library 설치 ``` sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel ``` - gcc: C 컴파일러로, NGINX 소스 코드를 컴파일하여 실행 가능한 프로그램으로 만드는데 필요합니다. - pcre: Perl Compatible Regular Expressions 라이브러리로, NGINX에서 정규 표현식을 처리할 수 있도록 지원합니다. - pcre-devel: PCRE 라이브러리의 개발 헤더 파일을 포함하며, NGINX를 컴파일할 때 필요합니다. - zlib: 데이터 압축을 위한 라이브러리로, NGINX의 Gzip 압축 기능을 사용하기 위해 필요합니다. - zlib-devel: zlib의 개발 파일을 포함하며, 소스 컴파일 시 필요한 헤더 파일과 라이브러리를 제공합니다. - openssl: SSL/TLS 암호화를 위한 라이브러리로, HTTPS 및 보안 연결을 처리하기 위해 NGINX에 필요합니다. - openssl-devel: OpenSSL 라이브러리의 개발 헤더 파일을 포함하며, NGINX의 SSL/TLS 지원을 컴파일할 때 필요합니다. --- 만약 설치시 아래 에러가 발생한다면 ``` Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) 0.0 B/s | ...

[1] Nginx 서버 셋업 - Virtualbox 설치 및 Putty 연결

이미지
테스트용 Linux 셋업을 위해 가상환경 설치 진행 VMWare를 쓸려햇는데 가입이 귀찮게 되어있어 VirtualBox로 선회 ### 셋업 환경 - window10 ### 설치 ## 1. VirtualBox - Download - https://www.virtualbox.org/wiki/Downloads - 위 경로에서 다운로드 진행 ( OS에 맞게 설치, widnows hosts 로 진행 ) --- - 다운로드 이후 설치 진행 --- ## 2. RHEL(RedHat Enterprise Linux) OS 다운로드 CentOS를 주로썼지만 EOL (End of Line) 으로 이제는 RHEL쓰기를 권장 - https://developers.redhat.com/products/rhel/download (24.11.02 기준 9.4 version) - RHEL을 무료로 사용하려면 Individual Developer Subscription에 등록해야 하고 등록 비용은 발생하지 않는다. --- ## 3. VirtualBox - RHEL 가상머신 만들기 1. 머신 > 새로 만들기 ㄴ 저장소 경로 설정 --- 2. VM 비밀번호 셋업 --- 3. 가상머신 리소스 할당 ㄴ 사용 컴퓨터에 따라 동적으로 변함. 저는 4core / 8GB 할당함 (20GB) --- 4. 소프트웨어 확인 (GUI 시스템은 필요없어서 제거) --- 5. 접속 확인 --- ## 4. Putty 연결 아래 사항 확인 ### 4-1.VM 설정에서 확인 사항 ``` 1. VirtualBox를 실행하고 연결할 가상 머신을 선택한 후 설정 2. 네트워크 탭 이동 > 어댑터 1을 NAT로 설정한 후 고급 옵션 3. 포트 포워딩 규칙 설정 이름: 원하는 이름 입력 (예: SSH) 호스트 포트: 9999 (또는 사용하지 않는 포트) 게스트 포트: 22 (기본 SSH 포트, 고정) ex) putty -(9999...

이 블로그의 인기 게시물

윤석열 계엄령 선포! 방산주 대폭발? 관련주 투자 전략 완벽 분석

대통령 퇴진운동 관련주: 방송·통신·촛불수혜주 완벽 분석

키움 OPEN API MFC 개발 (1)