본문 바로가기
OPENEDX

WEB_PORTAL_인증서버 설치

by SAMSUNG CLOUD-OKY 2021. 7. 18.
반응형

## WEB_PORTAL_인증서버 설치

- 인스턴스명 : EC2-XXX-XXX-DEV-XXX-KOA-WEB-FIX

- 디스크용량: 30GB

- OS : Ubuntu 20.04

 

1. 사전 설정 (Ubuntu20.04 설치, ubuntu 계정으로 설치)

   - $ sudo apt update

   - $ sudo apt upgrade

   - $ date  (KST 확인)

   - $ df -h  (디스크 용량 확인)

 

   - sshd_config 파일에 PasswordAuthentication 설정 변경 (키 방식 -> 암호 로그인 방식으로 변경)

       : $ sudo vi /etc/ssh/sshd_config

       : PasswordAuthentication yes 로 변경

       : $ sudo service sshd restart

 

   - 유저 비밀번호를 설정합니다.

      : $ sudo passwd USERNAME (ubuntu)

      : 패스워드 입력

 

 

 

2. nginx 설치

   - $ sudo apt-get install nginx

   - $ sudo service nginx start

 

   - $ telnet 3.37.XXX.XXX 80   (포트 테스트)

        ----------- 정상 ---------------------

        Escape character is '^]'.

        --------------------------------------

 

   - nginx 재시작

      : sudo nginx -s reload

 

 

 

