대부분의 Google IP가 GFW에 의해 차단되어 있기 때문에 NGINx를 역방향 프록시 서버로 사용하여 중국 본토에서 GAE(Google 앱 엔진) 웹 사이트를 열 수 있습니다.
DNS: 해당 DNS 레코드가 있습니다.-
A mydomain.com ==> x.x.x.x
CNAME www ==> ghs.google.com
CNAME * ==> ghs.google.com
요청이 중국 본토에서 오는 경우 지역 DNS를 사용하여 내 역방향 프록시를 가리킬 계획입니다. 현재 호스트 기록이 mydomain.com을 localhost로 지정하도록 하여 로컬로 테스트하고 있습니다.
우분투 12.04에 nginx 1.1.19가 있습니다.
내 사이트 구성 파일은 다음과 같습니다.
server {
#listen 80;
listen 443 ssl;
server_name mydomain.com;
ssl on;
ssl_certificate /home/user/Desktop/ssl/mydomain.com.pem;
ssl_certificate_key /home/user/Desktop/ssl/mydomain.com.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
large_client_header_buffers 4 16k;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# keepalive_timeout 70;
location / {
proxy_pass https://mydomain.com/;
proxy_set_header Host www.mydomain.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-HOST $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy-Hostname $scheme://$http_host;
proxy_redirect off;
proxy_intercept_errors on;
#error_page 500 = /error_page.html;
}
#location = /error_page.html {
# root /local_path_to_static_files_root;
#}
}
https를 열려고 했을 때: //mydomain.com:-
처음에 연결 수가 너무 적다는 오류가 발생했습니다. nginx.conf 파일에 다음을 추가/편집하여 문제를 해결하세요.
events {
worker_connections 8024;
# multi_accept on;
}
열린 파일이 너무 많다는 오류가 발생했습니다. nginx.conf 파일에 다음을 추가/편집하여 문제를 해결했습니다.
worker_rlimit_nofile 5000;
이제 오류 504 게이트웨이 시간 초과(연결 시간 초과)가 발생합니다.-
내가 뭘 하고 있는지, 아니면 뭘 잘못했는지 아세요??
업데이트:
호스트 파일에 있고 mydomain.com ==> 127.0.0.1
역방향 프록시가 들어오는 요청을 mydomain.com으로 전달하여 계속해서 자체적으로 요청하기 때문에 무한 리디렉션 루프로 바뀌었습니다. 루프를 피하기 위해 호스트에서 요청을 전달하는 URL 프록시를 제거했습니다.
해결됨
답변1
호스트 파일에 있고 mydomain.com ==> 127.0.0.1
역방향 프록시가 들어오는 요청을 mydomain.com으로 전달하여 계속해서 자체적으로 요청하기 때문에 무한 리디렉션 루프로 바뀌었습니다. 루프를 피하기 위해 호스트에서 요청을 전달하는 URL 프록시를 제거했습니다.