라즈베리파이 3 (웹호스팅)
- 서버
고정 IP주소를 가지고 24시간 동작하는 SW
- 주소
고정 IP : 설정 후 변경이 없는 IP주소
유동 IP : 일정 시간 이후 다시 할당을 받아 변경될 수 있는 IP
DDNS ( Dynamic DNS ) : IP주소가 변경되어도 동일한 도메인 이름으로 IP주소를 제공 하는 서비스
내부 IP : 특정 네트워크 내에서만 장비를 구별하는 IP
외부 IP : 전세계 인터넷에서 특정 장비를 식별하는 고유 IP
라즈베리파이는 [ 유동 IP를 사용하는 공유기로부터 할당받은 내부 IP를 사용 ]
라즈베리파이로 계정관리 기능을 수행 (sudo su -)
- Super User (root) sudo su - 필요.
- 계정 id/pwd , 홈디렉터리 ( 만들어진 계정이 작업할 곳 ) , 그룹 등을 설정
- 계정 정보 파일 : /etc/passwd
- 암호 정보 파일 : etc/shadow
명령어 :
- adduser [계정] : 새로운 계정의 ID를 입력하면, ID랑 해당 계정에 따른 홈 디렉터리가 생성됨. --> 암호 입력을 할 수 있음 (이게 다 해주니까 주로 이거 쓰면 됨)
- useradd -m [계정] : user만 만들고 홈 디렉터리는 안 만들어줘서 내가 하나하나 만들어야 함 (한땀한땀 만드는 느낌)
- passwd [계정] : 해당 계정의 암호 수정
- usermod [옵션] [계정] : 현재 만들어진 user 수정할 수 있음
- deluser [계정] : 계정 삭제, 홈 디렉터리는 삭제 안 됨 so,내가 삭제해야 함
Vrirtual host
한 서버에서 여러 웹사이트 운영하기
= 한 Web Server 에서 host를 여러 개로 설정할 수 있음.
= 위에 web Server 에서 이름이 다른 세 개의 도메인이 설정되어있음.
하는 법
1. 웹 서버의 설정파일을 하나 만든다.
/etc/nginx/sites-available/default 파일을 복사
이름은 내가 만들고싶은 도메인 주소로
server 아래 listen 80 ==> 80 포트로 듣겠다.
root /var/www/html ==> 홈 디렉토리(root)를 저 위치로 하겠다.
server_name _ ==> 뒤에 도메인 주소를 넣으면 됨 (이따가 다시 설명)
2. /etc/nginx/sites-enabled/ 에서 사용 설정
/etc/nginx/sites-enabled/에 들어가고
관리자 권한으로 symbolic link를 하나 만든다.
ex) sudo ln -s /etc/nginx/sites-available/[방금 만든 설정파일 ] [방금만든 설정파일]
/etc/nginx/sites-enabled/ 여기에 등록된 웹서비스는 서버를 리부팅하면 같이 동작함!
이게 끝났으면
nginx -t 명렁어로 설정 파일에 문제가 없는지 확인을 해야한다.
제대로 됐으면 그 다음 줄 처럼 ok가 뜸
그 다음엔 nginx 시작
하면 새로 설정한 파일이 적용이 되어서 서비스를 제공한다.
실습!
세 단계로 나눈다고 생각하면 됨
1. 계정 설정
2. 웹서비스 설정파일 생성
3. Symbolic link 생성
4. PC hosts 파일에 주소+IP등록( 관리자 권한으로 가능 )
각 단계별로 정확히 익혀두자
계정 설정
1. (root로 로그인)useradd -m rpiuser (-m 옵션 추가하면 home디렉토리도 만들어줌)
2. cd /home 에서 rpiuser라는 폴더가 생성되었는지 확인
3. passwd rpiuser 로 암호 설정 후 password 입력
4. 비밀번호까지 설정하고 로그인이 잘 되는지 확인하기
--> su - rpiuser 로 로그인하기
로그인 했을 때 위치는 /home/rpiuser
5. (이제부터 로그인 한 채로 해야함! ) 이제 웹에서 사용할 홈 디렉토리를 정하기
mkdir (홈디렉토리 이름) --> www라고 가
6. chmod -R 755 www 로 권한 설정하기 ( -R 옵션은 아래 디렉토리에 있는 권한을 다룰 때 씀 )
7. www폴더로 이동 후 그 폴더에 index.html 작성
웹서비스 설정파일 생성
서버 설정을 해야하기에 로그아웃을 한다.
1. exit , logout 둘 다 한다. --> super user 상태
2. /etc/nginx/sites-available로 들어가서
cp default goodrpi.com 으로 default를 복사해서 goodrpi.com(도메인 주소로 하고싶은 거) 이름으로 하나 만든다.
3. goodrpi.com을 vim으로 연다 - > root /home/rpiuser/(홈디렉토리 이름);을 한다.
홈 디렉토리 안에 index.html이 있기 때문에 그 디렉토리를 써주면 됨
--> server_name 지금 현재 열려있는 폴더 이름으로 한다.
밑에 있는 파일들은 기본으로 어느 페이지를 열거냐임
symbolic link 생성
1. /etc/nginx/sites-enabled 에 들어가서
ln -s ../sites-a* (=avaible)/ goodrpi.com goodrpi.com를 링크한다.
2. 설정파일 테스트 nginx -t
3. 웹서비스 재시작 service nginx restart
PC 파일에 domain 주소와 IP등록 (관리자 권한)
Windows : C:\Windows\System32\drivers\etc\hosts 에서
IP랑 domain 주소 같이 넣으면 됨
출처 : 한동대학교 장소연교수님 - OSS PPT