Naver Cloud Platform
OS : CentOS 7.8
nginx-1.22.1 / tomcat-9.0.73
다운로드
1. nginx, tomcat 다운로드
wget http://nginx.org/download/nginx-1.22.1.tar.gz
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.73/bin/apache-tomcat-9.0.73.tar.gz
2. 압축해제
tar -xvzf nginx-1.22.1.tar.gz
tar -xvzf apache-tomcat-9.0.73.tar.gz
Nginx
1. nginx 계정 생성
useradd --shell /sbin/nologin --home-dir /usr/local/nginx nginx
2. nginx 설치
nginx 설치 명령어는 반드시 압축해제한 nginx 폴더 안에 들어가서 실행해야 한다.
(1) ./configure
설치 명령어를 크게 나누어보면, 위치설정 / 유저 및 그룹 설정 / 모듈 설정 으로 볼 수 있다.
이 중 각자에 맞게 수정 및 가감할 수 있다.
[root@hh-test-01 nginx-1.22.1]# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --modules-path=/usr/local/nginx/modules --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/usr/local/nginx/logs/error.log --http-log-path=/usr/local/nginx/logs/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=nginx --group=nginx --with-http_realip_module --with-http_v2_module --with-http_ssl_module --with-http_addition_module --with-pcre
※ 예시 : 아래는 일반적으로 사용되는 구성이다.
./configure --prefix=/var/www/html --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --with-pcre --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-http_ssl_module --with-http_image_filter_module=dynamic --modules-path=/etc/nginx/modules --with-http_v2_module --with-stream=dynamic --with-http_addition_module --with-http_mp4_module
(2) make && make install
이 과정까지 완료하면 ./configure에서 설정한 경로에 nginx 관련 폴더와 파일이 생긴 것을 확인할 수 있다.
[root@hh-test-01 nginx-1.22.1]# make && make install
3. 설정파일 생성 및 수정
(1) nginx.conf 설정파일 수정
아래 설정파일 내용을 보면 include /usr/local/nginx/conf/conf.d/*.conf 라는 내용이 있는데,
conf.d 하위의 .conf로 끝나는 파일의 설정들도 가져온다는 의미이다.
[root@hh-test-01 conf]# vim /usr/local/nginx/conf/nginx.conf
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server_tokens off;
log_format main '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
include /usr/local/nginx/conf/conf.d/*.conf;
#연동할 tomcat 포트 설정
#이름은 원하는대로 설정
upstream test {
server localhost:8010;
}
upstream book {
server localhost:8020;
}
}
(2) conf.d 폴더 생성
/usr/local/nginx/conf 하위에 conf.d 폴더가 없다면 생성해준다.
위에서 언급했듯 우리는 이미 nginx.conf 파일에 /conf.d 에 있는 설정파일을 읽으라는 설정을 해놓았다.
mkdir /usr/local/nginx/conf/conf.d
(3) conf.d 에 설정파일 생성
tomcat을 두 개 설정해볼 예정이므로 설정파일도 두개 (0.test.conf / 1.book.conf)를 만들어 준다.
[root@hh-test-01 conf]# vim /usr/local/nginx/conf/conf.d/0.test.conf
server {
listen 80;
server_name test.com;
client_max_body_size 20M;
access_log logs/access.test.log;
error_log logs/error.test.log error;
server_tokens off;
location / {
index index.jsp;
proxy_pass http://test;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
fastcgi_param REMOTE_ADDR $http_x_real_ip;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \$ {
proxy_pass http://test;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
fastcgi_param REMOTE_ADDR $http_x_real_ip;
}
location ~ \.do$ {
proxy_pass http://test;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
fastcgi_param REMOTE_ADDR $http_x_real_ip;
}
location ~ \.jsp$ {
proxy_pass http://test;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
fastcgi_param REMOTE_ADDR $http_x_real_ip;
}
}
[root@hh-test-01 conf]# vim /usr/local/nginx/conf/conf.d/1.book.conf
server {
listen 80;
server_name book.com;
client_max_body_size 20M;
access_log logs/access.book.log;
error_log logs/error.book.log error;
server_tokens off;
location / {
index index.jsp;
proxy_pass http://book;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
fastcgi_param REMOTE_ADDR $http_x_real_ip;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \$ {
proxy_pass http://book;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
fastcgi_param REMOTE_ADDR $http_x_real_ip;
}
location ~ \.do$ {
proxy_pass http://book;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
fastcgi_param REMOTE_ADDR $http_x_real_ip;
}
location ~ \.jsp$ {
proxy_pass http://book;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
fastcgi_param REMOTE_ADDR $http_x_real_ip;
}
}
tomcat
1. JAVA 설정
이전에 다운로드 받았던 tomcat 폴더 안에 JAVA 경로를 잡아준다.
[root@hh-test-01 bin]# vim /root/apache-tomcat-9.0.73/bin/catalina.sh
JAVA_HOME=/usr/java/jdk1.8.0_361-amd64
2. tomcat 설정 파일 복사
#tomcat 설정파일이 위치할 폴더 생성
mkdir -p /usr/local/tomcat/test/tomcat9
mkdir -p /usr/local/tomcat/book/tomcat9
#아래 폴더는 테스트를 위해 index.jsp를 생성할 폴더 (*선택)
mkdir -p /usr/local/tomcat/test/www
mkdir -p /usr/local/tomcat/book/www
#다운로드 받은 tomcat파일을 위에서 생성한 폴더에 복사
[root@hh-test-01 apache-tomcat-9.0.73]# cp -a * /usr/local/tomcat/test/tomcat9/
[root@hh-test-01 apache-tomcat-9.0.73]# cp -a * /usr/local/tomcat/book/tomcat9/
3. jsp 파일 생성(*선택)
#test tomcat jsp 파일
vim /usr/local/tomcat/test/www/index.jsp
test tomcat
#book tomcat jsp 파일
vim /usr/local/tomcat/book/www/index.jsp
book tomcat
4. tomcat 설정파일(server.xml) 수정
기본 설정파일에서 변경 및 추가한 내용만 작성하였다.
vim /usr/local/tomcat/test/tomcat9/conf/server.xml
#Server port변경 (*선택)
<Server port="8610" shutdown="SHUTDOWN">
#Tomcat port변경 (이전 nginx-tomcat 설정 시 사용하기로 한 포트)
<Connector port="8010" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
# 테스트를 위해 만든 jsp 경로 지정 (*선택)
<Host name="localhost" appBase="/usr/local/tomcat/test/"
unpackWARs="true" autoDeploy="true">
# 해당 포트로 들어왔을때 바라볼 경로
<Context path="/" reloadable="true" docBase="www" />
vim /usr/local/tomcat/book/tomcat9/conf/server.xml
<Server port="8620" shutdown="SHUTDOWN">
<Connector port="8020" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Host name="localhost" appBase="/usr/local/tomcat/book/"
unpackWARs="true" autoDeploy="true">
<Context path="/" reloadable="true" docBase="www" />
실행 및 테스트
1. tomcat 실행
/usr/local/tomcat/test/tomcat9/bin/startup.sh
/usr/local/tomcat/book/tomcat9/bin/startup.sh
2. nginx 실행
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
3. 포트 확인
nginx 80, tomcat 8010 / 8020 이 정상적으로 떠져있는지 확인한다.
netstat -nltp
4. 테스트 (*선택)
(1) hosts 파일 변경
테스트를 위해 임시로 hosts 파일을 변경하여 호출해보았다.
공인IP, 사설IP 모두 넣어준다.
vim /etc/hosts
(2) 테스트
각각 설정한 도메인으로 접근했을때, 설정한 톰캣의 index.jsp 파일을 띄우주는 걸 확인할 수 있다.
'IT > Linux' 카테고리의 다른 글
[Linux] nginx service 등록 (systemctl) (0) | 2023.05.24 |
---|---|
[Linux] CentOS6 버전 Nginx 설치하기 (0) | 2023.04.11 |
[Linux] /bin/false , /sbin/nologin (0) | 2023.03.24 |
[Linux] 사용자 계정 생성 / 삭제 / wheel 그룹추가 (0) | 2023.03.24 |
[LINUX] Nginx Proxy Manager 설치 (0) | 2022.11.29 |