태그 Archives: oracle

Oracle Linux 8 (x86_64) 서버에서 dnf(yum)을 이용한 nginx 설치 및 http3 구현

OCI 에서 제공 되는 “항상 무료 적격” 서비스에 ARM64 서버로 Apache, Php, MariaDB 를 운영 하고자 하였으나

aarch64 커널에서는 snapd 설치가 가능하지만 lets encrypt 사용이 불가능 하여 불가피 하게 x86_64 서버를 앞에 하나 두어

reverse proxy 할 계획을 세우다 보니 HTTP/3 를 적용하는 부분도 포함해 진행 한다.

알고 가야 하는 부분은 http3 를 구현 하는 nginx-quic 의 경우 아직 테스트 레벨이라는 점이다.


tier 1 = x86_64 – oracle linux 8 – nginx

tier 2 = arm64 – oracle linux 8 – memcache, docker – amazon linux – httpd, php-fpm

tier 3 = arm64 – oracle linux 8 – mariadb


아래 두 글에 이어서 익숙하겠지만 그것을 한다.

 

편리한 dnf(yum) 설치를 위해 codeit.guru 레포지토리를 추가 한뒤에 nginx:codeit-quic 설치를 한다.

 

snapd 를 활용하여 Let’s encrypt 를 설치 한다.


웹서버의 보안 향상을 위해 Diffie-Hellman param 파일을 생성한다.

 

서버 내부의 파이어월에 사용할 서비스 및 포트를 등록 하고 확인 한다.

 

nginx.pid 생성, /var/www/html  엑세스(Let’s encrypt 인증서 http 인증) 및 리버스 프록시 구현을 위한 selinux 를 설정 한다.

 

OCI 클라우드 내에서의 보안 목록(Security List) 에서 아래와 같이 UDP :443 을 허용해 준다.

2022-05-12_121444


/etc/nginx/nginx.conf 파일을 수정 한다.

 

Let’s encrypt 인증서 발급을 위한 http 가상호스트를 수정 한다. vi /etc/nginx/conf.d/default.conf

conf 파일을 설정한 뒤 nginx 를 활성화 및 시작 한다.

 

Let’s encrypt 인증서를 발급 한다. (성공시 Successfully received certificate 메세지 가 확인 된다.)

 

https 가상호스트 설정 파일을 추가 생성 한다. vi /etc/nginx/conf.d/default-ssl.conf

default.conf 파일과 default-ssl.conf 파일은 하나로 병합해서 사용 해도 관계는 없다.

 

가상 호스트를 생성 한 뒤 nginx 를 reload 한다.


위까지 진행 한 경우 http3 를 지원 하는 웹서버의 설정이 모두 끝난다.

다만 구성상 외부서비스 제공은 https 내부에서의 통신은 http 프로토콜을 사용하기 때문에 기본 상태의 wordpress 의 에러메세지를 볼 수 있다.

was 서버에서 운영되는 워드프레스의 wp-config.php 파일에 /* That's all, stop editing! Happy blogging. */ 위 부분에 아래 소스를 삽입 해야 한다.


브라우져 접속 및 체크 사이트(https://http3check.net/) 접속을 통해 HTTP/3 이 활성화 되었는지 확인 한다.
2022-05-11_1117222022-05-12_121827

 

CentOS 8 종료에 따라…

CentOS 8 의 CentOS Stream 전환의 시기가 얼마 남지 않았다. (2021년 12월 31일 까지…)

 

기존의 CentOS 와 같이 RHEL 을 복제한 OS 는 다음과 같다.

Rocky Linux (https://rockylinux.org)

Oracle Linux (https://www.oracle.com/kr/linux/)

Alma Linux (https://almalinux.org/)

Navy Linux (https://navylinux.org/)

 

네이비 리눅스의 경우 업데이트 적용이 늦는듯 하고(업데이트 지원이 늦어질수도??)

오라클 리눅스는 Mysql -> MariaDB 사태를 본 사람으로서 선택하기 어렵다.

 

아무래도 기존에 CentOS 개발자로 참여(Gregory Kurtzer) 했던 Rocky Linux 을 선택 하는게 좋을거 같지 싶다 ‘ ‘a

Rocky 리눅스의 경우에는 AWS, Azure, GCP 에서 OS 이미지로도 선택(물론 소프트웨어 요금 없이)이 가능하다.

 

 

webtatic 저장소를 이용한 php 7 설치

php 는 httpd 의존이기 때문에 php를 설치하는것만으로 httpd 가 설치 된다.
즉 httpd 먼저 설치하고 php를 설치해야 한다.

webtatic의 php 는 기본적으로 nts 이며 apache 가 prefork mpm 이 아닐 경우(worker, event) zts 모듈이 로딩이 되므로 매우 편리하게 사용할 수 있다.
아울러 yum을 이용한 설치이기 때문에 더 훌륭하다 =3=b

 

레포지트리 설치

 

php7 설치

 

httpd 의 mpm 방식은 아래와 같이 확인한다.

httpd -V 의 값에서 MPM 이 worker 로 확인 되었기 때문에 cron 등에 등록을 하려면 zts-php 명령어를 써야 한다.
worker 방식은 메모리를 적게 쓰지만 다종의 웹솔루션을 운영하기엔 적합하지 않다.
다만 apache 2.4.27 에서 부터 http/2 를 지원하는데 있어서 profork 방식을 더 이상 지원하지 않는다.

 

서버에서 php 명령어 실행은 아래와 같이 한다.

 

httpd를 worker MPM 으로 설치 하고 webtatic 제공의 php 를 설치한 서버에서 오라클 접속을 사용하기 위해 oci8 익스텐션 설치 진행은 아래와 같이 진행 했다.
phpize, config-php 역시 각각 zts-phpize, zts-php-config 의 것을 사용한다.

 

설치된 oci8 은 웹문서에서 phpinfo(); 로 호출하거나 리눅스 쉘에서 아래와 같이 확인이 가능하다.

 

PS. webtatic 에서는 php70w-odbc를 제공 하므로 yum 설치로 odbc를 이용할 수 있다.