VbFcgi
VB6에서 웹 애플리케이션 백엔드를 코딩하세요! VbFcgi를 사용하면 현재 프로그래밍 지식을 쉽게 활용하고 웹에서 기존 VB6 클라이언트/서버 앱을 얻을 수도 있습니다.
![VBFCGI 데모 스크린샷](https://images.downcodes.com/uploads/20241214/img_675d1ee17e00630.png)
소개
VbFcgi는 VB6(Visual Basic 6) ActiveX/COM DLL 웹 응용 프로그램용 FCGI 호스트/서버 프레임워크입니다. Nginx를 대상으로 개발되었지만 FCGI 사양을 구현하는 모든 웹 서버에서 작동해야 합니다.
프로세스 다이어그램
![VBFCGI 프로세스 다이어그램](https://images.downcodes.com/uploads/20241214/img_675d1ee17f4f631.png)
포함된 바이너리
VbFcgi 프레임워크에는 3가지 주요 구성요소가 있습니다.
- VbFcgiLib.dll - 이는 웹 서버의 FCGI 요청을 수신 및 응답하고 FCGI 매개변수, HTTP 쿠키 등에 대한 레코드를 구문 분석하는 모든 코드를 포함하는 기본 프레임워크 라이브러리입니다. 이 파일은 포함되어야 합니다. FCGI 애플리케이션을 배포할 때마다
- VbFcgiHost.exe - 이는 웹 서버와 FCGI 응용 프로그램 간의 브로커로서 FCGI 수신기를 생성하는 기본 실행 파일입니다. 여기에는 로드 밸런싱을 위해 순차 포트에서 여러 리스너를 실행하는 지원이 포함되어 있으며 다시 생성해야 하는 종료된 리스너를 모니터링합니다. 마지막으로, 실행 중인 모든 FCGI 리스너 인스턴스에 대한 종료 조정자 역할도 합니다. 이 파일은 FCGI 응용 프로그램의 모든 배포에 포함되어야 합니다.
- VbFcgiApp.dll - 데모 FCGI 애플리케이션 코드입니다. 여기에 포함된 버전은 수신된 FCGI 매개변수 테이블과 함께 HTML 페이지 업스트림을 전송하는 매우 기본적인 개념 증명이며, 쿠키 및 HTTP 쿼리 매개변수의 기본 사용법도 보여줍니다. 이 파일은 배포 시 포함되어서는 안 됩니다. 나만의 FCGI 애플리케이션! 대신 아래의 FCGI 애플리케이션 생성 섹션에 설명된 대로 고유한 버전을 생성해야 합니다.
위 DLL은 COM ActiveX 라이브러리이지만 이 코드는 Olaf Schmidt의 등록이 필요 없는 DirectCOM 라이브러리를 사용하므로 사용자에게 배포할 때 regsvr32에 등록할 필요가 없습니다. 그러나 개발 컴퓨터에 위 DLL을 등록해야 합니다.
또한 localhost:9100에서 단일 FCGI 호스트 서버 리스너를 지원하기 위한 기본 구성을 갖춘 Nginx의 바이너리 빌드도 포함되어 있습니다. 이는 편의를 위해 포함되었으며 최소한의 구성을 보여줍니다. 대부분의 경우 적절하게 구성된 Nginx(또는 다른 웹 서버)가 실행되고 있어야 합니다.
마지막으로 편의를 위해 Olaf Schmidt의 뛰어난 vbRichClient5 라이브러리(http://www.vbrichclient.com/)도 번들로 포함했습니다. vbRichClient5 웹사이트에서 언제든지 최신 버전을 얻을 수 있습니다.
데모 사용법
- 아직 실행 중인 웹 서버가 없는 경우 명령줄에서 .VbFcgibinnginx 폴더로 이동한 다음 nginx.exe 명령을 실행하여 nginx를 시작합니다. 이미 실행 중인 웹 서버가 있는 경우 브라우저 업스트림의 *.fcgi 요청을 127.0.0.1 포트 9100으로 전달하도록 구성되어 있는지 확인하세요.
- 명령줄에서 다음 명령을 사용하여 VbFcgiHost.exe를 시작합니다: vbfcgihost.exe /host 127.0.0.1 /port 9100 /spawn 1
- 브라우저를 열고 http://127.0.0.1/vbfcgiapp.fcgi로 이동하세요. 데모 FCGI 애플리케이션의 HTML 응답이 표시되어야 합니다.
나만의 FCGI 애플리케이션 만들기
포함된 VbFcgiApp 소스 코드를 시작점으로 사용할 수 있습니다. 모든 작업은 IFcgiApp_ProcessRequest 메서드에서 수행되므로 철저하게 검토하세요.
FCGI 애플리케이션을 처음부터 작성하려면 다음을 수행해야 합니다.
- VB6에서 새 ActiveX DLL 프로젝트를 시작합니다.
- 프로젝트 이름을 "Project1"에서 "MyFcgiApp"(또는 원하는 이름)으로 변경합니다.
- "Class1"의 이름을 "CFcgiApp"으로 변경합니다.
- 프로젝트 메뉴 > 참조에서 VbFcgiLib에 대한 참조를 추가합니다.
- "CFcgiApp" 클래스의 일반 섹션에 다음을 입력합니다. VbFcgiLib.IFcgiApp 구현
- 코드 보기의 드롭다운 목록에서 "IFcgiApp"을 선택합니다. 그러면 IFcgiApp_ProcessRequest 메서드가 생성됩니다.
- IFcgiApp_ProcessRequest 메서드(나머지 빌어먹을 올빼미)에서 앱을 코딩하세요.
- DLL 앱을 빌드하세요.
- 빌드된 DLL의 복사본을 만들고 확장자를 .fcgi로 변경합니다.
- .fcgi 파일을 VbFcgiHost.exe 및 VbFcgiLib.dll 파일과 동일한 폴더로 이동합니다.
참고: 이 프레임워크에서는 등록이 필요 없는 인스턴스화를 사용하므로 배포할 때 FCGI 응용 프로그램 DLL이나 VbFcgiLib.dll을 등록할 필요가 없습니다 .
이후에 VbFcgiHost.exe를 실행하면 .fcgi가 해당 FCGI 요청에 응답하기 위한 "플러그인"(일종의)으로 사용됩니다. 예를 들어, http://localhost/myapp.fcgi를 입력하면 VbFcgiHost가 동일한 폴더에 저장된 myapp.fcgi DLL에서 CFcgiApp 클래스의 인스턴스를 생성한 다음 해당 클래스에서 IFcgiApp_ProcessRequest를 호출하게 됩니다.
즐기다!