Development/JSP

[Nginx, Web Infra Architecture] 웹 서버 구축하기 (1)

Go0G 2021. 11. 14. 18:09

개요

웹 구조 설정 및 WEB&WAS 연동

  • Nginx & Tomcat Reverse Proxy 연결
  • 방화벽 추가
  • SELinux 해제(실배포시에는 SE 리눅스 설정)

구성

환경

  • WEB Server: CentOS Linux release 7.9 - NGINX
  • WAS Server: CentOS Linux release 7.9 - Tomcat 7.0 - JDK 1.8.0_312
  • DB: CentOS Linux release 7.9 - MariaDB(10.4)

Architect Diagram

현재 관리자(개발자)는 SSH를 통해 각 웹서버에 접속할 수 있으며, 일반 유저는 웹 서버를 통한 접근만 가능

개발은 Visual Stdio Code의 "Remote Development" 플러그인을 사용


Ngnix

외부 저장소 추가

#nano /yum.repos.d/nginx.repo
아래 내용 추가
[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/7/$basearch/ 
gpgcheck=0 
enabled=1

설치

#yum -y install nginx

Tomcat 설치

#yum -y install tomcat
#yum -y install tomcat-webapps tomcat-admin-webapps

yum troubleshooting

#yum clean all 
#yum clean metadata 
#yum install epel-release

버전 정보 확인

#[tomcat Directory]/bin/version.sh

서비스 관련 명령어

서비스 시작

#systemctl start [tomcat/nginx/mariadb/etc.]

서비스 중단

#systemctl stop [tomcat/nginx/mariadb/etc.]

서비스 재시작

#systemctl restart [tomcat/nginx/mariadb/etc.]

서비스 확인

#systemctl status [tomcat/nginx/mariadb/etc.]

Ngnix Server Config

Nginx Server에 접속 시 Tomcat으로 Forwarding 하도록 Reverse-Proxy를 설정(Nginx Server)

경로: /etc/nginx/nginx.conf

    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

	location / {
	proxy_pass [IP or Domain]:[Port]; #ip일 경우 http://[ip]/;
	}
}

Nginx 서버외 Tomcat 서버 직접 접근 차단(Tomcat Server)

경로: /usr/share/tomcat/conf/server.xml

<host>
... 중략
#host 태그 내에 아래 내용 추가
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="[Nginx IP]|127.0.0.1">
...
</host>

방화벽 OPEN 설정(Nginx Server)

#firewall-cmd --permanent --zone=public --add-port=80/tcp
#firewall-cmd --reload
#firewall-cmd --list-ports

방화벽 OPEN 설정(Tomcat Server)

#firewall-cmd --permanent --zone=public --add-port=8080/tcp
#firewall-cmd --reload
#firewall-cmd --list-ports

SELinux 끄기(Nginx Server)

#setenforce 0

Reference