Apache와 달리 구성 시스템이 없어 빠른 속도
Request 에 대해 Event-Driven 방식으로 동작
정적 파일에 대해 Apache 요청의 2배량을 제공
2019년 4월 기준 Apache 사용량 추월
공식 홈페이지 접속 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!"와 같은 문구가 뜨면 성공!
압축 파일은 임시 파일이므로 관리를 위해 /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 입력하여 접속
설치는 끝났다. 이제 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 화면이 나오면 완료