Listen port (80) is in use. Try to bind to that port again in 10 seconds.  errno=13(Permission denied)


webtob 구동시 권한에 의한 구동 문제


1024 번 이하의 포트를 개별 프로그램이 사용하지 못 하도록 시스템이 제한하기 때문이다. root 만 1024번 포트를 사용할 수 있도록 보안을 강화시켜 놓았기 때문이다.

웹투비 bin 디렉토리에 htl 에 system 권한이 있어야 함

chmod +s htl  루트 권한으로 실행

소유자변경   chown root htl

그룹변경      chgrp  root htl


wsboot 구동시 로그상에

HTH-2294 W HTH0072: Failed to connect to HTL. fail count=11, path=/kkachil_sw/webtob/path/htld  errno=13(Permission denied)

나오면서 웹이 안뜰시 

http.m  파일에 내용 추가 

*NODE

IPCPERM = 0777,


'미들웨어 > WEBTOB' 카테고리의 다른 글

[WebtoB] 환경설정  (0) 2016.05.20
[WebtoB] 설치 후 설정내용  (0) 2016.05.20
[WebtoB]WebtoB 설치  (0) 2016.05.20
[WebtoB] WebtoB 개요 & 아키텍쳐  (0) 2016.05.20
우분투 16.04 LTS 에 WEBTOB4.1 설치  (0) 2016.05.11

안드로이드 프로젝트 생성 + 가상 장치(Virtual Device) (for Mac)


1. 안드로이드 스튜디오 실행 및 프로젝트 생성

안드로이드 스튜디오를 성공적(?)으로 실행했다면 다음과 같은 화면을 볼 수 있습니다.





자연스럽게 무얼 해야 할 지 감이 오시죠? [ Start a new Android Studio project ]를 선택합니다.





New Project 에 대한 간단한 정보를 입력해보았습니다. 테스트용 어플의 이름(Application Name)을 hello 라고 입력해보았습니다. 아래쪽에 빨간 경고 메시지가 뜹니다. 대문자로 시작해야 한다는 것 같군요!!





어플 이름을 Hello로 바꿨더니 경고 메시지가 사라졌습니다. 다음 단계로 넘어가봅시다.


어플의 이름은 반드시 대문자로 시작할 것!!




개발할 안드로이드 앱이 어느 환경에서 실행될 것인지를 결정합니다. 테스트이니 기본 환경으로 진행해보겠습니다. 


일단 Phon and Tablet이 선택되어 있구요, Minimum SDK (최소 버전, 이 단계 보다 상위 버전에서 실행이 가능)은 Android 4.0.3 (IceCreamSandwich)로 선택되어 있네요. 





첫 화면의 기본 레이아웃을 결정합니다. 안드로이드 어플에서 한 화면에 보이는 레이아웃을 액티비티 Activity 라고 합니다. 처음이니 Empty Activity를 선택해보겠습니다.





Activity Name과 Layout Name을 정합니다. 일단 기본값으로 실행해보겠습니다. 왠만해서는 거의 만질 일이 없더라구요.





오늘의 팁(?)과 함께 Hello 프로젝트가 열렸습니다.





잠시 당황!! 아무것도 없잖아!? 처음이라 그랬나봐요.. 인내(?)를 가지고 3분 정도 기다리자 프로젝트가 나타납니다. (화면 아래쪽에 보면 Indexing이라는 메시지와 함께 파란 막대가 올라가고 있어요)





2. 안드로이드 가상 디바이스 생성 (AVD : Android Virtual Device) 

이제 프로젝트를 실행하고 결과를 눈으로 보고 싶어졌습니다. 그러기 위해서는 가상 디바이스를 생성해야 합니다. 가상 디바이스가 없다면 매번 실제 안드로이드 폰을 연결해서 결과를 확인할 수도 있겠습니다만 그것도 나름 귀찮기 때문에 가상 안드로이드 폰을 만들겁니다. 





안드로이드 스튜디오 상단에 [ AVD Manager ] 아이콘이 있습니다. 클릭해볼까요?   




물론 메뉴에서 직접 찾아도 됩니다. [ Tools ] > [ Android ] > [AVD Manager ] 메뉴를 찾을 수 있군요.





가상 디바이스를 만들어봅시다. 화면 중앙에 [ + Create Virtual Device... ] 이란 메뉴가 보입니다. 





다양한 종류의 가상 디바이스 들이 보입니다. 잘 모르니깐 기본으로 선택된 Nexus 5X를 만들어보겠습니다.





운영체제를 선택하는 것 같아요.





[ Recommended ] 옆에 있는 [ x86 Images ]를 선택하니 더 많은 OS들이 나타났습니다. 이전에 SDK를 설치할 때 제 핸드폰 운영체제 버전과 같은 Android 4.1 (Jelly Bean)을 설치했더니 화면에서도 나타나네요. 그걸 선택해볼게요.





저장할 기본 내용들을 다시 확인합니다. 여러 개의 가상 디바이스를 만들었을 때 구분할 수 있는 이름도 정하고, 지금까지 선택한 설정이 맞는지 확인합니다. [ Show Advanced Setting ]을 누르면 좀 더 세부적인 설정을 할 수 있습니다.




  • RAM 을 700정도로 잡아서 컴퓨터의 메모리를 너무 많이 사용하지 않도록 합니다. (라고 어느 블로그에 나와있었어요..)
  • Enable keyboard input 을 해제하면 글자 입력시 키패드가 올라온다고 합니다. (라고도 어느 블로그에 나와있었어요...)




