기능 Nginx의 세트 - 리버스 프록시,로드 밸런싱, 캐싱, 정적 및 동적 분리, 원활한 업그레이드

역방향 프록시

nginx를 구성 파일

이벤트 중심의 이벤트 {}

{}에 아파치 의 httpd 구성 관련

} {가상 호스트 서버를 정의

위치 {} URI 속성에 액세스

 

위치 ~ * \. PHP는 $ {정규 표현식을 모두하기 에 .php 로 끝나는 파일을

   fastcgi_pass 127.0.0.1:9000 리버스 프록시, 이동 127.0.0.1:9000을 이 장소가 데이터를 요청해야합니다

 

    }

역방향 프록시 :

proxy_pass :이 옵션은 직접 리버스 프록시를 지정

proxy_set_header : 사용자 요청이 백엔드 서버로 전달하면 고유의 머리를 설정할 수 있습니다!

 

로드 균형 조정

업스트림 웹 서버 {     이름 서버 그룹 정의       서버 모듈에 대한로드 밸런싱 옵션은 외부 정의

           ip_hash은, 같은 클라이언트의 요청에 항상 동일한 서버로

          서버 192.168.2.129의  중량 = 1   max_fails = 2 fail_timeout = 2;

          각 검사의 1 회 지속 시간의 무게에 내부 서버 오류를 선택

          서버 192.168.2.128 가중치 = 1   max_fails = 2 fail_timeout = 2;  

           서버 127.0.0.1:8080  백업;     }    

           서버가 위의 모든 걸 때,이 페이지의 등장!

서버 {

        (80)를 듣고;

        서버 _ 로컬 호스트;

 

위치 / {

             proxy_pass  HTTP : // 웹 서버 / ,    리버스 프록시,이 상류 그룹 이름을 변경해야합니다, 리버스 프록시의이 그룹의 모든 구성원을 말한다!

            }

       }

모두가 우리의 서버가이 페이지에 표시되는 걸 때, 집합 서버를 다시 정의.

정의 된 서버 후, 업스트림은 이 서버 모듈을 추가!

서버 {

 8080을 듣고;

 서버 _ 로컬 호스트;

  루트 /www/a.org;

  인덱스 index.html을;

}

 

nginx를 세로드 밸런싱 알고리즘을 지원합니다 :

     라운드 로빈 : 가중치 기본

     ip_hash : 같은 클라이언트의 요청은, 항상 동일한 서버로

     least_conn : 최소 링크

 

캐시

의 nginx 캐시는 두 부분으로 구성되어 있습니다 :

    공유 메모리 : 키 데이터 및 캐시 객체 저장

    디스크 공간 : 데이터를 저장

 

버퍼 공간 proxy_cache_path 정의가 정의 할 수없는 서버 {} 모듈

               levels=1:2:1    缓存目录:子目录级别,最多定义三个级别,每一级别字符最多2个!第一个级别1个字符,第二个级别2个字符。。。。

               keys_zone     存储键的区域,区域大小

               max_size      缓存目录大小

格式:proxy_cache_path   /ngnx/hun    levels=1:2:1    keys_zone=fst:20m    max_size=1G; 

                       缓存目录       缓存

cache_manager :根据最近最少使用算法,将那些此前没有用的缓存给他清除出去。

 

定义完缓存,还需要在location模块中启用它,proxy_cache   缓存名,这里的缓存名就是keys_zone中定义的名字

 

另外的三种缓存:

open_log_cache :日志缓存

open_file_cache

fastcgi_cache

 

动静分离

webDAV :一种基于HTTP1.1协议的通信协议,他扩展了HTTP1.1,使应用程序可直接对web  server 直接读写,并支持文件锁定及解锁,支持文件的版本控制

 

 

#动态页面交给http://tdt_wugk,也即我们之前在nginx.conf定义的upstream tdt_wugk 均衡

    location ~ .*\.(php|jsp|cgi)?$

    {

         proxy_set_header Host  $host;

         proxy_set_header X-Real-IP $remote_addr;

         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

         proxy_pass http://tdt_wugk;

    }

#配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。

    location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$

    {

    root /data/www/wugk;

    #expires定义用户浏览器缓存的时间为3天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力

    expires      3d;

    }

 

平滑升级

Nginx方便地帮助我们实现了平滑升级。其原理简单概括,就是:

(1)在不停掉老进程的情况下,启动新进程。

(2)老进程负责处理仍然没有处理完的请求,但不再接受处理请求。

(3)新进程接受新请求。

(4)老进程处理完所有请求,关闭所有连接后,停止。

操作步骤:

1、使用nginx  -V  查看旧版本./configure的选项

2、使用旧版本的./configure的选项编译新版本,编译时不能make install

3、编译完成之后,把旧版本的可执行文件备份或者改名,

4、新版本编译完成之后,在解压包目录中objects文件夹下有新版本的可执行文件,把它复制到旧版本可执行文件的文件路径下。

5、测试新版本nginx是否正常,使用新版本的可执行文件  nginx   -t  -c   nginx的主配置文件

6、在新版本nginx的解压目录下执行命令升级:make  upgrade

7、升级之后使用:nginx  -v查看版本信息。

 

추천

출처www.cnblogs.com/linux-s/p/11288905.html