리눅스

리눅스 7일차

hyestar 2022. 5. 2. 22:00

nginx 웹서버 설치

  • nginx라고 불리는 웹서버를 설치, 시작
    • 기본적으로 웹은 80포트 이용
  • firewalled 라는 방화벽이 있는데, 이게 80번포트 포워딩을 방해
    • firewalled 종료
  • 크롬에서 http://127.0.0.1/8011 접속 시
    • 리눅스 안의 nginx 웹서버에 접속
  • 명령어 예시
    • sudo yum install 서비스 : 설치
    • sudo yum remove 서비스 : 설치
    • sudo systemctl start 서비스 : 서비스 시작
    • sudo systemctl restart 서비스 : 서비스 재시작
    • sudo systemctl stop 서비스 : 서비스 중지

nginx 웹서버 설치

  • sbsst) sudo yum install -y nginx
    • 이 경우 yum이 여러버전 중 랜덤으로 설치

nginx 웹서버 제거

  • sbsst) sudo yum remove -y nginx

yum repository 설정으로 nginx 최신버전 설치

외부문서 - Install Nginx (Latest Version) on CentOS 7
yum install nginx latest 키워드로 구글링

  1. sudo vim /etc/yum.repos.d/nginx.repo
    • nano는 vim으로 변경해서 입력
  2. a 눌르서 끼워넣기 모드로 진입 후
  3. 아래내용 추가 후 저장(wq!)
  4. 다시 nginx 설치하면 최신버전으로 설치된다
    • sudo yum install nginx -y
    • 최신버전 확인
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0

systemctl 명령어 개요

system 자원을 켜고 끄는 등의 system 관련 명령어

  • systemctl status 서비스명
    • 상태만 보기 (일반유저 접근가능)
    • active 상태인지 확인 가능
  • systemctl start 서비스명
    • ex) systemctl start nginx
    • 프로그램 시작
  • systemctl stop 서비스명
    • 프로그램 중지
  • systemctl restart 서비스명
    • 프로그램 재시작
  • systemctl enable 서비스명
    • 다음 부팅시 부터 자동으로 시작해라
  • systemctl disable 서비스명
    • 지금 당장 off하는 것이 아닌 다음 부팅때부턴 자동시작하지 마라

71강 : nginx 서비스 활성화, 시작, 상태확인

  1. sudo systemctl status nginx
  2. sudo systemctl start nginx
  3. sudo systemctl status nginx

프로세스

프로세스 : 실행중인 프로그램

  • sudo systemctl status nginx 입력 시
    • process: 1584
    • Main PID : (nginx)
    • CGroup : /system.slice~
      • 1585 nginx
      • 1586 nginx
  • 1584 : 부모 스레드 (프로세스)
  • 1585, 1586 : 자식 스레드 (프로세스)
  • 프로그램 => 실행* 2 => 프로세스 * 2
    • 프로그램을 동시에 2개이상 실행하면, 프로세스(메인)도 2개
    • 프로세스는 기본적으로 번호로 출력
    • main 프로세스 번호를 보자

ps -ef 명령으로 프로세스 리스트 확인 가능

명령어

  • sudo ps -ef | less
  • sudo ps -ef | fgrep 프로세스번호
    • 특정 단어와 관련된 프로세스

netstat -nlp 명령으로 네트워크와 포트 사용현황을 확인

  • sudo netstat -nlp
    • 네크워크 상태 확인
  • sudo netstat -nlp less
    • 창에 맞게 편하고 쉽게 볼 수 있음
    • sudo를 안붙일 시 PID/Program name이 숨겨져 나옴
  • sudo netstat -nlp | fgrep nginx
    • nginx와 연결된 포트번호 확인

오류시 확인 절차

if) 윈도우(외부) 에서 SSH, nginx 등 접근이 안될 시

  • 원인
    1. 연결할 내부 프로그램 (SSH, nginx 등)에서의 문제
      • ssh로 내부에서 접속을 해도 안될 시, 서비스 자체의 문제
    2. 접근이 막혀있음
      • ssh로 내부에선 접속에 성공했지만, 외부에선 접속이 안되면 접근이 막혀있는 것

서버와 클라이언트와 프로토콜

SSH 프로토콜

클라이언트 / 서버
putty, ssh / sshd

HTTP 프로토콜

클라이언트 / 서버
IE, 크롬, 사파리, wget / nginx, apache

윈도우는 gui(그래픽 사용자 인터페이스) 사용자가 알기 쉽게 그래픽 즉,
아이콘 같은걸로 나타내주지만 리눅스는 아니라서 성능이나 기능이
윈도우보다 많이 떨어짐

ssh 명령으로 내부에서 sshd 서버의 유효성 테스트

ssh는 외부세상의 putty 급
ssh 10.0.2.16 내부용 접속기를 통해 sshd 서버에 접속되는지 확인

  1. ssh 127.0.0.1
    • 여기서의 127.0.0.1은 리눅스 자신
  2. ex) ssh root@127.0.0.1
    • ssh 아이디@서버
  3. ip addr
    • inet 10.0.2.16 : ip 확인
  4. ssh root@10.0.2.16
    • 로그인까지 완료하면 접속 완료
    • 확인 후 exit

wget 명령으로 내부에서 웹서버가 잘 작동하는지 확인

nginx 접속이 안되니 리눅스 wget을 통해 먼저 내부에서 접속시도

  1. wget 127.0.0.1
    • 200 OK이라 나오면 성공
    • 다운 완료
    • index.html 저장됨
  2. wget는 잘 작동되고 있다

명령어

  • wget http://웹서버IP:포트
    • ex) wget http://127.0.0.1:80
    • ex) wget http://10.0.2.16:80

78강 외부세상의 8011 포트를 내부세상의 80과 연결

  1. nginx 설치 - on
  2. nginx 포트 확인 : 80
    • netstat -nlp | fgrep nginx
      • 80 : 포트 확인
    • wget 10.0.2.16:80
      • 내부에서 wget으로 접속 성공
  3. 크롬 주소창에 http://10.0.2.16:80 입력
    • 안될 시 포트포워딩
  4. 포트포워딩
    • 이름 : HTTPD 8011
    • 프로토콜 : TCP
    • 호스트 ip : 0.0.0.0
    • 호스트 포트 : 8011
    • 게스트 ip : 10.0.2.16
    • 게스트 포트 : 80
  5. 크롬 주소창에 127.0.0.1:8011
    • 안됨

왜 안될까?

  1. 연결할 프로그램이 활성화 상태인지 확인
    • ssh root@10.0.2.16
    • wget 10.0.2.16:80
  2. 포트포워딩
    => 2개해도 안되면, 방화벽 때문에 막힌 것

방화벽

방화벽 (firewall)

  • 포트를 기본적으로 방어하고 있고, 선택적으로 개방해 포트연결이 가능

현재 nginx 웹서버 연결을 위해 방화벽을 비활성화 해야 하는 상황

  1. 먼저 방화벽 활성화 상태인지 확인
    • sudo systemctl status firewalld
  2. active 상태일시 비활성화
    • sudo systemctl stop firewalld
    • sudo systemctl disable firewalld

크롬으로 내부세상의 nginx 웹서버에 접속

모든 장애물을 제거했으니 nginx 웹서버에 접속시도
- 접속 주소 : 크롬에서 http://127.0.0.1:8011

  • nginx 웹서버에 접속 성공 화면
  •  

728x90