您的位置:首页 > 运维架构 > 反向代理

一次域名备案被注销后无法访问80和8080端口的转移过程

2015-08-08 10:44 627 查看
前些日子不知道为什么,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版本的客户端也可以成功访问服务器了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx反向代理