먼저 서버에서 nodejs와 mysql이 사용할 포트를 개방해줘야한다.
$ netstat -tnlp
netstat 명령어로 열린 포트를 먼저 확인해준다. 3000포트(Nodejs에서 사용하는 포트와 맞춰주면 됨)와 3306(Mysql이 사용하는 포트)를 열어준다.(패킷필터링)
(예전에 AWS에서는 이걸 좀 더 손쉽게 할 수 있었던거 같은데 여기선 지원하지 않는거 같으니 명령어로 열어줘야함)
$ iptables -I INPUT 1 -p tcp --dport 3000 -j ACCEPT
$ iptables -I OUTPUT 1 -p tcp --dport 3000 -j ACCEPT
$ iptables -I INPUT 2 -p tcp --dport 3306 -j ACCEPT
기본 문법은 iptables -I INPUT -p [발신지] --sport [발신지 포트] -d [목적지] --dport [목적지 포트] -j [정책] 인데 여기서
-I : Insert(규칙 젤 앞에 삽입)
-p : 프로토콜을 제어
이후 아파치 웹서버에 있는 서브 도메인 설정 기능을 이용한다.
먼저 도메인을 구매했던 곳(가비아)에 들어가서 DNS관리툴에 들어가준다. (로그인 > My가비아 > DNS 관리)
레코드 수정에 들어가서 레코드 추가를 해준다.
(서브도메인).(메인도메인) 형식이 되고 여기서 호스트 이름 == 서브도메인이다.
hello.example.com을 만들고 싶다면 hello가 서브도메인이 되는것
IP주소는 본인 서버주소, TTL은 Time To Live의 약자로, 사용자의 DNS 레코드 값을 서버가 캐시 하는 시간을 의미한다. 본인은 1800을 사용했다.
여기까지 설정했다면 확인으로 추가해주고 저장하고 나온다.
이후 다시 서버로 돌아와서 /etc/apache2/ 에 들어가준다. 만약 없다면 apache2를 설치해준다. 본인은 phpmyadmin 설치 당시에 자동으로 같이 설치 되었다.
여기서 sites-available과 sites-enabled 폴더 2개만 보면된다.
이하 eng.sogangboard.com == 본인 도메인
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/eng.sogangboard.com.conf
default로 있는 conf파일을 복사해준다.
$ cd /etc/apache2/sites-available/
$ vi eng.sogangboard.com.conf
#된 부분 빼고 다음과 같이 넣고 저장한다.
<VirtualHost *:80> ServerName eng.sogangboard.com ServerAlias eng.sogangboard.com ServerAdmin webmaster@localhost ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ sudo a2ensite eng.sogangboard.com.conf
$ sudo systemctl reload apache2
$ LoadModule proxy_module modules/mod_proxy.so
$ LoadModule proxy_http_module modules/mod_proxy_http.so
$ cd /etc/apache2/sites-enabled/
$ ln -s ../sites-available/eng.sogangboard.com.conf ./eng.sogangboard.com.conf
이렇게 하고 /etc/apache2/sites-enabled/ 여기에 활성화된 conf 파일이 있으면 성공이다.
'개발' 카테고리의 다른 글
[Web] 8편 - (1) React, Node.JS 연동해서 사용해보기 (0) | 2022.06.04 |
---|---|
[Web] - 7편 (1) Svelte 시작 및 초기 세팅(routing, auth) 소감 (0) | 2022.04.18 |
[Web] - 2편 Mysql SQL문 (create database & table on ubuntu) (0) | 2021.09.02 |
[Web] - 1편 서버 기본 세팅(nodejs, mysql 설치) (0) | 2021.08.30 |
[Web] - 0편 Linux(Ubuntu) 서버 구매 및 도메인 연결 (0) | 2021.08.26 |