Centos7 Nginx + Tomcat 설치 및 연동

2tsumo·2022년 5월 31일
0

linux

목록 보기
3/4
post-custom-banner

Nginx의 장점

Apache와 달리 구성 시스템이 없어 빠른 속도
Request 에 대해 Event-Driven 방식으로 동작
정적 파일에 대해 Apache 요청의 2배량을 제공
2019년 4월 기준 Apache 사용량 추월

1. Nginx 설치

다운로드 링크 가져오기

공식 홈페이지 접속 http://nginx.org/
mainline 페이지의 다운로드 링크 주소 복사

wget http://nginx.org/download/nginx-1.21.6.tar.gz

Nginx설치를 위해 설치해줘야할 패키지들이 있다.
아마 devel이 붙은 패키지들만 설치해주면 될것이다.

 sudo yum install openssl
 sudo yum install openssl-devel
 sudo yum install pcre
 sudo yum install pcre-devel
 sudo yum install zlib
 sudo yum install zlib-devel

컴파일 설치를 하기전에, configure파일의 기본 설치경로를 바꿔준다.

그냥 설치해도 상관없지만, 모든 설치 프로그램을 centos계정의 centos 폴더안에 넣어주기 위해 바꾼다.

vi configure

이렇게 작성되있는 부분을

NGX_PREFIX=${NGX_PREFIX:-/usr/local/nginx}

이렇게 바꿔주었다

NGX_PREFIX=${NGX_PREFIX:-/home/centos/nginx}

이제 컴파일 설치를 해보자.

나는 C compiler cc is not found 에러가 나서
컴파일러를 설치해주었다

yum install gcc
./configure --user=centos --group=centos

error 없이 끝난다면 아래 명령을 실행시켜 nginx 폴더를 만들어준다.

make
make install

Nginx의 기본 포트는 80이다.

마찬가지로 방화벽 포트를 개방한다.
나는 방화벽이 없어서 설치해주었다.

yum install firewalld
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports

Nginx를 실행해보자.

cd ../nginx/sbin/
sudo ./nginx

웹으로 서버의 ip만 치고 들어가면 "welcome to nginx!"와 같은 문구가 뜨면 성공!

2. Tomcat 설치

압축 파일은 임시 파일이므로 관리를 위해 /home/centos 폴더에 다운받는다
wget을 통해 다운로드
톰캣 사이트(https://tomcat.apache.org/download-90.cgi)

 wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.63/bin/apache-tomcat-9.0.63.tar.gz

압축 파일 해제

tar -xvf apache-tomcat-9.0.63.tar.gz

사용자 로컬 폴더에 Tomcat 디렉토리 생성

sudo mkdir /usr/local/tomcat        // /usr/local 폴더는 애플리케이션 컴파일 설치 시 사용

Tomcat을 사용자 해당 폴더로 이동

sudo mv apache-tomcat-9.0.63/ /usr/local/tomcat

JAVA 설치하기
openjdk를 설치 해준다.
설치 방법은 yum 설치 또는 컴파일 설치 두가지 방식이 있는데 간단하게 yum 으로 설치 해준다. 아래 명령으로 설치 가능한 openjdk 버전을 확인 해보았다.

# yum search openjdk

11버전으로 설치 하였다.

# yum install -y java-11-openjdk.x86_64

JAVA 설치확인
설치가 완료 되었으면 정상적으로 설치 되었는지 확인 해보자
java -version 을 입력하여 아래와 같이 버전이 나올 경우 정상 설치 된 것이다

# java -version

Tomcat 실행

/usr/local/tomcat/apache-tomcat-9.0.63/bin/startup.sh

Tomcat 실행 확인
Tomcat에서 기본 포트인 8080 LISTEN 확인

브라우저에 http://서버IP주소:8080 입력하여 접속

3. Nginx Tomcat 연동

설치는 끝났다. 이제 tomcat과 연동시켜줘야 Nginx를 사용하는 의미가 생긴다.
Nginx의 설정파일을 수정해줄 것이다.

vi /home/centos/nginx/conf/nginx.conf
 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/centos/nginx/html;
            index  index.html index.htm;
	          proxy_pass http://localhost:8080;
        }

Nginx 재시작
여기서 진짜 한 두시간 걸림 ㅎㅎ
재시작 하기 위해서

vi /usr/lib/systemd/system/nginx.service
여기에 아래와 같이 서비스를 등록해줬는데

[Unit]

Description=The NGINX HTTP and reverse proxy server

After=syslog.target network.target remote-fs.target nss-lookup.target



[Service]

Type=forking

PIDFile=/run/nginx.pid

ExecStartPre=/home/centos/nginx/sbin/nginx -t

ExecStart=/home/centos/nginx/sbin/nginx

ExecReload=/home/centos/nginx/sbin/nginx -s reload

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true



[Install]

WantedBy=multi-user.target

이렇게 서비스를 등록해주고

systemctl daemon-reload
systemctl status nginx
service nginx reload

를 했더니 에러가 났다
계속 pid가 찾을수 없다는 에러여서 찾아보니..

nginx/conf/nginx. conf 의 pid 지정 위치와(원래 주석되있었음)
nginx.service 에서
PIDFile를 똑같이 맞춰주고 했더니 됐다..

연동 확인
웹 브라우저에 포트번호 지정없이 서버 IP 주소로 접속
nginx 화면이 아닌 Tomcat 화면이 나오면 완료

profile
👨‍💻
post-custom-banner

0개의 댓글