>백엔드 개발 >PHP 튜토리얼 >Nginx 리버스 프록시 및 로드 밸런싱 실습

Nginx 리버스 프록시 및 로드 밸런싱 실습

小云云
小云云원래의
2017-11-16 13:43:471966검색

Nginx("엔진 x")는 고성능 HTTP 및 역방향 프록시 서버이자 IMAP/POP3/SMTP 서버입니다. 역방향 프록시 서버로서 Nginx는 웹 서버를 가속화할 수 있으며 로드 밸런싱 기능을 가지고 있습니다. nginx는 웹 서비스에 대한 정상적인 액세스를 보장하기 위해 서비스가 중단된 서버를 자동으로 제거할 수 있습니다.

이 예에서 사용자는 192.168.1.4에 액세스하고 이를 두 서버 192.168.1.2:80 및 192.168.1.3:80에 프록시하여 로드를 달성합니다.

다음은 nginx.conf 구성 파일입니다.

user www www;
worker_processes 10;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
#最大文件描述符
worker_rlimit_nofile 51200;
events {
worker_connections 51200;
}
http {
include conf/mime.types;
default_type application/octet-stream;
keepalive_timeout 120;
tcp_nodelay on;
#nginx的upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,
#如果后端服务器down掉,能自动剔除。另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,
#这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream webserver  {
server 192.168.1.2:80 weight=1;
server 192.168.1.3:80 weight=1;
}
server{
listen 80;
server_name localhost;
location / {
#设置反向代理的地址
proxy_pass http://webserver;
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
log_format localhost '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /data1/logs/www.log localhost ;
}
}

위는 Nginx 리버스 프록시 및 로드 밸런싱 실습에 대한 관련 튜토리얼입니다. 모두에게 도움이 되기를 바랍니다.

관련 권장사항:

LNMP 환경에서 Nginx 서버를 Tengine으로 교체하기 위한 샘플 코드

php Nginx를 사용하여 역방향 프록시를 구현하는 방법

nginx 높은 동시성 구성 매개변수에 대한 자세한 설명

위 내용은 Nginx 리버스 프록시 및 로드 밸런싱 실습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.