가상 디바이스 하나가 잘 만들어졌습니다. 실행을 해볼까요? 더블클릭을 하거나 Actions 밑에 있는 초록색 세모를 눌러줍니다.





꽤 오랜 시간이 지난 후에 가상의 핸드폰이 하나 만들어졌습니다. (너무 하다 싶을 정도로 오래 걸렸구요, 실행되는 동안에는 컴퓨터가 멈춘 줄 알았어요.....) 



3. 안드로이드 프로젝트 실행하기



가상 디바이스 까지 만들어졌으니 이제 거의 다 왔습니다. 아까 생성했던 어플(?)을 실행해 보겠습니다.





다시 안드로이드 스튜디오로 돌아와서 화면 속에 보이는 초록색 세모를 눌러보겠습니다. 또는 [ Run ] > [ Run 'app' ]을 눌러보겠습니다.





그러자 새로운 창 안에 Connected Devieces가 나오고, 조금전에 실행했던 Nexus 5X 가상 디바이스가 보입니다.

 

 



망설일 필요 있나요? [ OK ] 를 눌러보았습니다. 그랬더니 잠시 후에.... 짜잔!!





가상 디바이스 안에 "Hello World!"가 나타났습니다!! 드디어 성공이네요!!


안드로이드 스튜디오(Android Studio) 설치하기 

+ SDK 설정하기 (for Mac)



1. 다운로드 받기

안드로이드 스튜디오를 다운 받기 위해 홈페이지를 찾아가봅시다.





웹페이지에 들어와보니 바로 다운로드를 할 수 있습니다. 아마도 운영체제 플랫폼에 따라 다운로드 페이지도 다르게 열리나 봅니다. 맥으로 접속했더니 맥용 안드로이드 스튜디오를 다운로드 받을 수 있습니다.




다운로드 버튼을 누르자 뭔가 동의하냐는 질문이 있습니다. 체크를 하면 다운로드 창이 파랗게 활성화가 됩니다. 클릭하면 안드로이드 스튜디오 파일이 다운로드 됩니다. 어렵지 않죠?



2. 안드로이드 스튜디오 설치하기


다운로드 받은 파일을 더블클릭하면 설치를 시작할 수 있습니다.



익숙한 화면이시죠? 아이콘을 Applications 쪽으로 드래그 하면 간단하게 복사가 되며 설치가 완료(?)됩니다. 


이제 설치된 프로그램을 실행해 보겠습니다.





인터넷에서 다운로드된 응용프로그램이랍니다. 맞아요. 그랬죠... [ 열기] 를 눌러보겠습니다. 




이전 버전의 설정을 임포트 하겠냐고 묻는 것 같네요. 저는 처음 설치했으니 아랫줄을 체크하고 [ OK ] 를 눌렀습니다.



뭔가.. 자신이 실행되고 있다는 걸 보여주고 있다가...




재미난 창이 떴습니다. 웰컴이랍니다. 설치 마법사가 다음을 진행하겠다고 하네요. (설치가 아직 끝난게 아니었군요......)





어떤 방식으로 안드로이드 스튜디오를 설치할건지 물어봅니다. 표준(Standard)으로 설치할 건지, 커스텀(Custom)으로 설치할 건지를 묻네요. 뭔지 잘 모르니깐 추천 옵션인 스탠다드로 설치하겠습니다.





이러이러한 것들을 설치한다고 합니다. 과감히 [ Finish ] 버튼 클릭!




파일들을 다운 받고 있습니다. 인터넷이 연결되어 있어야 하겠네요.. 심심해서(?) [ Show Details ] 버튼을 눌러보았습니다.



뭔가 주루룩 설치하고 있습니다. 시간이 오래 걸릴 것 같아 밥을 먹고 왔습니다.



밥을 먹고 오면 설치가 끝나있을 줄 알았는데... 중간에 암호를 입력해야 설치하는 프로그램이 있다고 합니다. HAXM이 뭔지는 모르지만 중간에 맥북 아이디와 비번을 입력하는 단계가 한 번 나오네요.




3. 안드로이드 스튜디오 SDK 설정하기

설치가 완료되자 Android Studio에서 새로운 창이 떴습니다. 메뉴를 쭉 보니 새로운 프로젝트를 시작할 수 있나봅니다!!  그러나 아직 한 가지 더 해야 할 일이 있습니다. SDK 가 잘 설치되었는지 확인을 해 보아야 합니다.


그런데 계속 SDK가 어쩌구 저쩌구 하는데, 도대체 SDK가 뭔가요?


A software development kit (SDK or "devkit") is typically a set of software development tools that allows the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar development platform.

라고 하네요.... 다들 저보다는 영어를 잘 하실테니....ㅋ




화면 오른쪽 아래쪽에 Configure 메뉴를 이용해서 SDK 설정을 해 봅시다.





[ Configure ] 버튼을 누르자 아래쪽으로 세부 메뉴가 나타나네요. [ SDK Manager ] 를 눌러봅시다.





현재 버전을 Standard로 설치했더니 Android 6.0 (Marshmallow)가 기본적으로 설치되어 있네요. 화면 오른쪽 아래 [ Show Package Details ]를 눌러봅시다.





