nginx實現(xiàn)數(shù)據(jù)庫端口轉發(fā)
出于數(shù)據(jù)安全性考慮,正常情況下,網(wǎng)站或者項目的數(shù)據(jù)庫一般都是禁止外網(wǎng)訪問,或者只允許部分主機訪問。那么,如何才能不修改這類權限的前提下,讓其他被禁止訪問的主機也能訪問這個數(shù)據(jù)庫呢。這時,Nginx的作用就體現(xiàn)出來了。
1、mysql為例
oracle、sqlserver等數(shù)據(jù)庫配置和下面配置一樣,只是數(shù)據(jù)庫的端口不一樣而已
需要注意的是這個配置要寫在http外邊
#使用nginx做數(shù)據(jù)庫端口轉發(fā)
stream {
upstream sql {
# 配置數(shù)據(jù)庫的ip和端口
server 172.16.8.190:3306 weight=1 max_fails=2 fail_timeout=30s;
}
server {
# 配置本機暴露端口
listen 925;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass sql;
}
}
2、完整配置如下
#user ?nobody;#配置用戶或者用戶組,默認為nobody
worker_processes ?2;#允許生成的進程數(shù),默認為1
#制定日志路徑,級別。這個設置可以放入全局塊,http塊,server塊,
#級別以此為:debug|info|notice|warn|error|crit|alert|emerg
#error_log ?logs/error.log;
#error_log ?logs/error.log ?notice;
#error_log ?logs/error.log ?info;
#pid ? ? ? ?logs/nginx.pid;#指定nginx進程運行文件存放地址
events {
? ? worker_connections ?1024; ? ?#最大連接數(shù),默認為512
? ? accept_mutex on; ? #設置網(wǎng)路連接序列化,防止驚群現(xiàn)象發(fā)生,默認為on
? ? multi_accept on; ?#設置一個進程是否同時接受多個網(wǎng)絡連接,默認為off
? ? #use epoll; ? ? ?#事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
}
stream {
? ? upstream sql { ??
? ? ? ? server 172.16.8.190:3306 weight=1 max_fails=2 fail_timeout=30s; ??
? ? }
? ? server {
? ? ? ?listen ? ? 925;
? ? ? ?proxy_connect_timeout 1s;
? ? ? ?proxy_timeout 3s;
? ? ? ?proxy_pass sql;
? ? }
}
http {
? ? include ? ? ? mime.types;
? ? default_type ?application/octet-stream;
? ? #log_format ?main ?'$remote_addr - $remote_user [$time_local] "$request" '
? ? # ? ? ? ? ? ? ? ? ?'$status $body_bytes_sent "$http_referer" '
? ? # ? ? ? ? ? ? ? ? ?'"$http_user_agent" "$http_x_forwarded_for"';
? ? #access_log ?logs/access.log ?main;
? ? sendfile ? ? ? ?on;
? ? #tcp_nopush ? ? on;
? ? #keepalive_timeout ?0;
? ? keepalive_timeout ?65;
? ? #gzip ?on;
? ? #配置tomcat的IP地址和訪問端口
? ? upstream tomcat {
? ? ? ? server 172.16.8.190:8080;
?? ??? ?
? ? ?}
? ??
? ? server {
? ? ? ? listen ? ? ? 9008;
? ? ? ? server_name ?172.16.8.190;
?? ?#header name含下劃線
?? ?underscores_in_headers on;?
?? ?#charset gbk; # 編碼設置
?? ?#開啟gzip壓縮
? ? ? ? #gzip模塊設置
? ? ? ? gzip on; #開啟gzip壓縮輸出
? ? ? ? gzip_min_length 1k; #最小壓縮文件大小
? ? ? ? gzip_buffers 4 16k; #壓縮緩沖區(qū)
? ? ? ? gzip_http_version 1.0; #壓縮版本(默認1.1,前端如果是squid2.5請使用1.0)
? ? ? ? gzip_comp_level 2; #壓縮等級
? ? ? ? gzip_types text/plain application/x-javascript text/css application/xml;
? ? ? ? #壓縮類型,默認就已經(jīng)包含text/html,所以下面就不用再寫了,寫上去也不會有問題,但是會有一個warn。
? ? ? ? gzip_vary on;
? ? ? ? #charset koi8-r;
?? ? ? ?#charset utf-8,gbk; # 避免中文亂碼
? ? ? ? #root ? ?D:/htmlPage/dist;?
? ? ? ? #access_log ?logs/host.access.log ?main;
?? ?location /{
?? ? ? ?#這個地方指定被訪問的文件夾位置
?? ??? ?root ? D:/htmlPage;
?? ??? ?index ?index.html index.htm;
?? ??? ?#limit_rate 1280k; #限制速度
?? ? ? ?client_max_body_size ?100M;
?? ? ? ?allow all;
?? ??? ?autoindex on;
?? ? ? ?proxy_set_header X-Real-IP ?$remote_addr;
?? ? ? ?proxy_set_header Host $host;
?? ??? ?proxy_set_header X-Real-IP $remote_addr;
?? ??? ?proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
?? ? ? ?add_header 'Access-Control-Allow-Headers' 'Content-Type';
?? ??? ?add_header 'Access-Control-Allow-Methods' 'GET';
?? ? ? ?add_header 'Access-Control-Allow-Methods' 'POST';
?? ? ? ?add_header 'Access-Control-Allow-Credentials' 'true';
?? ? ? ?add_header 'Access-Control-Allow-Origin' '*';
?? ? ? ?proxy_connect_timeout ? ? ? 600s;
?? ??? ?proxy_read_timeout ? ? ? ? ?600s;
?? ??? ?proxy_send_timeout ? ? ? ? ?600s;?
?? ??? ?access_log off;
?? ? ? ?break;
? ? ? ? }
? ? ?}
?}到此這篇關于nginx實現(xiàn)數(shù)據(jù)庫端口轉發(fā)的文章就介紹到這了,更多相關nginx 數(shù)據(jù)庫端口轉發(fā)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
nginx實現(xiàn)靜態(tài)文件的token認證過程
這篇文章主要介紹了nginx實現(xiàn)靜態(tài)文件的token認證過程,2024-06-06
Nginx+Tomcat+Https 服務器負載均衡配置實踐方案詳解
這篇文章主要介紹了Nginx+Tomcat+Https 服務器負載均衡配置實踐方案的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09
Nginx?502?Bad?Gateway錯誤解決詳細指南與實例
這篇文章主要介紹了Nginx?502?Bad?Gateway錯誤解決的相關資料,502BadGateway錯誤是Web開發(fā)和運維中常見的錯誤,表示一個服務器在充當網(wǎng)關或代理時,從上游服務器收到了一個無效的響應,需要的朋友可以參考下2024-11-11
nginx代理webSocket鏈接,webSocket頻繁斷開重連方式
當使用Nginx代理WebSocket連接時,若60秒內無數(shù)據(jù)交互,連接會斷開,解決辦法包括增加proxy_read_timeout時長或在客戶端添加心跳機制,以維持連接穩(wěn)定2024-09-09

