搭建數據庫代理服務器

PS:受XX的影響,只能在家辦公。但公司內外網隔離,每次訪問公司內部網絡時都必須使用跳板機過去,但在編寫代碼時,本地無法訪問數據庫,所以必須使用代理來使我可以訪問進數據庫。

現在環境是這樣的,有一臺服務器, 和若干數據庫。我在家通過VPN能訪問公司內部的這臺CentOS的服務器(當然什麼系統不重要,重要的是我能訪問到公司的內網去),但不能訪問數據庫,但這臺CentOS服務器可以訪問其他數據庫,所以我在CentOS上做一個代理,使我可以在本地通過VPN就可以直接訪問數據庫。
我這個過程中,我使用的是nginx來做了一個反向代理,其過程如下:

一、準備nginx環境

安裝過程這個網上有很多教程,其實很簡單,就是去官網,首先下載nginx文件包,再上傳到服務器中,因爲nginx需要依賴與一些庫,所以先安裝一些庫,可以先不管,安裝中出問題了再說也行,需要安裝的話,大致有下面這些:

安裝make:

yum -y install gcc automake autoconf libtool make

安裝g++:

yum install gcc gcc-c++

Pcre

yum -y install pcre-devel

openssl

yum -y install openssl openssl-devel

差不多就這些,安裝過程中失敗的話 可以考慮一下是不是yum源(centos下)的問題,可以考慮替換源。

二、安裝nginx

nginx我們一般使用其來做負載均衡,在使用http通信協議應用中使用得較多,但數據庫不是走的這個協議,所以配置http模塊是沒有用的,所以我們需要使用到nginx的Stream模塊,這個也是安裝的關鍵。步驟如下:

1、解壓下載的nginx壓縮包,進去主目錄下,可以看到有這樣文件

2、配置nginx

在conf目錄下去, 可以看到有個nginx.cof文件,對其進行配置。
在這裏插入圖片描述
在配置文件的http同級目錄下加入如下, 我已mysql代理爲例子:

 upstream mysql {
        hash $remote_addr consistent;
        server xxxx:3306 weight=5 max_fails=3 fail_timeout=30s;#數據庫環境的ip
    }
    server {
        listen 3306;#公網機器監聽端口
        proxy_connect_timeout 1s;
        proxy_timeout 36000s;#注意這個,簡單的來說就是連接上以後session的保持時間,就是多長時間不活動下次要重新鏈接,>建議設大一點
        proxy_pass mysql;
    }

位置如下圖:
在這裏插入圖片描述

3、在目錄下安裝nginx,以及stream模塊

 ./configure --with-http_ssl_module --with-stream
 make

驗證安裝是否成功:

/usr/local/nginx/sbin/nginx -V

帶有這個參數就可以了
在這裏插入圖片描述

4、啓動nginx

在nginx的根目錄下,可以看到有個objs文件夾,文件夾下有個nginx可執行文件,直接執行就行。
在這裏插入圖片描述
啓動過程中可能回報端口占用錯,如:
nginx: [emerg] bind() to 0.0.0.0:3306 failed (98: Address already in use)
  nginx: [emerg] bind() to 0.0.0.0:3306 failed (98: Address already in use)
  nginx: [emerg] bind() to 0.0.0.0:3306 failed (98: Address already in use)
  nginx: [emerg] bind() to 0.0.0.0:3306 failed (98: Address already in use)…

使用netstat -ntpl 查看,然後幹掉即可。

三、補充

也可以使用這個來啓動:

systemctl start nginx```

停止nginx : 
```powershell
nginx -s stop >>>>快速停止nginx 
nginx -s quit >>>>完整有序的停止nginx

卸載nginx:刪除nginx文件即可:

rm -rf /usr/local/nginx

四、注意事項

== 注意,後面每次修改配置文件,需要添加端口的話,不是直接修改上面一開始修改的那個配置文件的。而是去修改安裝目錄下的 conf/nginx.conf 文件, 可以用==

whereis nginx

命令查看。
在這裏插入圖片描述
這個路徑在安裝完nginx後,即make命令後,是有日誌輸出了的

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