여러 버전의 안드로이드가 보입니다. 뭘 설치해야 할 지 잘 몰라서 일단 최신으로 추정(?)되는 Android 6.0 (Marshmallow)와 제 핸드폰 안드로이드 버전인 Android 4.1 (Jelly Bean)을 체크해서 설치해 보았습니다.





이런 것들을 설치한다고 합니다. [ OK ]를 눌렀습니다.





라이센스 어쩌구 창이 뜹니다. [ Accept ]를 체크하고 [ Next ] 로 넘어갑니다.






다운로드 받으며 설치가 진행됩니다. 아마도 꽤 오랜 시간이 걸릴 것으로 예상됩니다. 아주 예전에 이클립스를 이용해서 SDK를 설치할 때에도 꽤 많은 시간이 필요했던 것으로 기억합니다. 잠시 산책을 다녀와도 될 것 같습니다.......




자바 개발 도구 (JDK) 설치하기

안드로이드 애플리케이션(이하 안드로이드 어플)을 만들기 위해 필요한 것은 크게 자바 개발 도구 JDK (Java Develpment Kit)와 안드로이드 SDK  한 벌이 전부입니다. 

  • 자바 개발 도구 JDK

  • 안드로이드 SDK


JDK를 다운로드 받기 위해서 오라클 홈페이지에 접속합니다.


홈페이지 접속 화면입니다. 아마도 본능적으로 [Download]로 마우스를 움직이게 될 겁니다!




1. 다운로드 받기


오라클 홈페이지에 접속하면 [ 다운로드 ] 메뉴를 선택합니다. 왼쪽에  [ Java SE ] 메뉴로 들어가서 다운로드 받을 준비를 합니다.






안드로이드 어플 개발을 위해서는 JDK를 다운로드 받습니다. 아래 그림의 빨간 사각형 보이시죠?





다운 받으시기 전에 [ Accept License Agreement ]를 체크해주셔야 해요. 그렇지 않으면 다운로드가 안되요. 체크를 마치시면 자신의 운영체제에 맞는 JDK를 다운로드 받으세요. 저는 맥을 사용하니까 Mac OS X 를 선택하여 다운로드 받았습니다. (윈도우를 사용하시는 분들은 x86인지 x64인지 꼭 확인하고 설치하세요)





2. 설치하기

다운로드가 완료되었습니다. 설치를 시작해볼까요? 설치는 아주 간단합니다. 다운로드 받은 파일을 더블클릭!!!




익숙한 화면입니다. 더이상 자세한 설명은 생략합니다..ㅋㅋ











3. 끝인가요? 설치 완료 확인하기!

설치가 아주 간단히 끝났습니다. 그런데 너무 밍숭맹숭(?)하게 끝나서 설치가 잘 된건지 아닌건지 모르겠네요. 설치가 잘 되었는지 확인을 해볼까요?


  • 터미널에서 확인하기


터미널을 실행합니다. 프롬프르 라인에 다음 명령어를 입력합니다.

cd /Library/Java/JavaVirtualMachines/


별건 아니고 JDK가 설치된 경로로 이동하는 겁니다. 그 다음엔


ls


라고 입력합니다. 이것도 별거 아니고, 경로 안에 들어 있는 파일을 검색하라는 명령어 입니다.


아래 그림과 같이 출력이 되는가요? "jdk(어쩌구...).jdk" 파일이 보이면 설치 성공입니다!!!

 



  • 파인더에서 확인하기

터미널이 익숙치 않으시면 파인더에서 찾아보세요. 


/Library/Java/JavaVirtualMachines/


안에 jdk가 들어있다면 설치 성공!!




가벼운 마음으로(?) jdk 를 설치했으니 이제 다음 단계로 넘어가보겠습니다^^


리눅스에서 사용자 계정을 관리하는 명령들은 사용법이 어렵지는 않으나 평소에 쓸

일이 거의 없기 때문에 기억하기가 쉽지 않다. 필수적인 명령어 몇 개와 옵션만 알고

있다면 사용자 관리만큼 단순한 작업도 없다. 단, 사용자 계정과 연결된 홈 디렉토리에

영향을 미치는 작업이나 사용자 암호와 관련된 작업을 할 때는 조심 조심^^


1 [사용자 계정 만들기]

사용자 계정을 새로 만들 때는 useradd 명령을 사용한다. '-m' 옵션을 사용하면

사용자 홈 디렉토리도 함께 만들어진다.

$ sudo useradd -m webtob


2 [사용자 계정 확인하기]

사용자 계정 정보를 확인 할 때는 '/etc/passwd' 파일을 살펴보면 된다. cat 명령으

로 이 파일의 내용을 출력해 보면 새로운 사용자가 추가된 것을 알 수 있다.

출력된 사용자 계정 정보에 대한 설명은 순서대로 다음과 같다.


계정이름, 암호(표시안함),UID(사용자ID),GID(그룹ID),설명(생략가능),홈디렉토리,

로그인쉘(생략가능)


3 [사용자 암호 설정]

새로 추가된 사용자 계정에는 암호가 없는 상태이다. passwd 명령으로 암호를 설

정한다.


4 [사용자 계정 삭제]

사용자 계정을 삭제할 때는 userdel 명령을 사용한다. '-r' 옵션을 추가하면 사용자