3. Tomcat 설치

    1) OpenJDK8 설치   (버전 변경후, 서버 리부팅 필요)

       - sudo apt install openjdk-8-jdk

         --------------------------------------------------------------------------

         ubuntu@ip-10-20-88-184:/etc/nginx$ java -version

         openjdk version "1.8.0_292"

         OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~20.04-b10)

         OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

         --------------------------------------------------------------------------

 

       - 자바 위치 확인

         -------------------------------------------------------

         ubuntu@ip-10-20-88-184:/etc/nginx$ which java

         /usr/bin/java

 

         JAVA_HOME 위치

         /usr/lib/jvm/java-8-openjdk-amd64

         ------------------------------------------------------

 

       - default-java 소프트링크 있는지 확인

         --------------------------------------------------------------------------------------

         ubuntu@ip-10-20-88-184:/usr/lib/jvm$ sudo ln -s java-1.8.0-openjdk-amd64 default-java

         -------------------------------------------------------------------------------------

 

 

    2) Tomcat 사용자 생성

       - Tomcat 서비스를 실행할 홈 디렉토리 /opt/tomcat을 사용하여 새 시스템 사용자 및 그룹을 생성합니다.

         ---------------------------------------------------------

         $ sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

         --------------------------------------------------------

 

 

    3) Tomcat 다운로드 (https://tomcat.apache.org/download-80.cgi)

       - wget unzip을 사용하여 Tomcat 아카이브를 다운로드하고 압축을 풉니다.

       - 시스템에 압축을 풀고 wget을 설치하지 않은 경우 다음을 사용하여 패키지를 설치합니다.

       - sudo apt install unzip wget

 

       - Tomcat 다운로드 페이지에서 최신 버전의 Tomcat 8.5.x를 다운로드합니다.

       - 작성 당시 최신 버전은 8.5.37입니다.

       - 다음 단계를 계속하기 전에 다운로드 페이지에서 새 버전을 확인해야 합니다.

       - /tmp 디렉토리로 변경하고 다음 wget 명령을 사용하여 zip 파일을 다운로드합니다.

         ------------------------------------------------------------------------------------------

         $ cd /tmp

         $ wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.61/bin/apache-tomcat-8.5.61.zip  (미수행)

 

         [다운로드 다른방법]

         $ curl -O https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.61/bin/apache-tomcat-8.5.61.tar.gz

         --------------------------------------------------------------------------------------------------

 

       - 다운로드가 완료되면 파일의 압축을 풀고 /opt/tomcat 디렉토리로 이동합니다.

         ------------------------------------------------

         $ unzip apache-tomcat-*.zip  (미수행)

 

         $ tar -xvzf apache-tomcat-8.5.61.tar.gz

         $ sudo mkdir -p /opt/tomcat

         $ sudo mv apache-tomcat-8.5.61 /opt/tomcat/

         -----------------------------------------------

 

       - 버전 및 업데이트를 보다 효과적으로 제어하기 위해 Tomcat 설치 디렉토리를 가리키는 심볼 링크를 최신 버전으로 만듭니다.

         -----------------------------------------------------------------

         $ sudo ln -s /opt/tomcat/apache-tomcat-8.5.61 /opt/tomcat/latest

         -----------------------------------------------------------------

         나중에 Tomcat 설치를 업그레이드하려면 최신 버전의 포장을 풀고 최신 버전을 가리키도록 symlink를 변경하면 됩니다.

 

 

       - 이전에 설정한 Tomcat 사용자가 Tomcat 디렉토리에 액세스할 수 있어야 하므로 디렉토리 소유권을 사용자 및 그룹 Tomcat으로 변경합니다.

         -------------------------------------

         $ sudo chown -R tomcat: /opt/tomcat

         -------------------------------------

 

       - 다음 chmod 명령을 실행하여 bin 디렉토리 내의 스크립트를 실행 가능하게 만듭니다.

         ----------------------------------------------------

         $ sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

         ----------------------------------------------------

 

 

    4) systemd 단위 파일 생성

       - Tomcat을 서비스로 실행하기 위해 새로운 Tomcat을 만들 것입니다.

       - /etc/systemd/system/ 디렉토리의 서비스 단위 파일에 다음 내용이 포함됩니다.

         ---------------------------------------------

         $ sudo vi /etc/systemd/system/tomcat.service

         ---------------------------------------------

           ----------------------------------------------------------------------------

           [Unit]

           Description=Tomcat 8.5 servlet container

           After=network.target

 

           [Service]

           Type=forking

 

           User=tomcat

           Group=tomcat

 

           Environment="JAVA_HOME=/usr/lib/jvm/default-java"

           Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

 

           Environment="CATALINA_BASE=/opt/tomcat/latest"

           Environment="CATALINA_HOME=/opt/tomcat/latest"

           Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"

           Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

 

           ExecStart=/opt/tomcat/latest/bin/startup.sh

           ExecStop=/opt/tomcat/latest/bin/shutdown.sh

 

           [Install]

           WantedBy=multi-user.target

           --------------------------------------------------------------------------

 

 

       - systemd에 새 장치 파일을 생성했음을 알리고 다음을 실행하여 Tomcat 서비스를 시작합니다.

         (오류가 없는 경우 부팅 시 Tomcat 서비스를 자동으로 시작할 수 있습니다.)

         -------------------------------------------------------------------

         $ sudo systemctl enable tomcat.service

         $ sudo systemctl start tomcat.service

         $ sudo systemctl status tomcat.service

 

         $ root@ip-10-20-88-184:/etc/systemd/system# chmod +x tomcat.service  (미수행)

         $ sudo systemctl daemon-reload    (미수행)

         $ sudo systemctl start tomcat     (미수행)

         -------------------------------------------------------------------

 

 

    5) [IDC] 방화벽을 조정 (AWS에서 미적용)

       - 서버가 방화벽에 의해 보호되고 로컬 네트워크 외부에서 Tomcat 인터페이스에 액세스하려면 포트 8080을 열어야 합니다.

       - 포트 8080에서 트래픽을 허용하려면 다음 명령을 입력합니다.

       - $ sudo ufw allow 8080/tcp

       - 포트오픈 확인 $ telnet 3.37.XXX.XXX 8080  (정상 확인)

 

 

    6) Tomcat 웹 관리 인터페이스 구성 (톰캣 ID/PW - XXX / XXX)

       - 이제 Tomcat Ubuntu 서버에 설치되었으므로 다음 단계는 웹 관리 인터페이스에 액세스할 수 있는 사용자를 생성하는 것입니다.

       - Tomcat 사용자 및 해당 역할은 Tomcat-users.xml 파일에 정의되어 있습니다.

       - 파일을 열면 파일구성 방법을 설명하는 설명과 예제로 채워집니다.

         : $ sudo vi /opt/tomcat/latest/conf/tomcat-users.xml

 

       - Tomcat 웹 인터페이스(manager-gui admin-gui)에 액세스할 수 있는 새 사용자를 추가하려면 아래와 같이

         tomcat-users.xml 파일에 사용자를 정의해야 합니다. 사용자 이름과 암호를 보다 안전한 것으로 변경해야 합니다.

       - 젠킨스 계정 deployer 추가 등록

         -------------------------------------------------------------------------------------

         # /opt/tomcat/latest/conf/tomcat-users.xml

 

         <tomcat-users>

         <!--

             Comments

         -->

          <role rolename="admin-gui"/>

          <role rolename="manager-gui"/>

          <role rolename="manager-script"/>

          <user username="admin" password="XXX" roles="admin-gui,manager-gui"/>

 

          <user username="deployer" password="XXX" roles="manager-gui,manager-script"/>

          </tomcat-users>

         ------------------------------------------------------------------------------------

 

 

       - 기본적으로 Tomcat 웹 관리 인터페이스는 로컬 호스트에서만 액세스할 수 있도록 구성되어 있습니다.

       - 원격 IP 또는 보안 위험으로 인해 권장되지 않는 모든 위치에서 웹 인터페이스에 액세스할 수 있으려면 다음 파일을 열고 다음과 같이 변경할 수 있습니다.

       - 어디서든 웹 인터페이스에 액세스해야 하는 경우 다음 파일을 열고 노란색으로 강조 표시된 줄을 주석 또는 제거합니다.

         ------------------------------------------------------------------

         # /opt/tomcat/latest/webapps/manager/META-INF/context.xml

 

         <Context antiResourceLocking="false" privileged="true" >

         <!--

           <Valve className="org.apache.catalina.valves.RemoteAddrValve"

                  allow="110.XXX.XXX.XXX" />      --> 빌딩 IP주소

         -->

         </Context>

         -------------------------------------------------------------------

 

         -------------------------------------------------------------------

         # /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml

 

         <Context antiResourceLocking="false" privileged="true" >

         <!--

           <Valve className="org.apache.catalina.valves.RemoteAddrValve"

                  allow="110.XXX.XXX.XXX" />     --> 빌딩 IP주소

         -->

         </Context>

         ------------------------------------------------------------------

 

       - 변경 내용을 적용하려면 Tomcat 서비스를 다시 시작합니다.

       - sudo systemctl restart tomcat

 

 

 

    7) 톰캣로그 타임존 설정 (https://lahuman.jabsiri.co.kr/164)

       - Tomcat을 실행시, catalina.sh에서는 다음과 같이 환경 변수를 읽어서 표출하도록 되어 있습니다.

          ----------------------------------------------------------------------------------

          #설명

          #   Do not set the variables in this script. Instead put them into a script

          #   setenv.sh in CATALINA_BASE/bin to keep your customizations separate.

 

          #읽는 부분

          # Ensure that any user defined CLASSPATH variables are not used on startup,

          # but allow them to be specified in setenv.sh, in rare case when it is needed.

          CLASSPATH=

 

          if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then

          . "$CATALINA_BASE/bin/setenv.sh"

          elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then

          . "$CATALINA_HOME/bin/setenv.sh"

          fi

          --------------------------------------------------------------------------------

 

       (1) setenv.sh 파일은 기본적으로 없기 때문에 추가를 다음과 같이 해주면 됩니다.

            : root@ip-10-20-88-184:/opt/tomcat/latest/bin# vi setenv.sh

              ---------------------------------------------------------------------------------

              #!/bin/bash

              export CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+9"

              ---------------------------------------------------------------------------------

            : chown tomcat:tomcat setenv.sh

            : chmod 751 setenv.sh

            : -rwxr-x--x 1 tomcat tomcat     95 May 21 10:55 setenv.sh*

 

 

       (2) APP 로그 이동 및 소유권 설정

           - /home/devstack/portal/logs

              --------------------------------------------------------------------------------

              drwxrwxrwx 2 tomcat tomcat     4096 May XX 10:49 ./

              drwxrwxrwx 3 tomcat tomcat     4096 May XX 18:36 ../

              -rw-r----- 1 tomcat tomcat 32795198 May XX 14:15 application_2021-XX-XX.0.log          

              -rw-r----- 1 tomcat tomcat 10673175 May XX 11:03 portal.log

              -------------------------------------------------------------------------------

 

 

 

4. DNS & NGINX서버 연동 확인 (newXXX.koaprd.ga - 3.XXX.XXX.XXX)

    1) nslookup 확인

  

 

 

 

