docker 기반 Nginx 프로필 및 시작

Nginx 가 뭐야?
개술
Nginx 는 고성능 HTTP 서버 / 리 버스 프 록 시 및 이메일 (IMAP / POP 3) 프 록 시 서버 입 니 다.러시아의 프로그래머 Igor Sysoev 가 개발 한 공식 테스트 Nginx 는 5 만 개의 병렬 링크 를 지탱 할 수 있 고 CPU, 메모리 등 자원 소 모 는 매우 낮 으 며 운행 이 매우 안정 적 이다.
Nginx 의 응용 장면
HTTP 서버: Nginx 는 HTTP 서 비 스 를 독립 적 으로 제공 할 수 있 는 HTTP 서비스 입 니 다.웹 페이지 정적 서버 를 만 들 수 있 습 니 다.
가상 호스트: 한 서버 에서 여러 사 이 트 를 가상 으로 만 들 수 있 습 니 다.예 를 들 어 개인 사이트 에서 사용 하 는 가상 호스트.
역방향 프 록 시, 부하 균형: 사이트 의 방 문 량 이 어느 정도 에 이 르 면 한 대의 서버 가 사용자 의 요 구 를 만족 시 키 지 못 할 때 여러 대의 서버 클 러 스 터 를 사용 하여 Nginx 를 역방향 프 록 시 로 할 수 있 습 니 다.또한 여러 대의 서버 는 평균 적 으로 부 하 를 분담 할 수 있 으 며, 한 서버 의 부하 가 높 아 지연 되 지 않 아 한 서버 가 방치 되 어 있 는 경우 도 없다.
docker - compose 기반 Nginx 빠 른 시작docker-compose.yml
version: '3.1'
services:
  nginx:
    restart: always
    image: nginx
    container_name: nginx
    ports:
      - 81:80
    volumes:
      - ./conf/nginx.conf:/etc/nginx/nginx.conf
      - ./wwwroot:/usr/share/nginx/wwwroot

주: 설정 파일 nginx. conf 가 필요 합 니 다.
가상 호스트 란 무엇 입 니까?
가상 호스트 는 특수 한 소프트 하드웨어 기술 로 네트워크 에 있 는 모든 컴퓨터 를 여러 개의 가상 호스트 로 나 눌 수 있 고 모든 가상 호스트 는 독립 적 으로 www 서 비 스 를 제공 할 수 있다. 그러면 한 대의 호스트 가 대외 적 으로 여러 개의 웹 서 비 스 를 제공 하 는 것 을 실현 할 수 있다. 모든 가상 호스트 간 은 독립 적 이 고 서로 영향 을 주지 않 는 다.
Nginx 를 통 해 가상 호스트 설정 을 실현 할 수 있 습 니 다. Nginx 는 세 가지 유형의 가상 호스트 설정 을 지원 합 니 다.
IP 기반 가상 호스트 도 메 인 이름 기반 가상 호스트 포트 기반 가상 호스트 Nginx 프로필 구조
# ...
events {
    # ...
}

http {
    # ...
    server{
        # ...
    }

    # ...
    server{
        # ...
    }
}

주: 모든 server 는 가상 호스트 입 니 다.
포트 기반 가상 호스트 설정
Nginx 가 80 과 8080 두 개의 포트 감청 서 비 스 를 대외 적 으로 제공 해 야 합 니 다. 80 포트 는 html 80 디 렉 터 리 의 html 요청 8080 포트 는 html 8080 디 렉 터 리 의 html 생 성 디 렉 터 리 와 파일 을 / usr / local / docker / nginx / wwroot 디 렉 터 리 에 html 80 과 html 8080 두 개의 디 렉 터 리 를 만 들 고 index. html 파일 을 만 드 는 것 을 구분 합 니 다.
가상 호스트 수정 / usr / local / docker / nginx / conf 디 렉 터 리 에 있 는 nginx. conf 프로필 설정:
#     ,       CPU      
worker_processes  1;

events {
    # epoll       IO(I/O Multiplexing)       
    #       linux2.6     ,       nginx    
    use epoll;
    #      worker process           
    worker_connections  1024;
}

http {
    #    mime   ,    mime.type     
    include       mime.types;
    default_type  application/octet-stream;

    # sendfile      nginx      sendfile   (zero copy   )     ,      ,
    #      on,              IO      ,     off,         I/O     ,      uptime.
    sendfile        on;

    #       
    keepalive_timeout  65;
    #       
    client_header_buffer_size 2k;

    #        192.168.75.145
    server {
    #    ip   ,   192.168.75.145:80
        listen       80;
    #           ip  
        server_name  192.168.75.145;
    #         /   ,            location
        location / {
        #    root                  
        #      http://ip/index.html     /usr/local/docker/nginx/wwwroot/html80/index.html
        #      http://ip/item/index.html     /usr/local/docker/nginx/wwwroot/html80/item/index.html

            root   /usr/share/nginx/wwwroot/html80;
        #       ,         
            index  index.html index.htm;
        }

    }
    #        192.168.75.245
    server {
        listen       8080;
        server_name  192.168.75.145;

        location / {
            root   /usr/share/nginx/wwwroot/html8080;
            index  index.html index.htm;
        }
    }
}

도 메 인 이름 기반 가상 호스트 설정
같은 Nginx 서버 를 가리 키 는 두 도 메 인 이름 이 필요 합 니 다.사용자 가 서로 다른 도 메 인 이름 에 접근 하여 서로 다른 웹 콘 텐 츠 를 표시 합 니 다. 두 도 메 인 이름 은 admin. 123. com 과 웹. 123. com Nginx 서버 에서 가상 컴퓨터 192.168.7.5.145 를 사용 하여 Windows Hosts 파일 을 host 파일 로 지정 합 니 다. admin. 123. com 과 웹. 123. com 은 192.168.7.5.145 가상 컴퓨터 에 대응 합 니 다. window 의 hosts 파일 을 수정 합 니 다. (C: \ Windows \ System 32 \ drivers \ etc)
디 렉 터 리 및 파일 생 성
/ usr / local / docker / nginx / wwroot 디 렉 터 리 에 html 서비스 와 html 웹 두 디 렉 터 리 를 만 들 고 index. html 파일 두 개 를 구분 합 니 다.
가상 호스트 설정
user  nginx;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    server {
        listen       80;
        server_name  admin.123.com;
        location / {
            root   /usr/share/nginx/wwwroot/htmlservice;
            index  index.html index.htm;
        }

    }

    server {
        listen       80;
        server_name  web.123.com;

        location / {
            root   /usr/share/nginx/wwwroot/htmlweb;
            index  index.html index.htm;
        }
    }
}

좋은 웹페이지 즐겨찾기