의 홈 디렉토리도 함께 삭제할 수 있다.


사용자 비밀번호(암호)를 관리하는 파일은 '/etc/shadow' 로, 이 파일에는 비밀번호가

암호화된 상태로 표시되어 있고 비밀번호의 유효 기간 등 부가 정보도 저장되어 있다.

이 파일에 대한 read/write 권한은 오직 root 권한으로만 가능하다.


    * 쉘 스크립트(Shell Script)란 ?

쉘 스크립트를 이해하려면 먼저 스크립트(Script)가 무엇인지 이해해야 한다.
스크립트란 일반적으로 인터프리트(interpret) 방식으로 동작하는 컴파일되지 않은 프로그램이라고 이해하면 된다. 즉 "프로그램의 한 라인을 읽어
해석하고 실행하는 과정을 반복하도록 만들어진 프로그래밍 언어로 작성된 컴파일되지 않은 파일에 저장된 프로그램"이라는 의미다.

==> 텍스트 형식으로 저장되는 프로그램으로서 한줄씩 순차적으로 읽어 실행되도록 작성된 프로그램이다.

스크립트라는 단어 앞에 여러가지 수식어가 붙는다. 이 수식어는 바로 스크립트를 읽어 실행해주는 인터프리트 엔진을 말한다고 보면 된다.
즉 쉘스크립트는 운영체제의 쉘 즉 bash, ksh, csh 등이 읽어 실행해주는 스크립트 언어이고 펄 스크립트는 perl 이라고하는 인터프리트 엔진이 읽어
실행해주는 스크립트 언어이다. 자바 스크립트는 웹브라우저가 실행해 준다.


C 언어와 쉘스크립트는 어떻게 다를까?

    - C 언어로 작성된 프로그램은 컴파일하여 기계어로 변환된 목적파일로 만들어준 뒤 링크 과정을 거치고 실행퍼미션을 주어야만
      실행이 가능하지만 쉘스크립트로 작성된 파일은 이러한 과정이 필요없고 실행퍼미션만 주면 된다.
     
    - C 언어로 작성된 프로그램은 실행을 위해 컴파일되면 vi, cat 과 같은 명령으로 내용을 확인할 수 없는 바이너리 구조로 변형되지만
      쉘 스크립트는 파일의 변환 과정이 없다.
   
    - C 언어로 작성된 프로그램은 기계어로 변환되었기 때문에 커널에 의해 실행되지만 쉘 스크립트는 쉘(bash, sh, ksh)이 한줄씩 읽어 실행한다.
   
    - C 언어로 작성된 프로그램은 정식 프로세스로 생성되지만 쉘 스크립트로 작성된 프로그램은 이름은 보이지만 정식 프로세스는 아니다.

    * 쉘의 정의

쉘(Shell)은 운영체제에서 사용자가 입력하는 명령을 읽고 해석하여 대신 실행해주는 프로그램이다.
쉘은 Unix 나 리눅스에만 있는것은 아니며, Windows 운영체제나 다른 운영체제에도 Shell 은 필수 요소.

운영체제는 로그인한 사용자가 없다면 하나의 쉘도 실행되지 않은 상태이다.
사용자가 로그인을 시도하면 운영체제는 ID와 패스워드를 받아들이는 로그인 프로그램을 실행하게 되고, 사용자가
입력한 ID와 패스워드를 검증한 뒤 정상적인 사용자라면 쉘을 실행하여 사용자 세션을 쉘에게 넘겨준다.


    * 역활

-. 사용자가 입력한 명령을 해석하여 대신 실행해주는 것.
    쉘 내부 명령어 : 스스로 실행하고 결과를 화면에 표시.
    쉘 외부 명령어 : PATH 환경변수에 지정된 경로에서 입력 받은 명령과 같은 파일을 찾아 exec() 시스템콜을 호출하여
                     실행한 뒤 키보드와 마우스 등의 입력장치와 모니터에 해당하는 표준 출력장치의 제어권을 해당 프로그램에게 넘겨준 뒤
                     프로그램이 끝날 때 까지 대기.


    * 쉘의 종류

-. Unix/Linux : ps 명령을 실행하면 보이는 프로세스 중에서 bash, sh, ksh, csh 등
-. Windows : 작업관리자에서 볼수 있는 explorer.exe, cmd.exe 등


    * 쉘의 환경변수

쉘은 사용자가 임의로 변경이 가능한 여러가지 환경변수를 사용한다. 하지만, 미리정의된 환경변수의 이름을 변경하면 안된다.(할수도 없다)
환경변수는 쉘의 종류에 따라 설정/확인하는 방법이 다르다. (bash-env, csh-set)

사용자와 운영체제 사이에서 사용자가 입력한 명령어를 신속하게 찾고 운영체제와 사용자 그리고 사용자가 실행한 다른 프로그램과의 소통을 위해 사용하는 것이 환경변수이다.
환경변수들은 사용자가 읽을 수만 있는 것과 변경이 가능한 것이 있는데, 대표적인 환경변수는 PATH 가 있다.
환경변수 PATH는 사용자가 입력한 명령이 내부 명령어인지 확인하고 아닐 경우 해당 명령은 외부명령어(실행파일)인 것으로 간주.


    * 쉘 환경변수의 설정

