nginx 웹 서버 구축

9953 단어 linux기초
하나.     nginx 의 장점
          1. 높 은 동시 접속 가능
          공식 테스트 인 Nginx 는 5 만 개의 동시 접속 을 지탱 할 수 있 으 며, 실제 생산 환경 에 서 는 2 ~ 4 만 개의 동시 접속 수 를 지탱 할 수 있다.
          이 유 는 주로 Nginx 가 최신 epoll (Linux 2.6 커 널) 과 kqueue (freeBSD) 네트워크 I / O 모델 을 사 용 했 고 Apache 는 전통 적 인 Select 모델 을 사 용 했 으 며 비교적 안정 적 인 Prefork 모델 은 다 중 프로 세 스 모델 로 자식 프로 세 스 를 자주 보 내야 하기 때문에 소비 하 는 CPU 등 서버 자원 이 Nginx 보다 훨씬 높 기 때문이다.
          2. 메모리 소모 가 적 음
          Nginx + PHP (FastCGI) 서버 는 3 만 개의 동시 접속 으로 Nginx 프로 세 스 10 개 를 켜 면 150 MB, 15MB * 10 = 150 MB, PHP - CGI 프로 세 스 64 개 를 켜 면 1280 메모리, 20MB * 64 = 1280 MB 가 소모 되 며 시스템 자체 가 소모 하 는 메모리 까지 합치 면 총 2GB 의 메모리 가 소모 되 지 않 습 니 다.
          서버 의 메모리 가 작 으 면 25 개의 PHP - CGI 프로 세 스 만 열 수 있 으 며, 이렇게 하면 PHP - CGI 가 소모 하 는 총 메모리 수 는 500 MB 에 불과 하 다.
          3. 원가 가 저렴 하 다
          F5BIG - IP, NetScaler 등 하드웨어 부하 균형 교환 기 를 구 매 하려 면 10 만 위안 에서 수 십 만 위안 이 필요 하 며, Nginx 는 오픈 소스 소프트웨어 로 2 - clause BSD - like 프로 토 콜 을 사용 하여 무료 로 사용 할 수 있 으 며 상업 적 용도 로 도 사용 할 수 있다.
          BSD 오픈 소스 프로 토 콜 은 사용자 에 게 매우 큰 자 유 를 주 는 프로 토 콜 로, 프로 토 콜 은 소스 코드 를 자 유 롭 게 사용 하고 수정 할 수 있 으 며 수 정 된 코드 를 오픈 소스 나 전용 소프트웨어 로 다시 발표 할 수도 있다 고 지적 했다.
          4. 설정 파일 은 매우 간단 합 니 다.
          네트워크 는 프로그램 처럼 통속 적 이 고 알 기 쉬 워 서 비 전용 시스템 관리자 도 알 아 볼 수 있다.
          5. Rewrite 재 작성 지원
          도 메 인 이름, URL 에 따라 http 요청 을 백 엔 드 서버 그룹 으로 나 눌 수 있 습 니 다.
          6. 내 장 된 건강 검진 기능
          Nginx Proxy 백 엔 드 의 한 웹 서버 가 다운 되면 전단 의 접근 에 영향 을 주지 않 습 니 다.
          7. 대역 폭 절약
          GZIP 압축 을 지원 합 니 다. 브 라 우 저 로 컬 캐 시 헤드 를 추가 할 수 있 습 니 다.
          8. 안정성 이 높다
          역방향 대리 에 사용 되 며, 지연 시 킬 확률 은 매우 적다.
          9. 열 배치 지원
          Nginx 는 열 배 치 를 지원 합 니 다. 자동 으로 매우 쉽 고 거의 7 일 * 24 시간 동안 쉬 지 않 고 실행 할 수 있 습 니 다. 수 개 월 동안 실행 해도 다시 시작 할 필요 가 없고 끊 임 없 는 서비스 상황 에서 소프트웨어 버 전 을 업그레이드 할 수 있 습 니 다.
 
정적 웹 서버 구축
1. 기본 정적 페이지 방문
   (1) 소스 패키지 로 nginx 소프트웨어 설치