5. Nginx & TOMCAT PORTAL 연동작업

 

   1) nginx tomcat 서버 연동

     - 이 웹서버의 설정파일을 /etc/nginx/nginx.conf 파일에서 내용 추가

       -------------------------------------------------------------------------

       ##

       # Virtual Host Configs

       ##

       upstream newdev {

             ip_hash;

             server 3.XXX.XXX.XXX:8080 weight=1 max_fails=2 fail_timeout=10s;

       }

       include /etc/nginx/conf.d/*.conf;

       include /etc/nginx/sites-enabled/*;

       -------------------------------------------------------------------------

 

     - cd sites-available/ 디렉토리로 이동

       : root@ip-10-20-18-211:/etc/nginx/sites-available# cd sites-available/

 

     - vi newdev 파일 편집

        --------------------------------------------------------------------------------

        server {

            listen 80;

            listen [::]:80;

 

            server_name newXXX.koaXXX.ga;

 

       #     root /var/www/example.com;

       #     index index.html;

 

            location / {

                    proxy_pass http://newXXX;

 

                    proxy_set_header    HOST $host;

                    proxy_set_header    X-Real-IP $remote_addr;

                    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;

                    proxy_set_header    X-Forwarded-Proto $scheme;

 

        #           proxy_redirect  off;

        #           charset utf-8;

 

        #           index index.jsp;

 

        #           try_files $uri $uri/ =404;

              }

            }

         -----------------------------------------------------------------------------

 

     - /sites-enables/ 로 가서 default 심볼릭링크 삭제 (미수행)

       : root@ip-10-20-18-211:/etc/nginx/sites-enabled# rm -rf default (미수행)

 

     - sudo ln -s ../sites-available/newdev newdev     (심볼릭링크 재설정)

 

     - root@ip-10-20-18-211:/etc/nginx/sites-enabled# nginx -t   (OK사인 확인)

     - nginx 재시작

       : $ sudo nginx -s reload

 

     - http://newXXX.koaXXX.ga/ 접속 (성공)

       : nginx (80) 포트를 이용하여 -> tomcat (8080) 서버로 접속 가능

 

 

 

 

반응형

'OPENEDX' 카테고리의 다른 글

django 버전 확인  (0) 2021.07.19
통합운영 서버 구성  (0) 2021.07.18
KOA EDX & Blockstore 설치 (DB용)  (0) 2021.07.13
EDX (블록스토어) BlockStore Frontend 설치  (0) 2021.07.08
EDX Studio (스튜디오) 강좌 삭제 방법  (0) 2021.07.07

댓글