티스토리 뷰
일단 Apache 란 무엇인가 ? Apache HTTP server로 세계에서 가장 널리 쓰이는 웹서버 소프트웨어이다.
그래서 웹서버를 만들 때 Apache2를 까는경우가 굉장히 많다. (사실 난 허접이라 apache2말고는 안써봤다.)
Apache2 설치방법 : 터미널에서 sudo apt-get apache2 하면된다.
이번 주제인 Apache2에서 외부에서 들어오는 포트관리하는 법을 알아보자
1. 기본
나는 집에있는 라즈베리파이 우분투에 apache2를 설정했다.
일단.. 브라우저로 아이피에 접속을하면
Apache2 Default Page 가 뜬다.
그런데 여기서 생긴 의문 ?
아파치2하나당 하나의 웹페이지 서버밖에 못만드는 것인가? 80번 포트말고 다른 포트로는 접속이 안되는걸까 ?
결국 아파치 포트를 관리해야하는데 어떻게 해야하는가 ?
구글링 해보니까 /etc/apache2 폴더에 있는 httpd.conf를 수정해야한다고 한다. 그래서 찾아보니 으잌? 없다..
그래서 왜 나는 없습니까 껄껄 하고 찾아보니
this File httpd.conf is still exits in RedHat , Centos , Ferodra however Now This file does not exist in ubuntu.
이제 우분투에는 없다고한다. 옛날에 만져봤던거 같긴한데..
그럼 port관리를 어디서 해야하나? /etc/apache2/ 로 가봤다.
이상한게 잔뜩있다. 가장 대표적인 apache2.conf에 가서 뭐가 무슨일을 하는지 찾아봤다.
apache2.conf : 웹서버가 시작될 때 포함할 configuration파일들을 모으는 역할을 한다.
ports.conf : listening ports를 설정할 수 있다. (Listening 포트로 들어왔을 때 아파치가 반응함 )
Configuration files :
mods-enabled => module을 관리함
conf-enabled => global한 configuration 조각들 관리
sites-enabled => virtual hosts관리.
2. 포트 관리
어떤 포트로 들어왔을 때 아파치가 반응하라는것은 ports.conf에서 관리하면된다.
vi로 들어가보면..
띠용. Listen 80번 포트 88 번 포트를 열어놓았군. 원하는 포트를 추가하면된다.
대부분 80번 포트만 열려있는데. Virtualhost가 뭔지 모를 때 (불과 하루전) 다른페이지는 88번 포트로 열면 되겠다! 라고 판단하여 열어놓았다.
SSL일때 (http://terms.naver.com/entry.nhn?docId=1180906&cid=40942&categoryId=32851) 443번 포트도 열게 해 놓았다. (기본적으로 설정되어 있었다.)
그리고 위에 ports.conf부분은 포트만 추가/제거 하고 virtual host 부분은 /etc/apache2/sites-enabled/에서 바꾸라고 적어놓았다.
3. Virtualhost관리
그럼 이제 다양한 주소에서, 다양한 포트로 들어왔을 때, 원하는 웹서비스를 실행시키기 위해서 어떻게 분산 시켜주는지 알아보자.
저는 제가 다시보기위해 대충 적어놓을 것이기때문에, 영어를 공부겸.. 이걸 읽으시는게 더 도움이 되실껍니다.
일단 (1.기본)에서 보았듯? /etc/apache2/sites-enabled/ 에서 관리한다.
일단 virtualhost 파일을 만들어준다. /etc/apache2/sites-enabled/ 에 들어가면 기존 000-default.conf가 존재하기 때문에 이 구성을 비슷하게 이용할 것이므로
$ cd /etc/apache2/sites-enabled/ $ sudo cp 000-default.conf test.conf |
복사한뒤
$ sudo vi test.conf |
conf 파일을 수정한다.
<VirtualHost *:80> ServerName lyrics.rakjoon.net ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
<VirtualHost 아파치로 접근할때 들어온 IP : 들어온 Port>
ServerName : 아차피로 들어올때 접근한 서버네임 (www.naver.com같은 ?)
ServerAlias : (ServerName말고 다른 주소들 => www.naver.com 과 naver.com과 같은 virtualhost에 물리고 싶을 때)
ServerAdmin : 서버 어드민의 email
DocumentRoot : 우분투에 실행할 도큐먼트의 위치. 이 위치 안의 index.html이 실행되겠죠 ?
ErrorLog : 에러 로그 (일반적으로 ${APACHE_LOG_DIR} 은 /var/log/apache2/ 위치입니다. )
CustomLog : 커스텀한 로그
</VirtualHost>
참고 : https://httpd.apache.org/docs/2.4/vhosts/
위에 적어놓은 소스를 보면
외부에서 어떤 IP로 접근하든 ( 여기서 말하는 IP는 서버의 아이피 입니다. 한서버가 단일 아이피만 갖으리란 법은 없겠죠 ? )
브라우저에서 lyrics.rakjoon.net으로 접근한다면
/var/www/html/을 루트로 삼아 실행해라.
즉 ServerName 설정만 다르게 하면 웹에서 어떤 주소로 접속하냐에 따라 같은서버IP에서 다른걸 보여 줄 수 있습니다. (Name-based Virtual Hosts)
참고 : https://httpd.apache.org/docs/2.4/vhosts/name-based.html
그리고 저장! 기본적인 Vi 사용법은 익혀놓으시길 바랍니다.
000-default.conf 는 80번대 포트를 모두 점유하고 있기때문에 겹치지 않게 default도 바꿔주세요.
그리고 아파치를 재시작 하면 끝.
$ sudo service apache2 restart
정리하기 위해 올리는거라. . 잘못된 부분이 있으면 알려주시면 감사하겠습니다.!
- Total
- Today
- Yesterday
- 창숨김
- 창숨김 다운
- iptime 2000au
- 창숨김 프로그램
- 디스크 쓰기 금지되어 있습니다
- 창숨기기
- 블로그
- robot
- ubuntu
- C# 책
- 블로그 공지
- C#책
- C 책
- c#초보
- 2000au
- 블로그 이야기
- 블로그 개설
- ROS2 설치
- c#ㄱㄱ
- 창숨기기 프로그램
- ROS2
- c#
- readonly
- C#입문
- C# 속으루..
- Node
- USB
- 책 소개
- c#.net
- ipTIME
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |