一次域名備案被註銷後無法訪問80和8080端口的轉移過程

前些日子不知道爲什麼,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版本的客戶端也可以成功訪問服務器了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章