[root@proxy ~]# yum -y install gcc pcre-devel openssl-devel httpd-tools     //     
[root@proxy ~]# useradd -s /sbin/nologin nginx
[root@proxy ~]# tar  -xf   nginx-1.10.3.tar.gz
[root@proxy ~]# cd  nginx-1.12.2
[root@proxy nginx-1.12.2]# ./configure   \
> --prefix=/usr/local/nginx   \                //      
> --user=nginx   \                            //    
> --group=nginx  \                            //   
> --with-http_ssl_module                        //  SSL    
> --with-stream                              //  4       
> --with-http_stub_status_module             //  status    
[root@proxy nginx-1.12.2]# make && make install  //     

   (2) nginx 명령 의 용법
root@proxy ~]# /usr/local/nginx/sbin/nginx                    //    
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s stop            //    
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload        //        
[root@proxy ~]# /usr/local/nginx/sbin/nginx –V                //      
[root@proxy ~]# ln -s /usr/local/nginx/sbin/nginx /sbin/        //      

    (3) 테스트 첫 페이지 파일, Nginx 웹 서비스 기본 첫 페이지 문서 저장 디 렉 터 리 는 / usr / local / nginx / html / 입 니 다. 이 디 렉 터 리 에 index. html 라 는 파일 이 기본 으로 있 습 니 다. 클 라 이언 트 를 사용 하여 테스트 페이지 에 접근 합 니 다.
[root@client ~]# curl http://192.168.4.5


Welcome to nginx!


Welcome to nginx!


2 nginx 웹 페이지 를 방문 하여 사용자 인증 실현
   (1) Nginx 프로필 수정   
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
        listen       80;
        server_name  localhost;
        auth_basic "Input Password:";                        //     
        auth_basic_user_file "/usr/local/nginx/pass";        //      
        location / {
            root   html;
            index  index.html index.htm;
        }
  }

    (2) 암호 파일 생 성, 사용자 및 비밀번호 생 성, htpasswd 명령 으로 계 정 파일 생 성, 시스템 에 httpd - tools 가 설치 되 어 있 는 지 확인 해 야 합 니 다.
[root@proxy ~]# yum -y install  httpd-tools
[root@proxy ~]# htpasswd -c /usr/local/nginx/pass   tom        //      
New password: 
Re-type new password: 
Adding password for user tom
[root@proxy ~]# htpasswd  /usr/local/nginx/pass   jerry      //    ,   -c  
New password: 
Re-type new password: 
Adding password for user jerry
[root@proxy ~]# cat /usr/local/nginx/pass

    (3) Nginx 서비스 재 개, 액세스 테스트
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload    //          
[root@client ~]# firefox http://192.168.4.5                    //         

3 도 메 인 이름 기반 가상 호스트: Nginx 프로필 을 수정 하고 server 용 기 를 추가 하여 가상 호스트 기능 을 수행 합 니 다.사용자 인증 이 필요 한 가상 호스트 에 auth 인증 문 구 를 추가 합 니 다.가상 호스트 는 일반적으로 도 메 인 이름, IP 기반, 포트 기반 가상 호스트 로 나 눌 수 있다.
요청:   도 메 인 이름 기반 가상 호스트 두 개 를 실현 하고 도 메 인 이름 은 각각 www. a. com 과 www. b. com 이다.               도 메 인 이름 이 www. a. com 인 사이트 에 대해 사용자 인증 을 실시 합 니 다. 사용자 이름 은 tom 이 고 비밀 번 호 는 123456 입 니 다.
    (1) Nginx 서비스 설정 수정
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
        listen       80;                                      //  
        server_name  www.a.com;                                //  
auth_basic "Input Password:";                        //     
        auth_basic_user_file "/usr/local/nginx/pass";        //      
location / {
            root   html;                                    //       
            index  index.html index.htm;
       }
       
}
… …
    server {
        listen  80;                                        //  
        server_name  www.b.com;                                //  
location / { 
root   www;                                 //       
index  index.html index.htm;
}
}

  (2) 사이트 루트 디 렉 터 리 생 성 및 대응 하 는 홈 페이지 파일 생 성
[root@proxy ~]# mkdir /usr/local/nginx/www
[root@proxy ~]# echo "www" > /usr/local/nginx/www/index.html

   (3) nginx 서비스 재 개
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload

   (4) 클 라 이언 트 호스트 의 / etc / hosts 파일 을 수정 하여 도 메 인 이름 분석
 [root@client ~]# vim /etc/hosts
 192.168.4.5    www.a.com  www.b.com

  (5) 테스트
