주:

Oracle Cloud Infrastructure를 사용하여 인터넷에서 액세스할 수 있는 웹 서버(IPv6)를 게시합니다.

소개

이 자습서에서는 OCI(Oracle Cloud Infrastructure) 내에서 웹 서버(OCI 인스턴스)를 생성하는 방법을 설명하고 인터넷에서 이 웹 서버에 액세스할 수 있도록 합니다. 이 웹 서버를 공용 IPv4 주소에서 액세스할 수 있게 만들 뿐만 아니라 FQDN(DNS 레코드)이 완전히 구성된 공용 IPv6 주소에서도 액세스할 수 있도록 만들 것입니다.

이미지

: 이 자습서에서 사용한 도메인은 테스트 목적으로만 생성 및 구성되었습니다.

이미지

목표

작업 1: IPv6가 사용으로 설정된 새 VCN 생성

이제 IPv4 및 IPv6 서브넷을 분할하는 데 사용할 수 있는 새 IPv4 및 IPv6 네트워크 공간이 포함된 새 VCN이 생성되었습니다.

작업 2: IPv6가 사용으로 설정된 새 서브넷 생성

이제 서브넷을 IPv4 및 IPv6 주소에 사용할 준비가 되었습니다.

작업 3: IPv6가 사용으로 설정된 새 인스턴스 생성

이미지

다음 논리적 작업은 웹 서버 설치 및 구성을 시작할 수 있도록 SSH를 사용하여 인스턴스에 액세스하는 것입니다. 공용 IPv4 주소 및 전용 키를 사용하여 웹 서버에 접속하려고 시도할 때 작업 1에서 생성된 VCN에 인터넷 게이트웨이가 없으므로 접속할 수 없습니다. 이제 VCN에서 먼저 해당 인터넷 게이트웨이를 생성하고 경로 지정도 구성해야 합니다.

이미지

작업 4: 새 인터넷 게이트웨이 생성 및 경로 지정 구성

인터넷에서 새 인스턴스(웹 서버)에 대한 액세스를 사용으로 설정하려면 처음에 SSH를 사용하고 결국 HTTP로 전환하려면 인터넷 게이트웨이를 설정해야 합니다.

작업 5: 기본 보안 목록에서 HTTP 및 HTTPS 열기

새 VCN이 생성되면 기본 보안 목록이 해당 VCN 내의 서브넷에 적용됩니다. 기본적으로 ICMP 및 SSH는 인바운드(수신)가 허용됩니다. 웹 서버에 대한 수신 트래픽을 허용하려면 해당 목록에 HTTP 및 HTTPS를 추가해야 합니다.

보안 규칙이 적용되고 VCN 서브넷에서 IPv4 및 IPv6 트래픽이 허용됩니다. 인스턴스에 웹 서버 애플리케이션을 설치합니다.

작업 6: 인스턴스에 웹 서버 설치

웹 서버 응용 프로그램을 설치하기 전에 방화벽 포트가 올바르게 구성되었는지 신속하게 검증하십시오. 다음 웹 사이트 IPV6 Online Port Scanner를 사용하십시오. 이 웹 사이트에는 IPv6 포트 스캐너가 있지만 IPv4 주소를 입력할 수도 있습니다.

작업 7: DNS 레코드 구성

주: 이 자습서에서 사용한 도메인은 테스트 목적으로만 생성 및 구성되었습니다.

이제 웹 사이트 또는 웹 서버는 인터넷에서 연결할 수 있습니다. IPv4 주소 또는 IPv6 주소보다 더 쉽게 기억할 수 있는 FQDN을 구성하여 한 걸음 더 나아가려고 합니다. 이 자습서에서는 새 웹 서버에 대해 oci.iwanhoogendoorn.nl 하위 도메인을 예로 사용합니다.

작업 8 : NGINX 및 PHP로 사용자 정의 웹 사이트 만들기

우리는 NGINX와 네트워크 및 IP 주소에 대한 더 많은 정보를 제공하는 사용자 정의 PHP 웹 사이트 또는 스크립트를 만들 것입니다.

