10. 오라클 클라우드에서 우분투 LEMP - 도메인 연결하기

2020. 6. 5. 06:30Oracle Cloud

반응형

 

Contents

0. 오라클 클라우드에서 Ubuntu LEMP(Linux+Nginx+MariaDB+PHP7)에 WORDPRESS 설치하기
1. 오라클 클라우드 무료 가입 (Oracle Cloud Free Tier)하기
2. 오라클 클라우드에서 Ubuntu(우분투) 인스턴스 서버 생성하기 (네트워크 셋팅을 포함)
3. 오라클 클라우드 SSH 접속 및 SFTP 등 서버 접속 환경 설정하기
4. 오라클 클라우드 우분투 서버 환경 설정하기
5. Nginx 서버 설치하기
6. Linux 폴더 권한 설정 확인하기
7. Nginx 서버에 PHP7 설치하기
8. MariaDB 설치하기
9. phpMyAdmin 설치하기
10. 도메인 연결하기
11. sendmail 설치하기
12. HTTPS 적용을 위한 SSL 인증서 발급받기
13. DB 생성하기
14. Wordpress 설치하기
15. Wordpress 설치 후 서버 및 Wordpress 환경 설정하기

* 해당 내용은 오라클 제품을 다루고 있지만 이는 개인적인 테스트 결과이며, 오라클 공식 문서는 아님을 미리 밝힙니다.

이제 자신만의 도메인을 설정해 보겠습니다.

A. Nginx 서버에 도메인 연결 설정

B. Nginx 서버에 CNAME 도메인 리다이렉트 하기

C. 도메인 연결 관련 부수적 설정하기


우선 Nginx 서버에 도메인 연결 설정입니다.

10-1. 도메인 관련 구매는 도메인 회사를 통해서 부탁드립니다.

그에 따른 DNS 설정은 본인이 등록하는 도메인 구매 회사의 도움말을 참조하시면 됩니다.

여기서는 테스트이기 때문에 무료도메인등록 사이트의 DNS를 이용할 것입니다.

2020/05/26 - 무료 도메인 등록 사이트 FREENOM (.tk .ml .ga .cf .gq)

구매한 도메인을 서버의 IP로 등록합니다.

이렇게 DNS 관리 페이지에 들어가셨다면

Type A 항목 오른쪽 Target에 IP주소를 넣습니다. (저는 TTL은 600정도를 추천합니다.)

그 다음 Type에서 CNAME으로 맞춘 후 Target에는 도메인 이름을 넣습니다.
다른 예로 CNAME에 FTP를 넣어서 사용하기도 합니다.
저는 예제로 활용할 itreport.tk 도메인을 넣어 보겠습니다.
그리고 갱신해 보겠습니다.

가장 큰 준비는 모두 완료 되었습니다.

웹서버인 Nginx에 도메인에 대한 정보를 연결하여 서버의 어떤 위치로 연결하라는 라우팅 설정을 할 것입니다.

Nginx의 라우팅 설정은 이전에 index.php 수정을 하였던 /etc/nginx/sites-available/default 에 위치해 있습니다.

#으로 되어 있는 주석을 제외하고 내용을 보면 현재 이렇게 되어 있을 겁니다.

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	root /var/www/html;
	index index.php index.html index.htm index.nginx-debian.html;

	server_name _;

	location / {
		try_files $uri $uri/ =404;
	}

	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
		fastcgi_pass unix:/run/php/php7.4-fpm.sock;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
		include fastcgi_params;
		fastcgi_read_timeout 300;
	}

	location ~ /\.ht {
	    deny all;
	}
}

이 부분을 본인이 구매한 도메인으로 적용하여 보겠습니다.

우선 server_name _;에 도메인 주소를 적습니다. server_name itreport.tk;

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	root /var/www/html;
	index index.php index.html index.htm index.nginx-debian.html;

	server_name itreport.tk;

