인프라는 어려울 것 같다 ... 계속해서 피하기 때문에 프로그래머가 극복을 위해 열심히 서버를 구축해 보았다. WebAP 서버편

소개



서버라든지 네트워크라든지, 흠뻑 흠뻑 그대로…언젠가 하지 않으면*n,이라고는 생각하면서.
작업 중에는 인프라 담당자에게 부탁하는 경우가 많아, 만지는 기회를 계속 피하고 있었습니다.

「하지만 그럼 이칸><!」
라는 것으로, 검은 화면 알레르기의 초보자가 조사하면서 환경 구축한 비망록입니다.
설정 누설이나 실수 등을 만약 발견한 분은, 꼭 교시해 주세요…

Apache 연동 없이 간단한 WebAP 서버를 구축해 보았습니다.

구축 이미지





이 기사에서는 WebAP 서버 구축을 기록해 둡니다.


환경



AWS의 EC2로 구축했습니다.
OS: Red Hat Enterprise Linux 7

이번에는 보안 영역에 8080을 설정했습니다.
필요한 경우 적절하게 설정합니다.

앞으로 준비하는 것 ...
· Tomcat
· JDK
· JDBC 드라이버

※버전은 2019년 1월 시점의 것입니다. 적절한 것을 사용합니다.

환경 구축



그 전에



환경 구축에서는 경로를 알아야 합니다.
나는 아래 명령으로 설치된 경로를 찾는 동안 빌드를 진행했습니다.
(본문 안에서는 상세 경로는 기재하지 않고 [설치한 경로]로 통일합니다.)
$ find / -name "調べたいファイル名" -ls

調べたいファイル名はワイルドカード(*)を使用することで、あいまい検索ができる。
例)find / -name "tomcat*" -ls

또한 루트 권한이 필요한 명령도 있었지만 그 때는 sudo에서 실행했습니다.
(이번은 기재는 생략합니다.)

JDK



설치


$ yum -y install java-1.8.0-openjdk-devel

확인


$ java -version

openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
$ javac -version

javac 1.8.0_191

Tomcat



· 설치용 URL 찾기
Tomcat 공식 사이트

설치



$ wget http://ftp.jaist.ac.jp/pub/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz

※ wget not found의 경우는 wget 명령을 인스톨 한다
$ yum -y install wget

tar.gz 배포 및 배치


$ tar -xzvf インストールしたパス/apache-tomcat-8.5.37.tar.gz
$ mkdir /opt/apache-tomcat-8.5.37
$ mv インストールしたパス/apache-tomcat-8.5.37 /opt/apache-tomcat-8.5.37

설정 파일 작성



새 tomcat.service 만들기 및 열기
$ vi /etc/systemd/system/tomcat.service

다음을 기재
[Unit]
Description=Apache Tomcat 8
After=syslog.target network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/tomcat/tomcat.pid
RemainAfterExit=yes

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
ExecReStart=/opt/tomcat/bin/shutdown.sh;/opt/tomcat/bin/startup.sh

[Install]
WantedBy=multi-user.target

권한 부여


$ chmod 755 /etc/systemd/system/tomcat.service

Tomcat 시작


$ systemctl start tomcat

덤: 자동 시작 설정


$ systemctl enable tomcat

덤: Tomcat 관리 화면



tomcat-users.xml 수정


$ vi インストールしたパス/tomcat-users.xml

tomcat-users.xml을 열면 권한 추가
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user name="xxxxxxxx" password="yyyyyyyy" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />

context.xml 수정


$ vi インストールしたパス/manager/META-INF/context.xml

아래 댓글 달기
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

↓

<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->

Tomcat 재부팅


$ systemctl restart tomcat

액세스 및 확인



http://공용 IP:8080/manager/html

Tomcat 고양이 화면이 표시되면 OK
※ BASIC 인증에는 tomcat-users.xml에서 설정한 사용자와 비밀번호를 입력합니다.

액세스할 수 없으면 방화벽 설정

방화벽



포트 8080 추가


$ firewall-cmd --add-port=8080/tcp --zone=public --permanent

※ firewalld not found의 경우는 firewalld 명령을 설치한다
$ yum -y install firewalld

재부팅


$ systemctl restart firewalld

자동 시작 설정


$ systemctl enable firewalld

확인


$ firewall-cmd --list-all

ports: 8080/tcp ← 追加されていればOK

JDBC 드라이버



이번에는, Java 어플리케이션으로부터 DB 서버내의 PostgreSQL에 접속하기 위해(때문에), JDBC 드라이버를 인스톨 한다.

설치


$ yum install -y postgresql-jdbc

복사



설치된 Tomcat의 lib 폴더 아래에 복사
$ cp /インストールしたパス/postgresql-jdbc.jar /インストールしたパス/apach-tomcat-8.5.37/lib



이제 간단한 WebAP 서버를 구축할 수 있었습니다.
다음은 DB 서버의 구축을 요약한다.

좋은 웹페이지 즐겨찾기