쉘 환경변수는 로그인 할 때 설정된다. 사용자 환경은 프로파일에서 설정되는데 프로파일은 글로벌 프로파일과 계정 프로파일 두가지가 있으며,
이 프로파일의 파일 위치와 이름은 운영체제와 쉘의 종류에 따라 조금씩 다르다.

sh, ksh : /etc/profile , 사용자 홈디렉토리의 .profile
bash : /etc/profile , /etc/bashrc 두 개의 파일과 사용자 홈디렉토리의 .bashrc가 환경 변수가 설정될 수 있는 파일.
csh 은 /etc/csh.login ( Unix 종류와 버전에 따라 다르나 일반적으로 login 이라고 붙음 )과 사용자 홈디렉토리의 .cshrc

 

WEBTOB와 JEUS 연동
    WebtoB와 JEUS 연동을 위해 설정해야 할 파일은 다음과 같다
        ● WebtoB 환경 파일 (예: http.m)
        ● JEUS 환경 파일 : WEBMain.xml

    WebtoB와 JEUS 연동을 위해 서로의 값을 똑같이 설정해야 하는 항목은 다음과 같다.
        ● WebtoB-JEUS 간 연결 포트 번호
        ● HTH 수
        ● 서버 이름(WebtoB의 JSV 설정 서버이름과 JEUS의 Registration ID)
        ● 프로세스 수(WebtoB의 MinProc/MaxProc와 JEUS의 Thread-pool 수)

1. 특징
    WebtoB와 JEUS의 연결은 JEUS가 WebtoB에게 연결하는 구조로 되어 있다.
    WebtoB와 JEUS와의 연결은 persistent connection이므로 중간에 네트워크 오류나 서버의 문제가 생기지 않는 이상은 연결을 끊지 않는다.

2. JEUS 연동 설정(Base+)
    -. WebtoB 환경 파일 설정
        : NODE 절
            HTH 개수와 JEUS와의 연결을 맺을 JsvPort를 설정한다.
            HTH에 설정된 값은 WebtoB에서 HTH 프로세스의 개수로서 이 값과 JEUS 환경 파일 중 WEBMain.xml의
            <webtob-listener> 하위에 있는 <hth-count> 항목 값과 일치해야 한다. 또한 JsvPort는 웹 컨테이너와
            연결을 맺을 포트 번호로서 실제 웹 브라우저로 요청받는 포트 번호와는 무관하다. JEUS 환경 파일 WEBMain.xml의
            <webtob-listener>하위에 있는 <port> 항목 값과 일치해야 한다.

            ex) HTH = 1,
                JsvPort = 9999,

        : SVRGROUP 절
            서비스와 실제로 웹 컨테이너와 연결하여 작업을 할 서버를 설정한다.
            서버의 이름으로 MyGroup이고, 서버 그룹의 이름은 SVRGROUP 부분에서 설정한 jsvg이다.
            MinProc은 웹 컨테이너와의 최소 연결 개수이고, MaxProc은 웹 컨테이너와의 최대 연결 개수이다.
            이 개수들은 JEUS 환경 파일 중 WEBMain.xml의 <webtob-listener> 하위에 있는 <thread-pool> 설정값과
            각각 일치하거나 커야 한다.

        : URI 절
            URI 부분은 어떤 URI가 요청이 되었을 때 어떤 서버를 수행시킬지를 지정하는 것으로 서버(MyGroup)의
            서비스에 대한 URI를 설정한다.
    -. JEUS 환경 파일 설정
        WebtoB 연결 설정을 위해 아래 경로에 있는 WEBMain.xml을 수정해야 한다.
        ex) $JEUS_HOME/config/<node_name>/<node_name>_servlet_<engine_name>/
        <webserver-connection> 하위에 있는 <webtoblistener>하위 항목들을 수정.
            : port
                WebtoB Servlet Engine 웹 컨테이너와 WebtoB와의 연결을 맺을 포트 번호를 설정하는 것으로
                WebtoB 설정의 NODE 절의 JsvPort 값과 일치해야 한다.
            : webtob-address
                연결을 맺을 WebtoB의 IP 주소를 설정한다.
            : registration-id
                WebtoB와 처음 연결을 맺을 때 등록과정 중 사용할 등록 ID로 WebtoB SERVER 설정 중
                연결하고자 하는 서버 이름(예: MyGroup)과 같아야 한다.
            : hth-count
                WebtoB의 NODE 절의 HTH와 같은 값을 설정한다. 실제 연결은 WebtoB의 각 HTH에게 연결하기 때문에
                이 값이 일치해야 한다.
            : thread-pool, min, max
                Thread Pool에 최소한 유지되어야 하는 Thread의 개수와 최대 개수를 정의하는 것으로
                WebtoB 환경 파일에 정의한 MyGroup 서버에 대한 MinProc/MaxProc 값과 일치하거나 적어야 한다.

        하나의 컨텍스트 그룹은 여러 개의 웹 서버 연결을 가질 수 있는데 각각의 연결마다 포트 번호가 달라야 한다.
        이렇게 여러 개의 웹 서버 연결을 가지는 것은 웹 서버가 여러 노드에 존재할 때나 다른 종류의 웹 서버로부터
        요청을 받을 때에 사용한다.

 

'미들웨어 > JEUS' 카테고리의 다른 글