* 혹시 /etc/nginx/sites-available/default 없으신 분은 파일 사용자 권한을 ubuntu가 가져올 수 있도록 하시기 바랍니다.

명령창에서 sudo chgrp ubuntu /etc/nginx/sites-available/defaultsudo chmod 664 /etc/nginx/sites-available/default 를 입력합니다.

ubuntu@wordpress:~$ sudo chgrp ubuntu /etc/nginx/sites-available/default
ubuntu@wordpress:~$ sudo chmod 664 /etc/nginx/sites-available/default

 

작성을 완성하셨으면 Nginx 서버를 재시작해주셔야 합니다.

아래 10-2와 10-3 항목을 완성한 후 해주셔도 됩니다.

명령창에서 sudo nginx -t  sudo service nginx restart 를 입력합니다.

이때 sudo nginx -t를 입력했을때 예전과 같이 ~ syntax is ok~ test is successful 이 떠야 합니다.
뜨지 않는다면 뭔가 오타가 발생하였거나 ; 를 안닫았다거나 }를 지우셨다거나 한 경우입니다.

ubuntu@wordpress:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
ubuntu@wordpress:~$ sudo service nginx restart

 


이제 www 도 연결해 보겠습니다.

10-2. 이제 CNAME이라고 대표적으로 도메인 앞에 붙이는 www를 연결하는 방법입니다.

우리가 http://itreport.tk 라는 주소와 http://www.itreport.tk 라는 주소가 일치한다는 법은 없습니다.

어느 사이트에서는 www는 영어로 kor은 한국어로 cn은 중국어로 앞에 붙여서 사용하기도 합니다.
이건 서브 도메인이라고 도메인 DNS 관리시에 Type A에 붙여서 사용하는 경우이죠.

하지만 CNAME은 별칭이라고 별명과 같다고 보시면 됩니다. 동일한 주소인데 해당 별명으로 특정 위치에 접속되도록 설정하는 것이지요.

그래서 www를 cname으로 해서 target을 itreport.tk 로 잡았던 것입니다.

여기서는 www.itreport.tk로  로 접속된 도메인은 무조건 itreport.tk로 연결되도록 설정해 보겠습니다.

     location ~ / location ~ /\.ht {
          deny all;
    }
}
하단 부에 
 server {
    listen 80;
    listen [::]:80; 
    server_name www.itreport.tk;    
   

    location / {  
        return 301 http://itreport.tk$request_uri;     ### http://itreport.tk  로 리다이렉트 

     }
}
이런 식으로 자신의 도메인으로 변경하여 붙이시기 바랍니다.

위 도메인과 구분을 하기 위하여 주석을 먼저 붙이고 시작하시는 것이 관리에 용이합니다.

	location ~ /\.ht {
	    deny all;
	}
}

### HTTP (CNAME 연결 www.itreport.tk to itreport.tk ) ###
server {
    listen 80;
    listen [::]:80; 
    server_name www.itreport.tk;

    location / { 
        return 301 http://itreport.tk$request_uri;     ### http://itreport.tk 로 리다이렉팅 
    }
}

그럼 default 파일의 내용이 아래와 같이 됩니다.

# Default server configuration
server {
	listen 80 default_server;
	listen [::]:80 default_server;

	root /var/www/html;
	index index.php index.html index.htm index.nginx-debian.html;

	server_name itreport.tk;

	location / {
		try_files $uri $uri/ =404;
		}
	}

	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
		fastcgi_pass unix:/run/php/php7.4-fpm.sock;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
		include fastcgi_params;
		fastcgi_read_timeout 300;
	}

	location ~ /\.ht {
	    deny all;
	}
}

### HTTP (CNAME 연결 www.itreport.tk to itreport.tk ) ###
 server {
    listen 80;
    listen [::]:80; 
    server_name www.itreport.tk;

    location / { 
        return 301 http://itreport.tk$request_uri;     ### http://itreport.tk 로 리다이렉팅 
    }
}

