nginx是支持udp或者tcp的代理或者负载均衡的。是通过stream模块来支持udp的。
首先在编译过程中就需要开启stream模块:
./configure --prefix=/usr/local/nginx --with-pcre=/home/temp/nginx/pcre-8.32 --with-zlib=/home/temp/nginx/zlib-1.2.8 --with-openssl=/home/temp/nginx/openssl-1.0.1i --with-http_ssl_module --with-stream
然后在配置文件中加上udp的配置:
stream {
upstream dns_upstreams {
server 192.168.136.130:53;
server 192.168.136.131:53;
}
server {
listen 53 udp;
proxy_pass dns_upstreams;
proxy_timeout 1s;
proxy_responses 1;
error_log logs/dns.log;
}
}
这样的话,nginx就做了两个服务器的udp负载。
最后附上一个nginx的dockerfile
FROM ubuntu:14.04
MAINTAINER redstarofsleep "*@*.com"
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak
WORKDIR /etc/apt
RUN touch sources.list
RUN echo "deb http://mirrors.ustc.edu.cn/ubuntu/ trusty main restricted universe multiverse" >> sources.list
RUN echo "deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-security main restricted universe multiverse" >> sources.list
RUN echo "deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse" >> sources.list
RUN echo "deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse" >> sources.list
RUN echo "deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse" >> sources.list
RUN echo "deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty main restricted universe multiverse" >> sources.list
RUN echo "deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty-security main restricted universe multiverse" >> sources.list
RUN echo "deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse" >> sources.list
RUN echo "deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse" >> sources.list
RUN echo "deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse" >> sources.list
RUN apt-get update
ADD nginx-1.12.1.tar.gz /home/temp/nginx
ADD openssl-1.0.1i.tar.gz /home/temp/nginx
ADD pcre-8.32.tar.gz /home/temp/nginx
ADD zlib-1.2.8.tar.gz /home/temp/nginx
RUN apt-get install -y g++
RUN apt-get install -y make
WORKDIR /home/temp/nginx/nginx-1.12.1
RUN ./configure --prefix=/usr/local/nginx --with-pcre=/home/temp/nginx/pcre-8.32 --with-zlib=/home/temp/nginx/zlib-1.2.8 --with-openssl=/home/temp/nginx/openssl-1.0.1i --with-http_ssl_module --with-stream
WORKDIR /home/temp/nginx/nginx-1.12.1
RUN make
WORKDIR /home/temp/nginx/nginx-1.12.1
RUN make install
EXPOSE 80
EXPOSE 9002/udp
ENTRYPOINT /usr/local/nginx/sbin/nginx && /bin/bash
转载请注明出处:http://blog.csdn.net/redstarofsleep