본문 바로가기
클라우드노트/오라클클라우드(OCI)

(5) 오라클 클라우드에서 도메인 설정, 샌드메일 설치

by 테크한스 2021. 11. 30.

1 (1) 오라클 클라우드 Free Tier 가입 (VM2개,100G 하드, 10TB 트래픽 평생무료)
2 (2) 오라클 클라우드 Free Tier 무료계정에 linux,nginx,mariadb,PHP,wordpress 몽땅 쓸어넣자
3 (3) 오라클 클라우드에서 unbuntu, nginx, php7 설치
4 (4) 오라클 클라우드에서 mariadb, phpmyadmin 설치
5 (5) 오라클 클라우드에서 도메인 설정, 샌드메일 설치
6 (6) 오라클 클라우드에서 nginx, https 사용을 위한 무료 SSL인증서 설정
7 (7) 오라클 클라우드에서 사용하는 워드프레스(wordpress) 설정
8 (8) 오라클 클라우드에서 무료로 사용하는 워드프레스, DB 백업과복구
9 (9) 오라클 클라우드에서 무료로 사용하는 오브젝트스토리지(S3)+아카이브 20G
10 (10) 오라클클라우드에서 무료로 제공하는 블록볼륨을 연결해 보자
11 (11) 오라클클라우드 프리티어 마지막 혜택 - Ampere A1 4CPU 24G
12 (12) 오라클 클라우드에서 무료로 제공하는 오라클 데이터베이스 ATP생성과 연결

 

이번시간은 인스턴스를 위한 reserved 고정 아이피를 설정하여 사용하였는데 이제는 도메인주소를 이용하여 접속해 보겠습니다.  여기서의 진행은 사실 테스트 정도이기에 굳이 도메인 주소를 유료로 구매할 필요는 없으나 장기적으로 해당 인스턴스를 계속 사용할 예정이라면 도메인주소를 적당한 걸 구매하는 걸 추천합니다.

 

저는 한 3,4년 사용하는 닷컴(.com) 도메인이 일년에 2만원 중반 가격이라 그냥저냥 계속 연기해서 사용하고 있었고

사실 그동안 비싸게 cafe24에서의 유료 호스팅 (하드디스크 2기가 ㅠ)을 재계약 안하고 이번기회에 오라클 클라우드의 무료호스팅으로 전환을 하였습니다. (비용절감했네요, 무료사용 디스크 용량 100기가로 늘어나고 말이죠) 

 

만약 도메인주소가 없으신 분들은 무료 도메인 주소 서비스하는 사이트가 있다고 합니다.

https://www.freenom.com/

 

Freenom - A Name for Everyone

Cost Price Free Special

www.freenom.com

관심 있으신 분들은 진행해 보세요. 그러나 제대로 홈페이지 등의 사이트로 사용하려면 도메인서비스가 상당히 불안한 편입니다.

 


(업데이트) 하기의 프리놈 무료 도메인 서비스를 사용하면서 황당한 상황이 발생해서 해당 내용을 공유드립니다.
다시말해서 무료가 황당한 무료서비스인 것을 알게 되었습니다.

아래의 링크 내용은 제가 한달 정도 사용하면서 사용으로 도메인 서비스를 사용하기에는 무리가 있다라는 판단이 들었습니다. 저는 결국 고대디 라는 해외 유료 도메인 서비스로 갈아타서 안정적으로 운영하고 있습니다.

 

프리놈에 대한 저의 안좋았던 경험을 아래 링크에 걸어 놨습니다. 참고하세요

 

https://techhans.tistory.com/59?category=1013747


 

 

무료 도메인 등록 사이트 FREENOM은 무료 도메인을 제공하는 업체입니다.

  • tk - 뉴질랜드령 토켈라우제도 (Tokelau)
  • ml - 말리 (Mali)
  • ga - 가봉 (Gabon)
  • cf - 중앙아프리카공화국 (Central African Republic)
  • gq - 적도 기니 (Equatorial Guinea)

무료 제공 도메인은 위와 같이 5개 1차 도메인인 국가 최상위 도메인을 제공하고 있습니다. 서비스 자체는 네덜란드어, 영어, 중국어, 일본어 등 17개 언어를 제공하고 있으나 한국어로는 제공되고 있지 않습니다. 서비스 사용하면서 주의해야 할 점은 1년 무료 제공 후 무료 연장이 가능하나 해당 연장을 놓치면 1년 US $9.95를 지불해야 한다는 점입니다.

(다시말해 도메인 완료 14일 전에 연장을 하시면 됩니다)

 

그러나 저는 사용해 보질 않아서 여기서는 길게 언급하지 않겠습니다.

 

저는 cafe24에 존재하는 저의 닷컴 도메인 주소에 도메인등록을 이용해 오라클 클라우드의 고정IP를 할당해 주니 10분 정도 후부터 기존 cafe24호스팅이 오라클 클라우드로 전환된 것을 확인하였습니다.

 