NGINX를 PHP와 통합하려면 다음 단계를 수행하십시오.

  1. PHP-FPM 구성 파일을 편집하여 NGINX 통합

    /etc/php-fpm.d/www.conf 파일을 편집합니다.

    sudo nano /etc/php-fpm.d/www.conf
    
    • 변경 전 /etc/php-fpm.d/www.conf 파일의 내용입니다.

      ; Unix user/group of processes
      ; Note: The user is mandatory. If the group is not set, the default user's group
      ;	will be used.
      ; RPM: apache user chosen to provide access to the same directories as httpd
      **user =** apache
      ; RPM: Keep a group allowed to write in log dir.
      **group =** apache
      
    • 변경 후 /etc/php-fpm.d/www.conf 파일의 내용입니다.

      ; Unix user/group of processes
      ; Note: The user is mandatory. If the group is not set, the default user's group
      ;	will be used.
      ; RPM: apache user chosen to provide access to the same directories as httpd
      **user = nginx**
      ; RPM: Keep a group allowed to write in log dir.
      **group = nginx**
      
  2. NGINX 구성 파일을 편집하여 PHP-FPM 통합

    • /etc/nginx/conf.d/default.conf 파일을 편집합니다.

      [opc@ih-webserver-01 html]$ sudo nano /etc/nginx/conf.d/default.conf
      
    • 다음 구성을 추가합니다.

      location / {
      **# where is the NGINX root www folder?**
          root   /usr/share/nginx/html;
      # what are the default index files to look for in the directory?
          index **index.php** index.html index.htm;
      }
      
      # tell NGINX what to do when it sees PHP-FPM giving a 404 HTTP status in the response
      **location = /404.php {
      # where is the NGINX root www folder?
        root   /usr/share/nginx/html;
      # not return error responses with relevant status codes
        fastcgi_intercept_errors off;
      # where is PHP-FPM listening? the socket
        fastcgi_pass unix:/var/run/php-fpm/www.sock;
      # everytime we're in this location, tell PHP-FPM the complete script filename to be executed
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      # and don't forget to tell PHP-FPM stuff like SERVER_NAME:
        include fastcgi_params;
      }**
      
      # tell NGINX what to do when it sees PHP-FPM a .php file
      **location ~ \.php$ {
      # where is the NGINX root www folder?
        root   /usr/share/nginx/html;
      # define custom error pages
        error_page 404 /404.php;
      # return error responses with relevant status codes
        fastcgi_intercept_errors on;
      # where is PHP-FPM listening? the socket
        fastcgi_pass unix:/var/run/php-fpm/www.sock;
      # everytime we're in this location, tell PHP-FPM the complete script filename to be executed
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      # and don't forget to tell PHP-FPM stuff like SERVER_NAME:
        include fastcgi_params;
      }**
      
  3. php.ini 구성 파일 편집.

    • /etc/php.ini 파일을 편집합니다.

      [opc@ih-webserver-01 /]$ sudo nano /etc/php.ini
      
    • 다음 행이 존재하는지, 변경되었는지 또는 주석이 해제되었는지 확인합니다.

      cgi.fix_pathinfo = 0;
      
  4. PHP-FPM 및 NGINX 서비스를 다시 시작합니다.

    • PHP-FPM 서비스를 다시 시작합니다.

      sudo systemctl start php-fpm
      
    • NGINX 서비스를 다시 시작합니다.

      sudo systemctl restart nginx
      
  5. 적절한 웹 페이지를 처리하고 테스트하기 위한 사용자정의 페이지를 생성합니다.

    • 사용자정의 404.php 페이지를 생성합니다. 페이지가 존재하지 않고 액세스하려는 경우 사용자 정의 404 페이지로 재지정을 제대로 처리하려면 이 작업이 필요합니다.

      [opc@ih-webserver-01 html]$ sudo nano 404.php
      

      사용자정의 404.php 페이지의 코드입니다.

      <?php
        header("HTTP/1.0 404 Not Found");
      ?>
      <html>
        <head>
          <title>404 Error - Page Not Found</title>
        </head>
        <body>404 Error - Page Not Found!</body>
      </html>
      
    • 사용자 정의 info.php 페이지를 생성합니다.

      [opc@ih-webserver-01 html]$ sudo nano info.php
      

      info.php 페이지의 코드입니다.

      <?php
      
      phpinfo();
      
    • PHP가 NGNIX와 함께 작동한다는 증거를 제공하는 info.PHP 웹 사이트를 테스트하십시오.

      이미지

      웹 사이트를 설치하고 올바르게 구성하면 다음 웹 페이지가 표시됩니다. 이 페이지에서는 접속에 사용하는 IP 버전에 따라 로컬 및 원격 IPv4 또는 IPv6 주소에 대한 정보를 제공합니다. 이 페이지에서는 사용 중인 프로토콜(HTTP 또는 HTTPS)에 대해서도 설명합니다.

      이미지

작업 9: 인터넷에서 웹 서버 테스트

주: 이 자습서에서 사용한 도메인은 테스트 목적으로만 생성 및 구성되었습니다.

우리는 이미 여러 가지 방법을 사용하여 웹 사이트 또는 웹 서버의 접근성을 테스트했지만. 다음 웹 사이트를 사용하여 연결성과 DNS 레코드 구성을 한 번에 테스트하는 최종 테스트를 수행하고 싶습니다. IPv6 사이트가 준비되었습니까?

  1. FQDN oci.iwanhoogendoorn.nl을 사용하여 테스트합니다.
  2. IPv4 DNS 레코드가 올바르게 구성되었는지 확인합니다.
  3. IPv6 DNS 레코드가 올바르게 구성되었는지 확인합니다.
  4. IPv4에서 웹 사이트에 연결할 수 있는지 확인합니다.
  5. IPv6에서 웹 사이트에 연결할 수 있는지 확인합니다.

이미지

확인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.