前些日子不知道爲什麼,app使用的域名被管局註銷掉了,導致通過域名無法訪問80和8080端口,客戶端的請求發送不到服務器。
於是我們採取了一個方案,在香港服務器搭建一個nginx,香港服務器不用備案也可以訪問,將備案註銷掉的域名指向香港服務器,再由nginx轉發回原來的服務器。
首先在香港服務器搭建nginx
Nginx的配置及運行需要pcre、zlib等軟件包的支持,因此應預先安裝這些軟件的開發包(devel),以便提供相應的庫和頭文件,確保Nginx的安裝順利完成。
yum -y install pcre-devel zlib-devel openssl-devel yum install gcc gcc-c++
編譯安裝nginx
tar -zxvf nginx-1.8.0.tar.gz ./configure --prefix=/usr/local/nginx --with-http_stub_status_module make && make install
配置nginx的配置文件,使用的是反向代理,而不是轉發,轉發有一些問題,app上的一些應用還是打不開。
vim /usr/local/nginx/conf/nginx.conf server { listen 80; server_name xxx.xxx.xxx; #access_log /var/log/nginx/host.access.log main; location / { proxy_pass http://yyy.yyy.yyy:80; proxy_set_header Host yyy.yyy.yyy; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
配置完啓動nginx,將xxx.xxx.xxx的域名指向改服務器,yyy.yyy.yyy的域名指向原服務器
/usr/local/nginx/sbin/nginx
域名指向生效後,安卓版的客戶端成功可以訪問服務器,但是IOS版的用的是https 8080端口訪問,所以IOS還是有問題,所以需要在香港服務器的nginx將https的請求也做相應處理,生成證書等文件
openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr cp server.key server.key.org openssl rsa -in server.key.org -out server.key openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt vim /usr/local/nginx/conf/nginx.conf server { listen 8080 ; ssl on; server_name xxx.xxx.xxx; ssl_certificate /usr/local/nginx/conf/server.crt; ssl_certificate_key /usr/local/nginx/conf/server.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass https://yyy.yyy.yyy:8080; proxy_set_header Host yyy.yyy.yyy; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
重啓nginx,IOS版本的客戶端也可以成功訪問服務器了。