2019 - 04 - 30 - day 44 Nginx 서비스 및 응용

6163 단어
제1장 Nginx 서비스 및 응용
1. 1 Nginx 란 무엇 인가
    Nginx ("engine x") 는 고성능, 높 은 병행 을 지원 하 는 WWW 서비스 와 대리 서비스 소프트웨어 입 니 다.러시아 인 IgorSysoev 가 개발 한 것 으로 러시아 대형 사이트 www. rambler. ru 에 최초 로 활용 됐다.나중에 저 자 는 소스 코드 를 BSD 허가증 과 같은 형식 으로 개 원 하여 전 세계 에서 사용 할 수 있 도록 했다.
1.2 Nginx 의 주요 기능
Nginx 의 주요 기능 은 다음 과 같은 세 가지 가 있 습 니 다.
  • 웹 서비스: Nginx 는 고성능, 높 은 병행 을 지원 하 는 웹 서비스 소프트웨어 로 자체 가 정적 웹 서비스 이 고 동적 웹 서비스 도 지원 합 니 다.
  • 역방향 프 록 시 / 부하 균형: Nginx 는 웹 서비스, PHP 등 동적 서비스 및 Memcached 캐 시 프 록 시 서버 로 사용 할 수 있 습 니 다.
  • 전단 업무 데이터 캐 시: Nginx 자체 proxycache 모듈 은 데이터 캐 시 기능 을 실현 합 니 다.

  • 1.3 Nginx 의 특징
    Nginx 서버 는 다음 과 같은 특색 과 장점 을 가지 고 있 습 니 다.
  • 높 은 병발 지원: 수만 개의 병발 연결 (특히 정적 작은 파일 업무 환경) 을 지원 할 수 있 습 니 다.
  • 자원 소모 가 적 습 니 다. 3 만 개의 동시 연결 에서 10 개의 Nginx 스 레 드 를 켜 면 200 MB 의 메모리 가 소모 되 지 않 습 니 다.
  • HTTP 역방향 프 록 시 및 가속 캐 시, 즉 부하 균형 기능 을 할 수 있 으 며 RS 노드 서버 에 대한 건강 검진 기능 을 내장 할 수 있 습 니 다. 이것 은 전문 적 인 haproxy 소프트웨어 나 lvs 기능 에 해당 합 니 다.
  • squid 등 전문 캐 시 소프트웨어 등의 캐 시 기능 을 갖 추고 있다.
  • 비동기 네트워크 I / O 이벤트 모델 epoll 을 지원 합 니 다.

  • 1.4 Nginx 주요 응용 장면
    1. 정적 웹 서버 * 81955 ° Nginx 를 사용 하여 HTML, JS, CSS, 작은 그림 등 정적 데 이 터 를 실행 합 니 다 (이 기능 은 lighttpd 소프트웨어 와 유사 합 니 다).2. 동적 웹 서버 Nginx 와 함께 FastCGI 를 결합 하여 PHP 등 동적 프로그램 을 실행 합 니 다 (예 를 들 어 fastcgi pass 방식 사용).Nginx 결합 proxypass 는 자바 동적 프로그램 (예 를 들 어 tomcat / resin 서 비 스 를 사용) 을 지원 합 니 다.Nginx 결합 uwsgi패스 는 Python 을 지원 합 니 다.3. 역방향 프 록 시 / 부하 균형: http 부하 균형 4, 웹 캐 시 서버 만 들 기 (파일 을 메모리 에 넣 기)
    1.5 역방향 에이전트 와 부하 균형
  • 정방 향 대리: 내향 외.랜 내 PC 대신 외부 응용 서 비 스 를 요청 합 니 다.
  • 역방향 대리: 외 향 내.외부 사용 자 를 대신 하여 내부 응용 서버 를 요청 합 니 다.
  • 부하 균형: 퍼 가기 요청, 효율 이 높 습 니 다.

  • 1.6 소프트웨어 설치 방법
    Linux 시스템 의 설치 소프트웨어 방법:
  • rpm 의 설 치 는 간단 하고 빠 르 지만 의존 이 많 고 의존 하 는 어려움 을 해결 합 니 다.
  • yum 설치 가 간단 하고 빠 르 며 자동 으로 의존 을 해결 합 니 다.그러나 소프트웨어 버 전이 나 소프트웨어 저장 경 로 를 선택 할 수 없습니다.
  • 컴 파일 설치 (원본 컴 파일) 가 느 리 고 복잡 하 며 GCC 컴 파일 러 가 필요 하지만 사용자 정의 설치 (버 전, 소프트웨어 경로)
  • 원본 코드 를 rpm 으로 만 든 후 yum 창고 에 넣 어 yum 자동 설 치 를 실현 합 니 다.첫 번 째 는 느 리 고 복잡 하지만 나중에 설치 가 빨 라 서 사용자 정의 설치 (버 전, 소프트웨어 경로)
  • 할 수 있 습 니 다.
  • 바 이 너 리 설 치 는 RPM 과 YUM 창 고 를 제작 하여 rpm 패키지 맞 춤 형 제작 이 필요 합 니 다.http://blog.oldboyedu.com/autodeploy-rpm/ yum 창고 구축:http://blog.oldboyedu.com/autodeploy-yum/

  • 1.7 Nginx 설치
    1.7.1 두 가지 설치 방법
    1. yum 설치 에 epel 소스 사용: 버 전이 낮 습 니 다.nginx 공식 소스 사용: 버 전이 높 습 니 다.2. 컴 파일 설치
    1.7.2 공식 소스 yum 설치 설정
    공식 yum 원본 설정:
    [root@web ~]$ vim /etc/yum.repos.d/nginx.repo
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    

    설치 및 시작 서비스:
    [root@web01 ~]$ yum install nginx -y          <===  nginx
    [root@web01 ~]$ rpm -qa nginx                 <===     
    nginx-1.16.0-1.el7.ngx.x86_64
    [root@web01 ~]$ systemctl start nginx         <===    
    [root@web01 ~]$ systemctl enable nginx        <===       
    [root@web01 ~]$ systemctl status nginx        <===    
    [root@web01 ~]$ netstat -lntup|grep nginx     <===    
    tcp        0      0 0.0.0.0:80      0.0.0.0:*   LISTEN   8509/nginx: master
    

    1.7.3 컴 파일 설치
    1. nginx 압축 패키지 다운로드 및 의존:
    [root@web01 ~]$ mkdir -p /server/tools    <===      
    [root@web01 ~]$ cd /server/tools
    [root@web01 /server/tools]$ wget http://nginx.org/download/nginx-1.16.0.tar.gz    <===     
    [root@web01 /server/tools]$ yum install pcre pcre-devel openssl openssl-devel -y  <===    
    

    2. 컴 파일 설치 절차
    [root@web01 /server/tools]$ tar xf nginx-1.16.0.tar.gz                           <===   
    [root@web01 /server/tools]$ cd nginx-1.16.0/                                     <===    
    [root@web01 /server/tools/nginx-1.16.0]$ useradd -s /sbin/nologin nginx -M         <===               
    [root@web01 /server/tools/nginx-1.16.0]$ id www                                  <===      
    [root@web01 /server/tools/nginx-1.16.0]$ ./configure  --user=nginx --group=nginx --prefix=/application/nginx-1.16.0/ --with-http_stub_status_module  --with-http_ssl_module --with-pcre    <===    
    [root@web01 /server/tools/nginx-1.16.0]$ make                                    <===  
    [root@web01 /server/tools/nginx-1.16.0]$ make install                            <===  
    [root@web01 /server/tools/nginx-1.16.0]$ ln -s /application/nginx-1.16.0/ /application/nginx    <===     
    [root@web01 /server/tools/nginx-1.16.0]$ /application/nginx/sbin/nginx           <===  nginx  
    [root@web01 /server/tools/nginx-1.16.0]$ netstat -lntup|grep nginx               <===    
    

    주의: 1) 한 걸음 한 걸음 끝 마다 echo $?정확 한 지 검증 하 다.0 대표 절차 의 정확 함 을 되 돌려 줍 니 다. 2) 최종 설치 가 정확 한 지 확인 합 니 다.
    [root@web02 /server/tools/nginx-1.16.0]$ wget 10.0.0.8
    --2019-04-30 17:37:41--  http://10.0.0.8/
         10.0.0.8:80...    。
        HTTP   ,      ... 200 OK
      :319 [text/html]
         : “index.html.1”
    
    100%[===================================================================>] 319         --.-K/s    0s      
    
    2019-04-30 17:37:41 (3.17 MB/s) -     “index.html.1” [319/319])
    

    configure 매개 변수 역할
    매개 변수
    설명 하 다.
    --prefix=PATH
    경로
    --user=USER
    사용자
    --group=GROUP
    그룹
    --with-pcre
    의사 정적
    --with-http_stub_status_module
    상태.
    --with-http_ssl_module
    암호 화
    디 렉 터 리 아래 각 파일 설명:
    [root@web02 /application/nginx]# tree
    ├── conf
    │ ├── fastcgi.conf            #  php      
    │ ├── fastcgi.conf.default
    │ ├── fastcgi_params 
    │ ├── fastcgi_params.default
    │ ├── koi-utf
    │ ├── koi-win
    │ ├── mime.types              #    
    │ ├── mime.types.default
    │ ├── nginx.conf              #     
    │ ├── nginx.conf.default
    │ ├── scgi_params
    │ ├── scgi_params.default     #            
    │ ├── uwsgi_params
    │ ├── uwsgi_params.default    #  Python       
    │ └── win-utf
    ├── fastcgi_temp
    ├── html                      #      。  
    │ ├── 50x.html
    │ └── index.html          #     ,10.0.0.8     ,    index.html  。
    ├── logs
    │ ├── access.log              #    
    │ ├── error.log               #Nginx    。
    │ └── nginx.pid               #       。
    ├── sbin
    │ └── nginx                   #    。
    

    좋은 웹페이지 즐겨찾기