작성을 완성하셨으면 마찮가지로 Nginx 서버를 재시작해주셔야 합니다.

명령창에서 sudo nginx -t  sudo service nginx restart 를 입력합니다.


마지막으로 현재는 없는 도메인 주소가 생겼을 경우의 대처 방법입니다.

10-3. 그리고 마지막으로 도메인 하단 주소가 변경되어 해당 내용이 없는 경우입니다. 
보통 404 Error를 표시합니다만 특정 주소로 이동하도록 할 수 있습니다.

이 부분은

그 다음 해당 인터넷 URL과 관련된 파일이 없을 경우에 무조건 나타내주는 Page를 이동시킬 수 있습니다.
아래 404 페이지 부분가 나타는데 이렇게 하지 않고 메인 페이지로 이동하도록 하는 경우가 있습니다.

이 경우 try_files $uri $uri/ =404; 하단에 아래와 같이 작성해 줍니다.

       if (!-e $request_filename) { 
         rewrite ^.*$ /index.php last;
         }

* 해당 부분을 빼먹으면 HTTPS를 적용시 오류가 nginx가 오류를 일으킬 가능성이 큽니다. 꼭 추가해주시기 바랍니다.

그러면 index.php로 이동하게 됩니다.

	server_name itreport.tk;

	location / {
		try_files $uri $uri/ =404;
	       if (!-e $request_filename) { 
	         rewrite ^.*$ /index.php last; 
		}
	}

작성을 완성하셨으면 Nginx 서버를 재시작해주셔야 합니다.

명령창에서 sudo nginx -t  sudo service nginx restart 를 입력합니다.

이때 sudo nginx -t를 입력했을때 예전과 같이 ~ syntax is ok  ~ test is successful 이 떠야 합니다.
뜨지 않는다면 뭔가 오타가 발생하였거나 ; 를 안닫았다거나 }를 지우셨다거나 한 경우입니다.

ubuntu@wordpress:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
ubuntu@wordpress:~$ sudo service nginx restart

 

개인적으로 wordpress에서는 포스트 주소가 URL로 되어 있는데 포스트 제목을 변경하여 포스트 주소가 변경되었을 경우에 에러 페이지를 뜨도록 하는 것이 아니고 메인 페이지로 넘어가도록 하는 방법입니다.

꼭 사용해야 하는 것은 아닙니다만 워드프레스에서 도메인 운영을 포스트 이름으로 사용하시는 경우 위 내용을 넣는 것을 추천합니다.

 

다음으로 바로 SSL인증서 발급 받기를 하면 좋은데 SSL 설치 후 sendmail 설치를 하면 좀 복잡하여 우선적으로 sendmail부터 먼저 진행해 보겠습니다.

 

Contents

0. 오라클 클라우드에서 Ubuntu LEMP(Linux+Nginx+MariaDB+PHP7)에 WORDPRESS 설치하기
1. 오라클 클라우드 무료 가입 (Oracle Cloud Free Tier)하기
2. 오라클 클라우드에서 Ubuntu(우분투) 인스턴스 서버 생성하기 (네트워크 셋팅을 포함)
3. 오라클 클라우드 SSH 접속 및 SFTP 등 서버 접속 환경 설정하기
4. 오라클 클라우드 우분투 서버 환경 설정하기
5. Nginx 서버 설치하기
6. Linux 폴더 권한 설정 확인하기
7. Nginx 서버에 PHP7 설치하기
8. MariaDB 설치하기
9. phpMyAdmin 설치하기
10. 도메인 연결하기
11. sendmail 설치하기
12. HTTPS 적용을 위한 SSL 인증서 발급받기
13. DB 생성하기
14. Wordpress 설치하기
15. Wordpress 설치 후 서버 및 Wordpress 환경 설정하기

* 해당 내용은 오라클 제품을 다루고 있지만 이는 개인적인 테스트 결과이며, 오라클 공식 문서는 아님을 미리 밝힙니다.

반응형