[root@client ~]# firefox http://www.a.com            //         
[root@client ~]# firefox http://www.b.com            //    

4 암호 화 된 사이트 기반 가상 호스트 설정
원본 코드 가 Nginx 를 설치 할 때 반드시 사용 해 야 합 니 다 -- with - httpssl_module 매개 변수, 암호 화 모듈 을 사용 하여 SSL 암호 화 처리 가 필요 한 사이트 에 ssl 관련 명령 을 추가 합 니 다 (사이트 에 필요 한 비밀 키 와 인증 서 를 설정 합 니 다).암호 화 알고리즘 은 일반적으로 대칭 알고리즘, 비대 칭 알고리즘, 정보 요약 으로 나 뉜 다.대칭 알고리즘 은 AES, DES 가 있 는데 주로 단일 컴퓨터 데이터 암호 화 에 사용 된다.비대 칭 알고리즘 은 RSA, DSA 가 있 는데 주로 네트워크 데이터 암호 화 에 사용 된다.정보 요약: MD5, sha 256, 주로 데이터 완전 성 검사, 데이터 초 전송 등에 사 용 됩 니 다.
    (1) 비밀 키 와 인증서 생 성
[root@proxy ~]# cd /usr/local/nginx/conf
[root@proxy ~]# openssl genrsa > cert.key                            //    
[root@proxy ~]# openssl req -new -x509 -key cert.key > cert.pem      //    

    (2) Nginx 프로필 을 수정 하고 암호 화 된 사이트 의 가상 호스트 를 설정 합 니 다.
[root@proxy ~]# vim  /usr/local/nginx/conf/nginx.conf
… …    
server {
        listen       443 ssl;
        server_name            www.c.com;
        ssl_certificate      cert.pem;         #       
        ssl_certificate_key  cert.key;         #       
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
            root   html;
            index  index.html index.htm;
        }
    }

    (3) nginx 서 비 스 를 다시 시작 하고 테스트 합 니 다.
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
[root@client ~]# firefox https://www.c.com            //         (     )

 
삼 nginx WEB 서버 가 움직임 분 리 를 실현 합 니 다. 여기 서 LAMP 환경 배치 과정 에 대해 서 는 군말 하지 않 겠 습 니 다. 앞 에 소개 되 어 있 습 니 다.
1 php - fpm 프로필 보기, Nginx 는 FastCGI 기술 과 결합 하여 PHP 페이지 구 조 를 지원 합 니 다
   fastcgi 기술 설명:https://blog.csdn.net/weixin_42104231/article/details/83573006
[root@proxy etc]# vim /etc/php-fpm.d/www.conf
[www]
listen = 127.0.0.1:9000            //PHP   
pm.max_children = 32                //      
pm.start_servers = 15                //      
pm.min_spare_servers = 5            //            
pm.max_spare_servers = 32            //              

2 Nginx 프로필 수정 및 서비스 시작
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
location / {
            root   html;
            index  index.php  index.html   index.htm;
#       index.php,                IP,         ,         index.php     
        }
 location  ~  \.php$  {
            root           html;
            fastcgi_pass   127.0.0.1:9000;    #        9000  ,PHP   
            fastcgi_index  index.php;
            #fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi.conf;
        }
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload

3  PHP 테스트 페이지 를 만 들 고 MariaDB 데이터 베 이 스 를 연결 하고 조회 합 니 다.
[root@proxy ~]# vim /usr/local/nginx/html/test1.php



[root@proxy ~]# vim /usr/local/nginx/html/test2.php
query($sql);
while($row = $result->fetch_array()){
    printf("Host:%s",$row[0]);
    printf("");
    printf("Name:%s",$row[1]);
    printf("");
}
?>

4 클 라 이언 트 는 브 라 우 저 를 사용 하여 서버 PHP 첫 페이지 문 서 를 방문 하여 성공 여 부 를 확인 합 니 다.
[root@client ~]# firefox http://192.168.4.5/test1.php
[root@client ~]# firefox http://192.168.4.5/test2.php

좋은 웹페이지 즐겨찾기