## 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 |
댓글