개인 노트 nginx: 여러 웹 노드 와 nginx 에이전트 확장 (42)

14005 단어
1. 여러 WEB 노드 확장
  • 원인: 한 대의 웹 서버 가 저항 할 수 있 는 접근 은 한계 가 있 습 니 다. 여러 대의 웹 서버 를 설정 하면 더욱 높 은 접근 속 도 를 높 일 수 있 고 더 많은 사용자 요청 을 받 아들 일 수 있 습 니 다
  • 번 거 로 움 증가
  • 성능 향상 환경:
     web01			10.0.0.7		172.16.1.7
     web02			10.0.0.8		172.16.1.8
     db01			10.0.0.51		172.16.1.51
    
  • nginx + phop 환경 설치
  • web01     
    	[root@web01 ~]# scp /etc/yum.repos.d/nginx.repo [email protected]:/etc/yum.repos.d/nginx.repo
    	[root@web01 ~]# scp php.zip [email protected]:~
    
    web02     :
    	[root@web02 ~]# unzip php.zip				#  web01        
    	[root@web02 ~]# yum localinstall php/*.rpm		#           rpm
    	[root@web02 ~]# yum install nginx -y
    
    
  • 웹 01 에 있 는 nginx 설정, phop 설정, 웹 02
  • 로 전송 합 니 다.
    	[root@web01 ~]# scp -rp /etc/nginx [email protected]:/etc/
    	[root@web01 ~]# scp -rp /etc/php-fpm.d/www.conf  [email protected]:/etc/php-fpm.d/www.conf
    	[root@web01 ~]# scp -rp /etc/php.ini  [email protected]:/etc/php.ini
    
  • 웹 01 의 코드 를 웹 02
  • 로 푸 시 합 니 다.
    	[root@web01 ~]# scp -rp /code [email protected]:/
    
  • 서비스 nginx php 시작
  • 	[root@web02 ~]# groupadd -g 666 www
    	[root@web02 ~]# useradd -u 666 -g 666 www
    	[root@web02 ~]# systemctl restart nginx php-fpm
    	[root@web02 ~]# systemctl enable nginx php-fpm
    	[root@web02 ~]# chown -R www.www /code/	
    

    NFS 공유 저장 소 를 도입 하여 정적 자원 의 일 치 를 확보 합 니 다.
  • NFS 서버 를 설치 하고 디 렉 터 리 를 설정 하고 공유 합 니 다
  • 
    	#    
    	[root@nfs ~]# yum install nfs-utils -y
    	[root@nfs ~]# cat /etc/exports
    	/data/blog 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
    
    	#     
    	[root@nfs ~]# groupadd -g 666 www
    	[root@nfs ~]# useradd -u666 -g666 www
    	[root@nfs ~]# rm -rf /data/
    	[root@nfs ~]# mkdir /data/blog -p
    	[root@nfs ~]# chown -R www.www /data/blog/
    
    	#  
    	[root@nfs ~]# systemctl restart nfs
    	[root@nfs ~]# systemctl enable nfs
    
  • 사이트 의 정적 자원 저장 경 로 를 찾 아 NFS 공 유 를 한다.
  • 	    web        :
    		[root@web02 ~]# mount -t nfs 172.16.1.31:/data/blog /code/wordpress/wp-content/uploads/
    		[root@web01 ~]# mount -t nfs 172.16.1.31:/data/blog /code/wordpress/wp-content/uploads/
    

    nginx 에이전트
  • 부하 균형 을 이 루 려 면 먼저 Nginx 대 리 를 알 아 보고 부하 균형 을 배 워 야 한다.

  • 정방 향 과 역방향 대리 의 차이 점(기업 클 러 스 터 구조 에 사용 되 고 백 엔 드 에 여러 개의 웹 노드 로 구 성 된 클 러 스 터 를 사용 한 다음 에 대리 에 접속 하여 대리 가 통일 적 으로 배정 합 니 다)
    역방향 에이전트 모드
    Nginx 역방향 에이전트 모듈
    활용 단어 참조
    http、websocket、https
    ngx_http_proxy_module
    java \ http \ https \websocket \go
    fastcgi
    ngx_http_fastcgi_module
    php
    uwsgi
    ngx_http_uwsgi_module
    python
    grpc
    ngx_http_v2_module
    go
  • 설정: 클 라 이언 트: 10.0.0.1 역방향 에이전트: 10.0.0.5 172.16.1.5 백 엔 드 노드: 10.0.0.7 172.16.1.7
  • 백 엔 드 의 웹 노드 를 설정 합 니 다. 도 메 인 이름 은 웹. oldxu. com 포트 는 8080
  • 입 니 다.
    
    [root@web01 ~]# cat /etc/nginx/conf.d/web.xu.com.conf
    server {
    	listen 8080;
    	server_name web.xu.com;
    	root /web;
    
    	location / {
    		index index.html;
    	}
    }
    
    [root@web01 ~]# systemctl reload nginx
    
  • Nginx 역방향 에이전트, 프 록 시 백 엔 드 웹 노드 설정
  • [root@lb01 ~]# gzip /etc/nginx/conf.d/default.conf
    [root@lb01 ~]# cat /etc/nginx/conf.d/proxy_web.xu.com.conf
    server {
    	listen 80;
    	server_name web.xu.com;
    
    	location / {
    		proxy_pass http://10.0.0.7:8080;
    	}
    }
    
    [root@lb01 ~]# systemctl start nginx
    [root@lb01 ~]# systemctl enable nginx
    
  • 백 엔 드 서버 에 80 포트 를 요청 하고 어떤 도 메 인 이름
  • 을 요청 하 는 지 알려 주세요.
  • 사용자 가 프 록 시 를 요청 할 때 http 1.1 프로 토 콜 을 사용 하고 프 록 시 요청 백 엔 드 서 비 스 는 http 1.0 프로 토 콜 을 사용 합 니 다.
  • proxy http version 1.1; 이 설정 을 사용 하면 프 록 시 와 백 엔 드 http 1.1 긴 연결 프로 토 콜 을 실현 할 수 있 습 니 다.
  • proxy    :
    [root@lb01 ~]# cat /etc/nginx/conf.d/proxy_web.xu.com.conf
    server {
    	listen 80;
    	server_name web.xu.com;
    
    	location / {
    		proxy_pass http://10.0.0.7:80;
    		proxy_set_header Host $http_host;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		proxy_http_version 1.1;
    	}
    }
    
      web  :
    [root@web01 ~]# cat  /etc/nginx/conf.d/web.xu.com.conf
    server {
    	listen 80;
    	server_name web.xu.com;
    	root /web;
    
    	location / {
    		index index.html;
    	}
    }
    
  • Nginx 에이전트 와 관련 된 매개 변 수 는 어떤 것 이 있 습 니까? 한 장의 그림 을 통 해 모든 매개 변 수 를 설명 합 니 다.
      proxy_connect_timeout time;	nginx              (      )
      proxy_read_timeout time;	nginx              
      proxy_send_timeout time;	          nginx      
      proxy_buffering on | off;
      proxy_buffer_size size;
      proxy_buffers number size;
    
  • [root@lb01 ~]# cat /etc/nginx/conf.d/proxy_web.xu.com.conf
    server {
    	listen 80;
    	server_name web.xu.com;
    
    	location / {
    		proxy_pass http://172.16.1.7:80;
    		proxy_http_version 1.1;
    
    		proxy_set_header Host $http_host;
    		proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
    		proxy_connect_timeout 30;
    		proxy_send_timeout 60;
    		proxy_read_timeout 60;
    
    		proxy_buffering on;
    		proxy_buffer_size 32k;
    		proxy_buffers 4 128k;
    	}
    }
    
  • 백 엔 드 웹 서버 한 대만 대리 할 수 있 습 니까? 여러 대의 웹 서버 로 구 성 된 클 러 스 터 는 어떻게 합 니까? Nginx 부하 균형
  • Nginx            :
    [root@lb01 ~]# cat /etc/nginx/proxy_params
    proxy_http_version 1.1;
    
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
    proxy_connect_timeout 30;
    proxy_send_timeout 60;
    proxy_read_timeout 60;
    
    proxy_buffering on;
    proxy_buffer_size 32k;
    proxy_buffers 4 128k;
    
    [root@lb01 ~]# cat  /etc/nginx/conf.d/proxy_web.xu.com.conf
    server {
    	listen 80;
    	server_name web.xu.com;
    
    	location / {
    		proxy_pass http://172.16.1.7:80;
    		include proxy_params;
    	}
    }
    
    

    좋은 웹페이지 즐겨찾기