使用nginx代理oracle和网站地址跳转

nginx简介

对于现有的服务器组来说,经常有 A可以访问B,B可以访问C,但是A不能直接访问C的情况,这个时候我们可以通过B做跳转。当然其实实现的方式有很多,比如windows下使用netsh,lunix下使用nat,但是这里介绍一种更加万金油的方式,在不影响B的任何配置的情况下,通过nginx直接进行相关配置解决问题,本文通过以下几个方面介绍

  • nginx安装
  • nginx配置oracle代理
  • nginx配置网站代理并且实现负载均衡

nginx安装

本文使用了windows环境进行演示,实际Linux环境下操作基本上没有区别。首先下载nginx,下载地址http://nginx.org/en/download.html
找到自己对应环境的安装包。
nginx本身是免安装的,我们将下载下载的内容直接解压。
解压后nginx就可以使用了

配置oracle代理

找到解压目录中的conf文件夹中的ngInx.conf文件,用文本编辑器打开。增加如下配置

如果要代理oracle或者mysql这种需要用stream

stream {
upstream oracle {
hash $remote_addr consistent;
server xx.xx.xx.xx:1521 weight=5 max_fails=3 fail_timeout=30s;
}
server {
listen 3000;#公网机器监听端口
proxy_connect_timeout 1s;
proxy_timeout 36000s;#注意这个,简单的来说就是连接上以后session的保持时间,就是多长时间不活动下次要重新链接,建议设大一点
proxy_pass oracle;
}

}
加在该位置下
这里写图片描述

具体注释上面已经写清楚,对于oracle或者mysql这种配置要使用stream的方式,特别注意proxy_timeout这个参数设置

配置网站代理

当然比较常用的就是统一网站门户,并且进行负载的分发,下面介绍一下对网站的代理方式
#如果要代理网络跳转看这里-这个实际几行代码要比这个简单,但是用这个方式可以配置负载均衡
upstream gsbx.com {
server xx.xx.xx.xx:80 weight=5 max_fails=3 fail_timeout=30s;#跳过来的第一个地址,这里可以配置多个,负载进行跳转
#server xxxx 这里可以接着配置
}
server {
listen 80;
server_name xx.xx.xx.xx;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root html;
            proxy_pass   http://gsbx.com;
            proxy_redirect  default;
            proxy_set_header Host $host:$server_port;  
            proxy_set_header X-Real-IP $remote_addr;  
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
            proxy_connect_timeout 10;  
            proxy_read_timeout 60;  
            proxy_send_timeout 60;    
        }
}

这里写图片描述

在http节点下面增加上述代码,这里注意在upstream 中,下面的server是可以配置多个的,这样我们不仅实现了IP跳转的问题,而且还相当于统一了门户进行了复杂的分发。

具体再资源里面已经进行了nginx以及对应配置文件的上传,大家懒得复制代码的可以通过以下链接进行下载。https://download.csdn.net/download/himly_zhang/10631058

最后,配置完成之后,我们通过cd命令,切入nginx目录,直接敲Nginx就启动成功了,启动成功后系统进程中对出现两个nginx。。如果不想用了。结束进行即可。

发布了15 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Himly_Zhang/article/details/82145815