nginx 和dns配置

本文详细介绍了DNS服务器配置步骤,包括域名解析设置及Nginx服务器的配置方法,如反向代理设置与HTTPS转HTTP操作流程。通过具体实例展示了如何实现域名解析和负载均衡。

1.登陆dns机器:

vi /etc/named.conf  查看配置

    directory       "/var/named";

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

2.cd /etc/named.rfc1912.zones


zone "base.XXX.XXX" IN {
        type master;
        file "XX.XX.XX.zone";
};

进行域名解析

3.进入 cd /var/named

vi XX.XX.zone 

@       IN      SOA     stb.internal. root.stb.internal. (
                              6         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@               IN      NS      dns01.stb.com.
dns01           IN      A       192.168.4.44
H5            IN      A       192.168.3.XX
kk           IN      A       192.168.3.111
cc            IN      A       192.168.3.111

 

重启dns

service bind9 restart

重启nginx:

 1308  ps -ef|grep named
 1309  kill -9 139404
 1310  /usr/sbin/named

4. 192.168.3.111 nginx 机器:

进入nginx 

cd /etc/nginx/

查看nginx 配置:

  include /etc/nginx/conf.d/*;
    include /etc/nginx/sites-enabled/*;

进入:

cd  /etc/nginx/conf.d/

/etc/nginx/conf.d/upstream.conf

 

反响代理:

upstream XX {
        server 192.168.3.XX:8083 max_fails=3 fail_timeout=10s;
        keepalive 200;
}

重启nginx:

nginx -s reload

 

---------------------修改https 到http---------

1.登陆dns 

vi /etc/bind/named.conf.default-zones

进入/etc/bind/XXXX

增加对应的二级域名:

指到对应的nginx机器

登陆nginx服务器:

cd /etc/nginx/nginx.conf

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;

cd /etc/nginx/sites-enabled/

 

注意:屏蔽ssl相关内容,且监听为80端口

server {
        listen 80;
        server_name h5mxd.sit.nonobank.com;
        root /usr/share/nginx/h5_mingxiaodai;
        index index.html;

       # ssl on;
       # ssl_certificate /etc/nginx/SSL/h5.sit.mingxiaodai.com.crt;
       # ssl_certificate_key /etc/nginx/SSL/h5.sit.mingxiaodai.com.key;
       # ssl_session_timeout 5m;
       # ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
       # ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES:!EXPORT";
       # ssl_prefer_server_ciphers on;

        #access_log /dev/null;
        access_log /var/log/nginx/h5_mingxiaodai_access.log main;
        error_log /var/log/nginx/h5_mingxiaodai_error.log;
        #error_log /dev/null;
        location / {
                try_files $uri $uri/ =404;
        }
        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        error_page 405 =200 $uri;
        location = /50x.html {
                root /usr/share/nginx/html;
        }
}

Nginx配置 DNS 缓存,可以通过使用内置的 resolver 模块来实现。Nginx 会在内存中缓存 DNS 解析结果,并根据 DNS 记录的 TTL(Time To Live)值自动更新缓存。以下是详细的配置方法。 ### 配置步骤 1. **定义 resolver 指令** 在 `http` 或 `server` 块中使用 `resolver` 指令来指定 DNS 服务器地址。可以配置多个 DNS 服务器,用空格分隔。 ```nginx http { resolver 8.8.8.8 8.8.4.4 valid=30s; } ``` - `8.8.8.8` `8.8.4.4` 是 Google 提供的公共 DNS 服务器。 - `valid=30s` 表示 Nginx 缓存 DNS 解析结果的时间为 30 秒。可以根据需要调整这个值,例如 `valid=5m` 表示 5 分钟。 2. **使用变量进行 DNS 解析** 如果在 `proxy_pass` 或其他指令中使用了域名,Nginx 会自动解析并缓存该域名的 IP 地址。为了确保动态解析,可以使用 `$host` 变量或自定义变量。 ```nginx location / { set $backend http://example.com; proxy_pass $backend; } ``` - 使用 `set` 指令定义变量 `$backend`,并将域名解析的结果缓存。 - 当 DNS 记录的 TTL 过期后,Nginx 会重新解析域名并更新缓存。 3. **强制刷新 DNS 缓存** 如果需要手动刷新 DNS 缓存,可以通过发送 `USR1` 信号给 Nginx 主进程,强制其重新解析 DNS。 ```bash kill -USR1 $(cat /run/nginx.pid) ``` - 这将重新加载 Nginx配置,并刷新 DNS 缓存。 ### 完整示例配置 ```nginx http { # 定义 DNS 服务器缓存时间 resolver 8.8.8.8 valid=30s; server { listen 80; location / { # 使用变量定义后端服务地址 set $backend http://example.com; proxy_pass $backend; } } } ``` ### 关键点 - **TTL 控制**:Nginx 会根据 DNS 记录的 TTL 值自动管理缓存[^1]。如果未显式指定 `valid` 参数,Nginx 会使用 DNS 记录的 TTL 值。 - **动态更新**:当 DNS 记录的 TTL 过期后,Nginx 会在下一次请求时重新解析域名。 - **手动刷新**:通过发送 `USR1` 信号,可以强制刷新 DNS 缓存,确保使用最新的解析结果。 ### 优化建议 - **使用本地 DNS 缓存**:为了减少外部 DNS 查询的延迟,可以在服务器上部署本地 DNS 缓存服务(如 `dnsmasq`),并将 Nginx 的 `resolver` 指向本地 DNS 服务。 - **避免频繁解析**:尽量减少使用动态变量进行 DNS 解析的场景,以降低解析开销。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值