각자 상황에 맞게 도메인설정이 완료되면 웹서버에도 해당되는 도메인 주소를 설정해야 합니다. (라우팅설정?)

설정위치는 /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 XXXX.com;

 

/etc/nginx/sites-available/default

 

이 파일에 대한 권한은 다음과 같이 사용하는 것이 좋습니다.

sudo chgrp ubuntu /etc/nginx/sites-available/default
sudo chmod 664 /etc/nginx/sites-available/default

-rw-rw-r-- 1 root ubuntu 3411 Nov 29 13:40 default

 

이와 같이 default 파일을 수정한 후에는 오타없는 다시 확인해 보고요

ubuntu@bluehorse:/etc/nginx/sites-available$ 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@bluehorse:/etc/nginx/sites-available$

이것은 도메인설정 부분에 대한 추가내용입니다.

도메인앞에 붙는 www 에 대한 설정입니다.

이것이 붙고, 안붙고에 따라 설정이나 보여지는 것이 달라질 수 있습니다.

 

여기서는 www.XXXX.com  은 XXXX.com 과 같도록 연결해 보겠습니다.

 

즉 default 파일 맨 마지막에 추가한 전체적인 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 XXXX.com;

	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.XXXX.com to XXXX.com ) ###
 server {
    listen 80;
    listen [::]:80; 
    server_name www.XXXX.com;

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

지금까지 웹서버 nginx 설정파일을 수정하였기에 nginx 서버를 재시작이 필요함

ubuntu@bluehorse:~$ 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@bluehorse:~$ sudo service nginx restart

nginx 관련해서 추가적인 내용인데요~

특정주소로 이동하려고 할때, 해당 URL 파일이 존재 안할때, 404 (Not Found) 페이지로 빠지는 경우인데

그것을 그렇게 처리하지 말고 그냥 메인 페이지로 자연스럽게 이동시키는 것은 어떨까?

 

	server_name XXXX.com;

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

위에 보시면 이 부분이 추가가 되었네요

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

default 파일을 수정했기에 웹서버 nginx를 재기동합니다.

ubuntu@bluehorse:~$ 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@bluehorse:~$ sudo service nginx restart

다음은 샌드박스 (sendbox) 설정 부분입니다.

 

샌드박스 설치부분은 옵션(선택사항)입니다.

왜냐하면 설치후에 기능이 올바르게 동작하고 있지 않아 보입니다.

그냥 넘어가도 (skip) 좋습니다.

 

설치과정 중 가장 까다로운 SSL인증서는 sendbox 설정 다음에 하는 것이 무난하다고 합니다.

우선 sendbox 설치하는 방법은 아래와 같은 명령어입니다.

sudo apt-get install sendmail

설치 진행 하면서 한번 정도

After this operation, 5185 kB of additional disk space will be used. 
Do you want to continue? [Y/n]

엔터 진행합니다. 그럼 설치가 완료되게 됩니다.

 

그러면 sendmailconfig를 설정해 볼까요?

sudo sendmailconfig

그러면 3번 정도 동의를 구합니다. 거기서 모두 y 입력

 

그리고 PHP에서 sendmail을 사용하도록 php.ini를 수정합니다.

ubuntu@bluehorse:~$ sudo nano /etc/php/7.4/fpm/php.ini

nano 에디터에서 ctrl 와 W 를 눌러서 sendmail_path를 찾습니다 (find)

앞에 ;(세미콜론)을 지우고 아래와 같이 추가합니다.

sendmail_path = "env -i /usr/sbin/sendmail -t -i"

이렇게 입력이 끝나게 되면 저장을 합니다.

그리고 마지막에 php-frm을 재시작

sudo systemctl restart php7.4-fpm

이제는 샌드박스를 설치 및 환경을 완료했기에 서버에서 메일을 발송하겠습니다.

sudo service sendmail start

우선은 설치된 샌드박스를 실행하겠습니다.

sudo service sendmail status

그런후에 샌드박스 상태 체크

ubuntu@bluehorse:~$ sudo service sendmail status
* sendmail.service - LSB: powerful, efficient, and scalable Mail Transport Agent
   Loaded: loaded (/etc/init.d/sendmail; generated)
   Active: active (running) since Mon 2021-11-29 11:30:02 KST; 19h ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 3 (limit: 1118)
   CGroup: /system.slice/sendmail.service
           |-15956 sendmail: MTA: accepting connections
           |-19257 sendmail: MTA: ./1AT5PakY009297 alt4.gmail-smtp-in.l.google.com.: user open
           `-19471 sendmail: MTA: ./1AT7w89q011702 mx1.naver.com.: user open

Nov 30 06:21:46 bluehorse sm-mta[18574]: 1AT5PakY009297: to=<techhans2019@gmail.com>, ctladdr=<
Nov 30 06:21:46 bluehorse sm-mta[18574]: 1AT2fcVq006205: to=<techhans2019@gmail.com>, ctladdr=<
Nov 30 06:30:51 bluehorse sm-mta[18702]: 1AT7w89q011702: to=<intohans@naver.com>, ctladdr=<ubun
Nov 30 06:38:40 bluehorse sm-mta[19241]: 1AT5feQP010346: to=<techhans2019@gmail.com>, ctladdr=<
Nov 30 06:38:40 bluehorse sm-mta[19241]: 1AT2fcVq006205: to=<techhans2019@gmail.com>, ctladdr=<
Nov 30 06:41:46 bluehorse sm-mta[18702]: 1AT5PakY009297: to=<techhans2019@gmail.com>, ctladdr=<
Nov 30 06:41:46 bluehorse sm-mta[18702]: 1AT2fcVq006205: to=<techhans2019@gmail.com>, ctladdr=<
Nov 30 06:50:51 bluehorse sm-mta[19257]: 1AT7w89q011702: to=<intohans@naver.com>, ctladdr=<ubun
Nov 30 06:58:40 bluehorse sm-mta[19378]: 1AT5feQP010346: to=<techhans2019@gmail.com>, ctladdr=<
Nov 30 06:58:40 bluehorse sm-mta[19378]: 1AT2fcVq006205: to=<techhans2019@gmail.com>, ctladdr=<
lines 1-20/20 (END)...skipping...

CTRL C 키로 빠져나옵니다.

   Active: active (running)

구동 되고 있음을 확인할 수 있습니다.

 

SSH 터미널에서 테스트용으로 더미 메일을 보내 보겠습니다.

(echo "Subject: OCI 샌드메일에서 테스트 완성"; echo ; echo "OCI Send Email Test 완성") | sendmail -i -v techhans2019@gmail.com

그런데 이렇게 전송한 후에 진행도 느린데다가 저 메일이 아직 도착을 안했습니다.

이 부분은 테스트를 더 해봐야 할 거 같습니다.

 

Send Email Test 완성") | sendmail -i -v techhans2019@gmail.com성"; echo ; echo "OCI S
WARNING: local host name (bluehorse) is not qualified; see cf/README: WHO AM I?
techhans2019@gmail.com... Connecting to [127.0.0.1] via relay...
220 bluehorse ESMTP Sendmail 8.15.2/8.15.2/Debian-10; Tue, 30 Nov 2021 07:07:48 +0900; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
>>> EHLO bluehorse
250-bluehorse Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> MAIL From:<ubuntu@bluehorse> SIZE=77 AUTH=ubuntu@bluehorse
250 2.1.0 <ubuntu@bluehorse>... Sender ok
>>> RCPT To:<techhans2019@gmail.com>
>>> DATA
250 2.1.5 <techhans2019@gmail.com>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .

 

메일 전송이 안되는거도 같고요  ;;

 

(업데이트)

센드메일로 전송은 실패한 걸로 보입니다. 

 

(팁) 만약 오라클 클라우드에서 서버를 구성하고 그위에 워드프레스(wordpress)를 설정해서 사용한다면

워드프레스에서 Google OAuth (이게 GCP 서비스로 들어갔네요) 를 이용해서

GCP 무료 리소스 내에서 하루에 200건인가요? 보낼 수 있는 설정이 있고

이것을 설치한 wordpress에서 메일을 보내는 기능이 있어서

서비스하는데 (비밀번호 변경 재발송 등등) 어려움은 없어 보입니다.

 

이번 시간은 여기까지 입니다.

 


 

(참고) 무료클라우드에 대한 벤더별 비교 영상은 아래를 확인해 보세요

 

 

 

 

1 (1) 오라클 클라우드 Free Tier 가입 (VM2개,100G 하드, 10TB 트래픽 평생무료)
2 (2) 오라클 클라우드 Free Tier 무료계정에 linux,nginx,mariadb,PHP,wordpress 몽땅 쓸어넣자
3 (3) 오라클 클라우드에서 unbuntu, nginx, php7 설치
4 (4) 오라클 클라우드에서 mariadb, phpmyadmin 설치
5 (5) 오라클 클라우드에서 도메인 설정, 샌드메일 설치
6 (6) 오라클 클라우드에서 nginx, https 사용을 위한 무료 SSL인증서 설정
7 (7) 오라클 클라우드에서 사용하는 워드프레스(wordpress) 설정
8 (8) 오라클 클라우드에서 무료로 사용하는 워드프레스, DB 백업과복구
9 (9) 오라클 클라우드에서 무료로 사용하는 오브젝트스토리지(S3)+아카이브 20G
10 (10) 오라클클라우드에서 무료로 제공하는 블록볼륨을 연결해 보자
11 (11) 오라클클라우드 프리티어 마지막 혜택 - Ampere A1 4CPU 24G
12 (12) 오라클 클라우드에서 무료로 제공하는 오라클 데이터베이스 ATP생성과 연결

댓글