Webtob & Jeus 연동  (2) 2016.06.07

WebtobB 환경 설정


- 여기서는 WebtoB 환경 설정에 사용되는 Option 들에 대해 정리하도록 하겠습니다.


1. WebtoB의 환경설정 파일 구조
   

절을 정의하는 부분과 설정할 이름과 해당 절에 설정할 수 있는 항목으로 구성

-. 절
   DOMAIN 절, NODE 절        서버 전체적인 동작과 관련된 설정
 

  VHOST 절                        가상 호스트와 관련된 설정

   SVRGROUP 절, SERVER 절, SERVICE 절     

 요청을 처리할 프로세스와 관련된 설정
        URI 절, ALIAS 절, EXT 절                구체적인 서비스 방식을 설정
        SSL 절, ACCESS 절, AUTHENT 절           보안과 관련된 설정

        이외에도 LOGGING, DIRECTORY, DIRINDEX, EXPIRES, ERRORDOCUMENT, TCPGW, REVERSE_PROXY,
        LOGLEVEL, HEADERS, PRECEDING_COMMAND 절을 설정할 수 있다.

        DOMAIN, NODE, SVRGROUP, SERVER 절은 반드시 설정해야 한다. NODE 절에는 해당 노드에서
        기본 요청 처리 서버로 동작하는 "SvrType = HTML"로 설정된 SERVER 절 설정이 필요하다.
    -. 항목
        "항목이름 = 설정값"
