通過nginx實(shí)現(xiàn)智能家居自動(dòng)內(nèi)外網(wǎng)切換

設(shè)置同一個(gè)域名內(nèi)外網(wǎng)分別訪問對(duì)應(yīng)的ip

搞了HomeAssistant的外網(wǎng)訪問后,內(nèi)外網(wǎng)訪問需要不同的地址,導(dǎo)致一些不必要的麻煩。通過host+nginx配置可以實(shí)現(xiàn)同一個(gè)域名內(nèi)網(wǎng)下訪問內(nèi)網(wǎng)ip,外網(wǎng)訪問外網(wǎng)ip

內(nèi)網(wǎng)host配置

192.168.31.51 Smartplugconnect.phicomm.com
192.168.31.51 minipc.yzapp.cn
192.168.31.51 hass.yzapp.cn
192.168.31.51 docker.yzapp.cn
192.168.31.51 kodi.yzapp.cn

內(nèi)網(wǎng)nginx配置(除了proxy_pass基本和外網(wǎng)的服務(wù)器配置一樣)

...

stream {
    upstream ssh {
        server 127.0.0.1:22;
    }
    server {
        listen XXX;
        proxy_pass ssh;
        proxy_connect_timeout 1h;
        proxy_timeout 1h;
    }
}

http {

    ...

    server {
        listen 443;
        server_name hass.yzapp.cn; #填寫綁定證書的域名
        ssl on;
        ssl_certificate /usr/local/nginx/conf/1_hass.yzapp.cn_bundle.crt;
        ssl_certificate_key /usr/local/nginx/conf/2_hass.yzapp.cn.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        location / {
            proxy_pass http://127.0.0.1:8123;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_max_temp_file_size 0;
            proxy_redirect off;
            proxy_read_timeout 240s;
        }
       }
    server {
        listen 443;
        server_name docker.yzapp.cn; #填寫綁定證書的域名
        ssl on;
        ssl_certificate /usr/local/nginx/conf/1_docker.yzapp.cn_bundle.crt;
        ssl_certificate_key /usr/local/nginx/conf/2_docker.yzapp.cn.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        location / {
            proxy_pass http://127.0.0.1:9000;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_max_temp_file_size 0;
            proxy_redirect off;
            proxy_read_timeout 240s;
        }
    }

    server {
        listen 443 ssl;
        server_name kodi.yzapp.cn; #填寫綁定證書的域名
        # ssl on;
        ssl_certificate C:/Users/nesto/soft/nginx-1.18.0/conf/1_kodi.yzapp.cn_bundle.crt;
        ssl_certificate_key C:/Users/nesto/soft/nginx-1.18.0/conf/2_kodi.yzapp.cn.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        location / {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_max_temp_file_size 0;
            proxy_redirect off;
            proxy_read_timeout 240s;
        }
    }

    server {  
        listen 80;  
        server_name kodi.yzapp.cn;  
    
        rewrite ^(.*)$  https://$host$1 permanent;  
    }

    server {  
        listen 80;  
        server_name hass.yzapp.cn;  
    
        rewrite ^(.*)$  https://$host$1 permanent;  
    } 
    server {  
        listen 80;  
        server_name docker.yzapp.cn;  
    
        rewrite ^(.*)$  https://$host$1 permanent;  
    }

    ...
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容