역방향 프록시
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查看版本信息。