2. 절
    -. DOMAIN
        DOMAIN 절은 WebtoB 도메인을 설정한다. DOMAIN 절은 반드시 설정해야 하며, 하나만 설정한다.
    -. NODE
        WebtoB 노드에 대한 구체적인 환경에 대해 설정. NODE 절은 노드의 전체적인 동작 설정 정의
        VHOST 절을 설정하여 가상 호스트 설정한 경우 NODE 절 설정은 기본 호스트로 동작.
        ● WebtoB 시스템 경로
        ● 서비스할 문서들이 위치한 최상위 경로 (document root)
        ● 공유 메모리의 Key 값
        ● 서비스 IP 및 포트 번호 설정
        ● 기타 시스템 전체적인 설정
        : WEBTOBDIR(필수 항목)
            WebtoB가 설치된 경로
        : SHMKEY(필수 항목)
            공유 메모리 세그먼트(Shared Memory Segment) 설정 (WebtoB 내부 프로세스는 공유 메모리를 사용하여 서로 정보를 공유).
        : NODENAME
            노드의 물리적인 이름 (설정한 노드 이름은 반드시 파일에 등록되어야 한다-hosts)
        : DOCROOT
            서비스 최상위 경로
        : PORT
            서비스 포트 (Port와 Listen 항목이 같이 설정된 경우 Port 설정은 무시)
        : JSVPORT
            WebtoB와 JEUS를 연동하여 사용할 때 필요한 서비스 포트
            WebtoB가 해당 포트를 열면 JEUS가 "WEBMain.xml"에 다음과 같은 설정을 통하여 연결한다.
            <?xml version="1.0"?>
            <web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="6.0">
                <context-group>
                    <group-name>MyGroup</group-name>
                    <webserver-connection>
                        <webtob-listener>
                            <listener-id>webtob1</listener-id>
                            <port>9900</port>
                            <output-buffer-size>8192</output-buffer-size>
                            <thread-pool>
                                <min>5</min>
                                <max>5</max>
                                <step>5</step>
                                <max-idle-time>30000</max-idle-time>
                            </thread-pool>
                            <webtob-address>__webtob_address__</webtob-address>
                            <registration-id>__webtob_server_name__</registration-id>
                            <disable-pipe>true</disable-pipe>
                        </webtob-listener>
                    </webserver-connection>
                </context-group>
            </web-container>
        : HTH
            HTH 프로세스의 수
            HTH 프로세스 하나가 처리할 수 있는 동시 접속자의 수가 제한되어 있는데, 이를 늘리는 경우 적당한 값을 설정
        : Group
            설정된 그룹 권한으로 동작
        : User
            설정된 계정 권한으로 동작
        : SYSLOGDIR
        : OPTIONS

        : IPCPERM
            WebtoB 내부 프로세스(WSM, HTL, HTH, HTMLS, CGIS 등) 및 관리 프로세스(wsadmin) 간의 내부 통신(IPC)에
            사용하는 named-pipe의 접근권한을 설정한다.
        : SERVICEORDER
            사용자 요청을 처리할 서버와 서비스를 결정할 때 URI 절과 EXT 절의 우선순위를 결정
            uri, ext            URI 절 설정을 먼저 확인하고 해당되는 설정이 없는 경우 EXT 절의 설정을 확인한다.
            ext, uri            EXT 절 설정을 먼저 확인하고 해당되는 설정이 없는 경우 URI 절의 설정을 확인한다.
        : CacheSize
        : CacheEntry
        : LOGGING
            액세스 로그에 해당되는 LOGGING 절 이름을 설정.
        : ERRORLOG
            에러 로그에 해당되는 LOGGING 절 이름을 설정.
        : HOSTNAME
            호스트 이름
        : HthQTimeout
            사용자 요청이 많아 해당 요청을 처리할 서버 프로세스가 없을 경우 해당 요청은 서버 큐에서 요청을 처리할
            서버 프로세스가 생길 때까지 기다리게 된다. 이때, 설정된 시간보다 오래 기다리고 있는 요청은
            큐에서 빼고 "503 Service Unavailable"로 응답한다
    -. VHOST
        Virtual Host 기능은 실제로는 하나의 WebtoB가 동작하지만 각기 다른 URL로 다른 문서를 제공하도록 하므로써
        마치 여러 개의 서버가 서비스를 제공하는 것처럼 보이도록 하는 기능이다.
        : Hostname(필수 항목)
            Virtual Host에 접근할 때 사용자가 사용할 호스트
        : HostAlias
            Hostname 항목에 설정된 호스트 이외에 다른 호스트를 추가하는 경우 HostAlias로 등록하여 설정.
            콤마(,)로 구분하여 여러 개를 설정할수 있다.
        : DocRoot
            Virtual Host가 서비스하게 될 HTML 문서가 있는 최상위 디렉터리 경로명을 설정.
        : Port
            사용자가 접속할 수 있는 서비스 포트를 설정한다
            콤마(,)로 구분하여 100개까지 설정 가능하다
            Port와 Listen 항목이 같이 설정된 경우 Port 설정은 무시된다
        : Logging
            액세스 로그에 해당되는 LOGGING 절 이름을 설정한다
        : ErrorLog
            에러 로그에 해당되는 LOGGING 절 이름을 설정한다.
        : Filter
            사용할 FILTER 절 이름을 설정한다
        : ServiceOrder
            사용자 요청을 처리할 서버와 서비스를 결정할 때 URI 절과 EXT 절의 우선순위를 결정한다
            URI 절과 EXT 절 모두 해당되지 않을 경우 기본 HTML 서버(가장 먼저 설정된 HTML type의 서버)에서 해당 요청을 처리한다.
        : IndexName
            디렉터리에 대한 요청을 하는 경우 기본으로 처리할 문서의 이름을 설정한다
    -. SVRGROUP
        WebtoB를 통해 응용 서버 프로세스를 접근하는 경우 서버 프로세스의 논리적인 연관성에 따라 이들을 그룹으로 관리할 필요가 있다.
        SVRGROUP 절에서는 이러한 그룹에 대한 환경설정을 한다.
        : SvrType
            서버 그룹에서 서비스할 서버 타입을 설정한다
            HTML        정적 파일 요청을 서비스하는 서버 타입이다.
            CGI         CGI 요청을 서비스하는 서버 타입이다.
            PHP         PHP 요청을 서비스하는 서버 타입이다.
            SSI         SSI 요청을 서비스하는 서버 타입이다.
            JSV         JEUS와 연동하여 JSP, servlet 등의 요청을 서비스하는 서버 타입이다.
            WEBSTD      WBAPI로 작성된 서버의 요청을 서비스하는 서버 타입이다.
        : VhostName
            서비스할 VHOST 절 이름을 설정한다
    -. SERVER
        SERVER 절에서는 실질적으로 제공하는 서비스들을 등록한다. WebtoB는 등록된 서비스만을 처리하기 때문에
        새로운 서버 프로그램이 추가되는 경우 서버의 환경 파일에 반드시 설정해야 한다.
        : SvgName(필수 항목)
            서버가 속해 있는 서버 그룹을 설정한다
        : MinProc
            기본적으로 기동될 서버 프로세스의 개수를 설정한다.
        : MaxProc
            MinProc를 포함하여 추가적으로 기동시킬 수 있는 프로세스의 최대 개수를 설정한다.
        : ASQCount
            자동으로 서버 프로세스를 추가 기동하기 위한 조건으로 큐에 쌓여진 요구 개수를 설정한다.
            큐에 설정된 이상의 것이 쌓이게 되면 MinProc에서 MaxProc에 설정된 수만큼 차례대로 증가하게 된다.
    -. URI
        URI 절은 클라이언트 요구의 URI(Uniform Resource Identifier) 값에 따라 이를 처리하는 서비스를 구분할수 있도록 한다.
        특정 URI가 입력으로 들어온 경우 이를 특정 서비스에서 처리하도록 할 수 있다.
        : Uri(필수 항목)
            HTTP Request path와 match할 패턴을 설정한다. match되면 해당 요청은 URI 절의 설정이 적용된다
        : SvrType(필수 항목)
            서비스 속성 즉, 지정된 URI를 포함하는 요청이 왔을 때 처리할 서버를 설정한다.
        : SvrName
            처리 담당 서버의 이름을 설정한다.
        : SvcName
            해당 URI에 대한 처리를 전담할 서비스의 이름을 설정한다
        : VhostName
            URI가 특정 Virtual Host에 사용될 때 VHOST 절에 정의된 해당 Virtual Host 이름을 설정한다
    -. ALIAS
        실제 서버의 물리적 디렉터리 경로와 URI를 Alias시키도록 설정할 수 있다. 즉, 어떤 특정한 URI에 대한 요구가 들어오면
        이를 실제의 물리적인 디렉터리에 매핑시켜서 이곳에서 원하는 리소스를 찾아 처리하게 하는 방식이다.
        이는 사용자가 Document root에 상관없이 지정할 수 있기 때문에 관리하는 입장에서 편리한 기능이다.
        : URI(필수 항목)
            Alias할 URI를 설정한다.
        : Realpath(필수 항목)
            서버 안의 물리적 디렉터리의 경로명을 설정한다.
    -. LOGGING
        클라이언트의 요구 내역을 기록하는 형식을 지정한다. 접근 내역과 에러 내역이 따로 저장되며 저장 형식을 지정할 수 있다.
        시스템 로그, 액세스 로그, 에러 로그 모두 LOGGING 절에 설정한다
        : FileName(필수 항목)
            로그를 저장할 파일의 경로를 설정한다.
        : Format(필수 항목)
            로그 파일에 기록될 메시지의 포맷을 설정한다.
    -. EXT
        클라이언트가 요구한 파일의 확장자명에 따라 처리 담당 프로세스를 지정할 수 있다. WebtoB는 기본적인 모든 MIME-Type에
        대한 처리 담당 프로세스가 설정되어 있으나, 필요에 따른 추가적인 설정을 할 경우 이 절에서 할 수 있다.
        : Mimetype
            확장자에 해당하는 MIME-Type을 설정한다
        : SvrType
            확장자를 처리할 서버의 타입을 설정한다.
    -. SSL
        WebtoB에서 사용할 SSL의 기능을 설정하는 곳이다. 이곳에서 정의된 형태로 SSL 서비스한다
        : CertificateFile(필수 항목)
            PEM 방식으로 인코딩된 서버의 인증서를 설정한다.
        : CertificateKeyFile(필수 항목)
            서버에서 쓰이는 PEM 방식으로 인코딩된 인증서의 개인 Key를 설정한다.
        : CACertificatePath
            인증서를 저장할 디렉터리를 설정한다.
        : CACertificateFile
            단일 CA(Certificate Agent: 인증을 대신해 주는 기업)로부터의 사용자 인증만 받고 싶다면 CACertificatePath 지시자가 아닌,
            이 지시자를 이용하여 단일 PEM으로 인코딩된 인증 파일을 사용해야 한다
        : CertificateChainFile
            서버 인증서(Certificate)의 인증서 연쇄(Certificate Chain)를 구성할 때 필요한 상위 인증기관들(CAs)의 인증서(Certificate) 경로를 설정한다
        : VerifyDepth
            실제 업무에 적용되는 경우에 인증에서 개입할 부분은 순서대로 다른 CA에 의해서 서로를 인증하는 CA에 관한 것이다.
        : VerifyClient
            사용자에게 요청할 인증 레벨을 설정한다
        : Protocols
            서버가 사용할 수 있는 protocol을 설정한다. 특정 SSL, TLS 버전에 대한 지원 여부를 설정할 수 있다.
            "TLSv1.1, TLSv1.2"는 WBSSL 1.0.1 이상인 경우에 지원한다. "SSLv2"는 더이상 지원하지 않는다.

