SSH 연결 안 될 때 확인 사항
1. $ sudo ufw status
2. $ sudo systemctl status ssh
3. Hyper V 실행 여부
Ubuntu Server에 Host-Only 이더넷 설정
Ubuntu Desktop에 Host-Only 설정할 때와 같이
두 번째 이더넷 어댑터를 켜주고 호스트 전용 어댑터로 설정한다.
$ cd /etc/netplan 으로 들어와서
$ sudo cp 00-installer-config.yaml 00-installer-config.yaml.bak
으로 백업본 만들기(기존 백업본이 있다면 제거 후).
$ sudo nano 00-installer-config.yaml
nano 에디터를 통해 이더넷 설정 내용 추가
(Host-Only라서 DNS는 필요치 않음.)
cat으로 확인 후
$ sudo netplan try
$ sudo netplan apply
$ sudo systemctl stop network-manager
$ sudo systemctl start network-manager
$ sudo systemctl stop network-manager
$ sudo systemctl start network-manager
ip a를 쳐보면 정상적으로 고정 ip가 설정되었음을 확인 가능하다.
Windows 커맨드에서 핑을 쏘아보았다.
&&, || 함께 쓰기
시험 삼아 해 봤는데 if~else문처럼
명령어 && echo "Success" || echo "Failed"
이런 식의 사용이 가능하다.
$PS1
현재 프롬프트 표시
\u@\h:\w\$
username@hostname:working directory$
yoonho\@ubuntu-server:~$
원하는 대로 프롬프트를 설정할 수 있다.
PS1='\d \t > '
이런 식으로 하면 이후엔 프롬프트가
Tue Aug 24 11:24:12 >
이렇게 나온다.
Secondary Prompt
\(역슬래시)를 긋고 이어서 명령어를 입력할 때 나오는 프롬프트이다.
PS2='\h, \t > '
이렇게 하면
ubuntu-server, 11:26:39 >
이런 식으로 프롬프트가 나오게 된다.
* 앞에 export를 붙이면 .profile 파일에 저장이 된다.
환경설정 파일에 저장하지 않으면 로그아웃 시 초기화 된다.
.profile = 현재 사용자 전용 프로필
/etc/profile = 모든 사용자에게 적용
Apache Web Server 구축
기존의 우분투 서버를 이름만 바꿔 복제한다.
PuTTY에서 임시적으로 127.0.0.1:50107 로 타고 들어와서 두 이더넷 어댑터의 IP의 4번째 옥텟들을 변경한다.
변경 후에 try, apply 등 하지 않고 reboot한다.
VirtualBox 관리자 환경설정에서 포트 포워딩 설정에 들어온다.
apache-web-server에 대한 포트 포워딩 룰을 만든다.
108에 맞추어 PuTTY에서 Apache Web Server 프리셋을 하나 더 만들고 접속한다.
ip를 확인해보면 아까 reboot할 때 자동으로 적용이 되어 108이 된 모습이다.
윈도우즈의 커맨드에선 10.0.2.108로 핑을 때릴 수가 없기 때문에
Host-Only 네트워크인 192.168.56.108로 핑을 때려본다.
화면에 안 나왔지만 $ sudo apt update 먼저 하고 $ sudo apt install apache2 를 한다.
웹 서버 접속을 위해 80번 포트를 열어준다.
방화벽까지 열어주고 나면 웹 브라우저에서 IP 입력 시 기본 html 페이지로 접속이 된다.
여기서 프로토콜인 http:// 와 포트번호인 :80은 생략이 되어서 IP만 입력한다.
이 페이지는 apache에서 제공하는 기본 페이지이고,
이 화면은 /var/www/html 경로의 index.html 파일이므로 수정도 가능하다.
$ cd /etc/apache2
$ sudo nano -c apache2.conf
화면엔 -c 옵션이 안 나와있는데 이걸 해야 라인 수를 파악하기 편하기 때문에 해야 한다.
170라인의 <Directory /var/www/> 를 주석치고
그 밑에 <Directory /WebHome> 을 작성한다.
원래 /var/www/ 였던 html 디렉토리의 경로를 /WebHome으로 바꾸는 작업이다.
(현업에선 이렇게 한다고 한다.)
저장과 나가기를 한 후에
$ cd sites-available
$ sudo nano -c 000-default.conf
9번째 라인의 주석을 풀고 서버네임을 www.naver.com으로 바꾼다.
서버 어드민도 naver.com으로 바꾸고
DocumentRoot /var/www/html을 주석치고 DocumentRoot /WebHome으로 바꿔 경로를 읽도록 한다.
$ sudo systemctl restart apache2
$ sudo systemctl enable apache2
$ sudo systemctl status apache2
이제 아까 경로에 박아놨던 WebHome 디렉토리를 실제로 만든다.
디렉토리를 만들고 원래 위치에 있던 html파일을 복사해 넣는다.
Apache Web Server 설정 끝.
Local DNS
C:\Windows\System32\drivers\etc 경로의 hosts 파일을 연다.
이 파일이 도메인 네임 입력 시 최우선으로 확인하는 곳인데
이 곳에서 해당 도메인에 대한 IP를 발견하지 못하면 한국 DNS로 넘어가서 IP를 받아오는 것이고
이 파일에서 192.168.56.108 www.naver.com
이런 식으로 설정을 해주면 웹 브라우저에서 www.naver.com 입력 시 내 서버로 접속이 된다.
주의할 점은 .txt 파일이 되어버리면 안되며, 윈도우즈에서 기본적으로 수정을 할 수 없도록 락을 걸어놨기 때문에
파일을 수정해서 외부에 다른 이름으로 저장을 하고, 그 파일의 확장자명을 강제적으로 없앤 뒤
원래의 C:\Windows\System32\drivers\etc 경로에 덮어써버리면 된다.
Nginx Web Server 구축
설정 과정은 Apache Web Server랑 거의 같다고 보면 되기 때문에
대충 생략하며 일부 과정만 스크린샷으로 남길 것이다.
Apache와 Nginx의 가장 큰 차이점은
Apache는 서버에 리퀘스트가 들어오기만을 기다리면서 다른 일을 하지 못하지만
Nginx는 다른 작업을 수행하면서 서버에 리퀘스트가 감지되면 그때그때 리퀘스트도 처리한다는 점이다.
Apache는 편의점 문이 조용히 열리는 문이어서 알바생이 24시간 내내 손님이 오나 문만 보고 있어야 하는 것이고
Nginx는 편의점 문에 종이 달려 있어서 청소 등 다른 일을 하다가도 손님이 오면 그에 맞춰 응대를 할 수 있는 것이다.
PuTTY로 접속해서 IP 변경.
마찬가지로 try, apply 등 하지 않고 reboot.
포트 포워딩 룰 추가.
윈도우즈에서 112번으로 핑 날려보기.
PuTTY로 로그인한다.
업데이트 후 Nginx 설치를 진행한다.
$ sudo systemctl restart nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx
enable 시에 서비스이름.service 파일이 생성된다.
Web Server 전용의 80번 포트 열기.
192.168.56.112에 성공적으로 접속됨.
nginx의 index 페이지 파일 또한 /var/www/html에 있으니 임의로 수정할 수 있다.
$ sudo nano /etc/nginx/sites-available/default
파일에 들어가서 설정을 해주어야 한다.
위는 IPv4, 아래는 IPv6인데 둘 다 포트 넘버를 80 -> 8080으로 변경한다.
Apache Web Server가 이미 80번 포트를 쓰고 있어서 겹치면 안 되기 때문.
아래 쪽으로 내려서 root /var/www/html; 를 주석치고
root /WebHome; 을 넣는다.
서버네임도 www.kakao.com; 으로 바꾼다.
설정한 8080포트를 방화벽에서 열어준다.
아까의 hosts 파일에서 또 한 번 Local DNS를 사용해본다.
www.kakao.com:8080 으로 접속이 되는 모습.
요약
1. 가상머신을 복제한다.
2. IP를 변경한다(reboot).
3. 포트 포워딩 룰을 추가한다.
4. PuTTY에서 프리셋을 만든다.
5. 아파치 혹은 엔진엑스를 설치한다.
6. 포트 방화벽을 열어준다(80 or 8080).
7. /var/www/html 경로의 index.html 파일을 수정해본다(필수 아님).
8. /etc 쪽 경로에서 각종 파일을 설정한다.
9. restart, enable, status 삼총사를 실행한다.
10. WebHome 디렉토리 생성 후 index.html을 복사해 넣는다.