1、先查看nginx當前版本編譯時的參數
# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.10.3
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --with-http_ssl_module
可以看到編譯時只加了一個參數 --with-http_ssl_module,但是nginx代理mysql需要使用 stream模塊,下面介紹添加stream模塊
2、nginx添加stream模塊
找到並進入nginx之前編譯時的目錄,執行下面的命令
# ./configure --with-http_ssl_module --with-stream
# make 注意一定不要執行make install
# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bk22
# cp objs/nginx /usr/local/nginx/sbin/
再驗證nginx是否有了stream模塊
# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.10.3
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --with-http_ssl_module --with-stream
可見stream模塊已經添加上了。
3、修改nginx配置文件
把下面的配置加入到與 http 段同級的位置
stream{
server {
listen 3306;
proxy_pass mysql;
}
upstream mysql {
server 需要被代理的ip:3306;
}
}
4、重啓nignx
重啓nginx,並用mysql命令測試是否代理成功。 這樣就可以方便大家遠程訪問公司內網的mysql數據庫。
本文到此結束。