Webtob Administrator

1. 관리툴
    -. wsadmin       관리를 위해서 사용되는 툴
    -. wscfl            환경파일 컴파일

2. 환경변수
    -. WEBTOBDIR               WebtoB가 설치된 디렉토리 설정. (필수 항목)
    -. WEBTOB_LICENSE        License 파일명 변경시 설정. (기본값: license.dat)
    -. WEBTOB_RAC_PORT     wsracd가 사용 포트 번호 변경시 설정. (기본값: 3333)
    -. WEBTOB_PREFER_IPV6  IPv6 주소를 사용하고자 할 경우 'Y' 혹은 '1'로 설정한다.

    추가적으로 WebtoB의 Shared library가 위치한 경로인 "${WEBTOBDIR}/lib"를 시스템 라이브러리 경로(System library path)로 추가해야 한다.
    -. LD_LIBRARY_PATH       Linux 및 UNIX 계열의 일반적인 시스템 라이브러리 경로
    -. LD_LIBRARY_PATH_64   Solaris(SunOS)에서 64-bit WebtoB를 사용할 때 적용되는 시스템 라이브러리 경로
    -. SHLIB_PATH           HP-UX에서 32-bit WebtoB를 사용할 때 적용되는 시스템 라이브러리 경로
   
    < sample start >
    stty cs8 -parenb -istrip -ixany
    stty erase "^H"
    set -o vi
    export EDITOR=vi
    export PS1="[`whoami`@`hostname`:\$PWD]$ "
   
    export LANG=ko_KR.IBM-eucKR
    
    
#### WebtoB Env ####
WEBTOBDIR=/kkachil_sw/webtob export WEBTOBDIR
PATH="${WEBTOBDIR}/bin:${PATH}" export PATH
LIBPATH="${WEBTOBDIR}/lib:${LIBPATH}" export LIBPATH
   
#### WebtoB Alias ####
alias ll='ls -al'
alias wcfg='cd $WEBTOBDIR/config'
alias wbin='cd $WEBTOBDIR/bin'
alias wlog='cd /kkachil_log/webtob'

< sample end >

 

'미들웨어 > WEBTOB' 카테고리의 다른 글

[WebtoB] webtob 구동시 권한에 의한 구동 문제  (0) 2016.06.06
[WebtoB] 환경설정  (0) 2016.05.20
[WebtoB]WebtoB 설치  (0) 2016.05.20
[WebtoB] WebtoB 개요 & 아키텍쳐  (0) 2016.05.20
우분투 16.04 LTS 에 WEBTOB4.1 설치  (0) 2016.05.11

+ Recent posts