리눅스

리눅스 9일차

hyestar 2022. 5. 9. 21:05

virtual hosting 개념

nginx는 웹루트폴더 제조기
일반폴더로는 웹브라우저 접속 X

nginx으로 아래를 구축하고 싶다

  1. 80 → /web/site0/public
  2. 8011 → /web/site1/public
  3. 8012 → /web/site2/public

-> nginx 하나로 내 컴퓨터에서 사이트 n개 운영이 가능
=> virtual hosting

 

virtual hosting 설정을 담당할 /etc/nginx/conf.d/vhost.conf 파일

설정 파일 찾기

  1. sudo locate nginx.conf
    • /etc/nginx/nginx.conf
  2. vim /etc/nginx/nginx.conf
    • include /etc/nginx/conf.d/*.conf;
      • conf.d/에 확장자 .conf로 해두면 이 설정파일에서 불러옴
      • 설정파일을 분할하는 법
  3. cd /etc/nginx/conf.d/
  • ls
    • default.conf 파일 뿐
  1. sudo vim vhost.conf
    • 이제 nginx 설정파일에서 이 파일을 읽어냄

8011, 8012 포트에 대해서 각각의 웹루트폴더를 연결

1 . sudo vim /ect/nginx/conf.d/vhost.conf

  • vhost.conf 파일에 아래 코드 추가

server {
    listen 8011;
    server_name _;

    location / {
        root /web/site1/public;
    }
}
server {
    listen 8012;
    server_name _;

    location / {
        root /web/site2/public;
    }
}

2 . sudo systemctl restart nginx

  • localhost:8010 접속 시 잘나옴
  • localhost:8011, localhost:8011 접속 시 연결안됨
    • 당연함 포트포워딩을 아직 안함

3 . 포트포워딩

  1. localhost:8011을 위한 포트포워딩
    • 이름 : HTTP 8011
    • 프로토콜 / 호스트 ip
      • TCP / 0.0.0.0
    • 호스트 포트 : 8011
    • 게스트 ip / 게스트 포트
      • ip addr 확인 시 리눅스 ip / 8011
  2. localhost:8012
    • 이름 : HTTP 8012
    • 프로토콜 / 호스트 ip
      • TCP / 0.0.0.0
    • 호스트 포트 : 8012
    • 게스트 ip / 게스트 포트
      • ip addr 확인 시 리눅스 ip / 8012

4 . 80, 8011, 8012 웹서버 접속

  • 안됨 당연함 폴더는 있는데 파일이 없음

5 . /web/ 내 파일 생성

  1. cd /web/
    • ls
      • site 0
  2. 파일 복사
    1. cp -r site0 site1
      • site0을 복사해 site1 파일을 만들겠다
    2. cp -r site0 site2
      • site0을 복사해 site2 파일을 만들겠다
    • 다시 웹서버 접속 시 파일 3개 내용이 모두 같아 모르겠음
  3. echo "site0" > /web/site0/public/index.html
    • 다른 파일들도 동일한 포맷으로 수정
  4. 웹서버 접속시 페이지 내용이 다 다르면 성공!

 

nginx 설정파일오류에 대처하는 방법

vhost.conf에 설정파일 문법에 맞지 않게 작성 후
sudo systemctl restart nginx하면 오류 문구가 나옴

Job for nginx.service failed ~
See "systemctl status nginx.service" and "journalctl -xe" for details.
  • 오류가 생겼는데, 자세한 내용을 보고싶으면 "systemctl status nginx.service"나
    "journalctl -xe" 명령을 입력해라
  1. systemctl status nginx.service | less
    • 살펴보면 nginx: [emerg] 어쩌구가 보임
      • 옆으로 더 늘려서 읽어보면, in ect//etc/nginx/conf.d/vhost.conf:3에서 오류가 발생했다
  2. journalctl -xe | less
    • 여기서도 자세한 오류내용을 볼 수 있다
728x90