Nginx 전송 요청 역방향 에이전트 예시

우리 미 포 과학 기술 의 업 무 는 전 세계 에 널리 퍼 져 있 습 니 다. 가끔 은 외국 의 고객 들 이 우리 가 국내 에 구축 한 서 비 스 를 방문 하지 못 할 때 가 있 습 니 다. 그러면 우 리 는 외국 서버 에 대리 퍼 가기 서 비 스 를 구축 하고 사용자 가 외국 서버 의 도 메 인 이름 을 요청 한 다음 에 국내 로 대리 퍼 가기 하고 요청 을 처리 한 후에 결 과 를 외국 의 고객 에 게 돌려 달라 고 요구 합 니 다.Nginx 는 부하 균형 을 실현 할 수 있 을 뿐만 아니 라 역방향 대리 퍼 가기 도 실현 할 수 있어 서 우리 의 사용 장면 에 매우 적합 하기 때문에 우리 미 포 과학기술 은 Nginx 를 이용 하여 대리 퍼 가기 요청 인 스 턴 스 를 사용한다.
Nginx 프 록 시 전송 요청 인 스 턴 스 이용
nginx 는 현재 가장 유행 하 는 웹 서버 중 하나 로 서 역방향 대 리 를 편리 하 게 실현 할 수 있 습 니 다.
nginx 역방향 에이전트 공식 문서: NGINX REVERSE PROXY
한 호스트 에 여러 개의 서로 다른 웹 서버 를 배치 하고 80 포트 와 443 포트 에서 이 웹 서버 를 동시에 방문 할 수 있어 야 할 때 nginx 의 역방향 프 록 시 기능 을 사용 하여 nginx 로 80 포트 에서 모든 요 구 를 감청 하고 443 포트 에 전송 한 다음 에 443 포트 에서 퍼 가기 규칙 에 따라 해당 하 는 국내 웹 서버 로 통일 적 으로 전송 할 수 있 습 니 다.
예시:
proxy. mimvp. com 도 메 인 이름 은 아 리 클 라 우 드 에 등록 되 어 있 으 며, 국내 베 이 징 아 리 클 라 우 드 서버 에 배치 되 어 있 습 니 다.
proxy. imgu. cn 도 메 인 이름 은 텐 센트 클 라 우 드 에 등록 되 고 외국 에 배 치 된 싱가포르 텐 센트 클 라 우 드 서버 (외국 도 메 인 이름 은 등록 하지 않 아 도 됩 니 다)
1. 국내 베 이 징 아 리 클 라 우 드 서버
vim mimvp_proxy.conf
server {
   listen       80;
  server_name   proxy.mimvp.com;       #        ,     
  root      www/mimvp_proxy;
   rewrite ^(.*)$  https://$host$1 permanent;
 
  location / {
    root        www/mimvp_proxy;
    index       index.php index.html index.htm;
  }
 
  location ~ \.php$ {
    root                www/mimvp_proxy;
    fastcgi_pass        127.0.0.1:9000;
    fastcgi_index   index.php;
    fastcgi_param   SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include         fastcgi.conf;
  }
 
    location ~* ^/(images|img|javascript|js|css|blog|flash|media|static)/ {
        root        www/mimvp_proxy;
        expires     30d;
    }
 
    location ~* ^/(robots\.txt) {
        root        www/mimvp_proxy;
        expires     365d;
    }
 
    location ~* ^/favicon\.ico {
        root        www/mimvp_proxy;
        expires     365d;
    }
 
    location ~* ^/img/logo\.png {
        root        www/mimvp_proxy;
        expires     365d;
    }
 
    location ~ /\.ht {
        deny  all;
    }
}
 
 
server {
    listen          443 ssl http2;
    server_name     proxy.mimvp.com;       #        ,     
    root            www/mimvp_proxy;
    ssl             on;
 
    ssl_certificate      proxy.mimvp.com.crt;
    ssl_certificate_key  proxy.mimvp.com.key;
 
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  10m;
 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
 
  location / {
    root        www/mimvp_proxy;
    index       index.php index.html index.htm;
  }
 
  location ~ \.php$ {
    root                www/mimvp_proxy;
    fastcgi_pass        127.0.0.1:9000;
    fastcgi_index   index.php;
    fastcgi_param   SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include         fastcgi.conf;
  }
 
    location ~* ^/(images|img|javascript|js|css|blog|flash|media|static)/ {
        root        www/mimvp_proxy;
        expires     30d;
    }
 
    location ~* ^/(robots\.txt) {
        root        www/mimvp_proxy;
        expires     365d;
    }
 
    location ~* ^/favicon\.ico {
        root        www/mimvp_proxy;
        expires     365d;
    }
 
    location ~* ^/img/logo\.png {
        root        www/mimvp_proxy;
        expires     365d;
    }
 
    location ~ /\.ht {
        deny  all;
    }
}

2. 해외 싱가포르 텐 센트 클 라 우 드 서버
vim mimvp_proxy2.conf
server {
   listen       80;
  server_name   proxy.mimgu.cn;       
  root      www/mimvp_proxy;
   rewrite ^(.*)$  https://$host$1 permanent;   ##           https
}
 
 
server {
    listen          443 ssl http2;
    server_name     proxy.mimgu.cn;       
    root            www/mimvp_proxy;
    ssl             on;
 
    ssl_certificate      proxy.mimgu.cn.crt;
    ssl_certificate_key  proxy.mimgu.cn.key;
 
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  10m;
 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
 
  location / {
    proxy_pass          https://proxy.mimvp.com;    ##                https://proxy.mimvp.com
  }
 
  location ~ \.php$ {
    proxy_pass          https://proxy.mimvp.com;
  }
 
    location ~* ^/(images|img|javascript|js|css|blog|flash|media|static)/ {
        proxy_pass          https://proxy.mimvp.com;    ## css,js,img         ,        
    }
 
    location ~* ^/(robots\.txt) {
        proxy_pass          https://proxy.mimvp.com;
    }
 
    location ~* ^/favicon\.ico {
        proxy_pass          https://proxy.mimvp.com;
    }
 
    location ~* ^/img/logo\.png {
        proxy_pass          https://proxy.mimvp.com;
    }
 
    location ~ /\.ht {
        deny  all;
    }
}

좋은 웹페이지 즐겨찾기