生活随笔
收集整理的這篇文章主要介紹了
linux使用nginx负载udp
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
環境介紹:
centos7上搭建的dnsmasq服務,這是一款小巧的dns服務,配置簡單,容易上手;
編譯安裝 nginx ,因為要負載udp,1.9以下的版本是不支持的,此處使用的是nginx-1.10的版本;
我們在利用nginx進行http的負載時已經很簡單了,后來公司有dns負載的需求,就想用nginx做dns服務的負載,經過多次配置和測試,終于完成;172.22.10.50 ---搭建的dnsmasq服務;
172.22.10.237 ---搭建的dnsmasq服務;
172.22.10.156 ---編譯安裝nginx,將客戶端的dns解析請求分發到50和237兩臺dns服務器上;
例圖:
dnsmasq的安裝和配置就不多說了,換成其他的dns服務也可以,這里只講解nginx的負載方法和配置;
下載nginx安裝包(版本要大于1.9),上傳至172.22.10.156;我的放到了/usr/local/src/nginx-1.10.3.tar.gz,
//首先安裝編譯工具、依賴包 yum -y install gcc gcc-c++ autoconf automake
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel //解壓nginx:` tar xzvf nginx-1.10.3.tar.gz`//進入nginx目錄并查看`cd nginx-1.10.3 && ls`有的nginx版本本身就大于1.9,但是為什么不能做到udp負載?可能是沒編譯所需要的模塊//查看nginx可以編譯的模塊;`./configure --help`其中有一個stream的模塊,
//預編譯`./configure --with-stream`//make編譯`make`//安裝`make install`此時,nginx就會安裝到默認目錄: /usr/local/nginx 下了;/usr/local/nginx/conf/nginx.conf 就是nginx的主配置文件了;
**vim編輯 /usr/local/nginx/conf/nginx.conf :**將里面的內容修改成:`#user nobody;
worker_processes 4;
events {
worker_connections 1024;
}
stream {
upstream dns {
server 172.22.10.237:53 weight=1;
server 172.22.10.50:53 weight=1;
}
server {
listen 53 udp;
proxy_connect_timeout 1s;
proxy_timeout 20s;
proxy_pass dns;
}
}<br/>保存退出執行:/usr/local/nginx/sbin/nginx -t` 檢查配置;
這個時候就可以啟動nginx了:`/usr/local/nginx/sbin/nginx`為了排除其他影響,建議將防火墻和selinux先關掉;172.22.10.237和172.22.10.50的防火墻也關掉,這樣nginx才能訪問并分發udp;
測試:在172.22.10.237 DNS配置文件中配置一個域名解析:172.22.10.110 www.xxx.com在172.22.10.50 DNS配置文件中配置一個域名解析:172.22.10.110 www.ppp.com重啟dns服務,讓配置生效;將客戶端的dns該為 172.22.10.156 ,使用 nslookup 對172.22.10.110這個ip進行解析,你會發現,解析的結果會在 www.xxx.com 和 www.ppp.com 中來回變動,這就是nginx按照權重分配的結果了` upstream dns {server 172.22.10.237:53 weight=1;server 172.22.10.50:53 weight=1;
}`
轉載于:https://blog.51cto.com/13577495/2334063
總結
以上是生活随笔為你收集整理的linux使用nginx负载udp的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。