使用 proxy_pass 反代

好比我利用家庭公網(wǎng)搭建了一個小網(wǎng)站,設(shè)置了解析和端口,現(xiàn)在的地址是 site.name.com:8086,畢竟家寬肯定 443 和 80 是不能用的。那我現(xiàn)在想通過一個公網(wǎng)機(jī)器,并且這個機(jī)器是開放 443 端口的,來反代家寬上的網(wǎng)站,以達(dá)到去掉端口后綴的效果,就要用到 proxy_pass 這個功能。目標(biāo)就是通過 web.name.com 就能直接訪問到 site.name.com:8086 上的內(nèi)容。

機(jī)器環(huán)境是 Ubuntu 18.04.1 LTS

  1. 首先更新軟件包列表

    sudo apt-get update
    
  2. 安裝 Nginx

    sudo apt-get install nginx
    
  3. 添加 vhost,雖然就一個站點(diǎn),但我還是習(xí)慣添加 vhost 單獨(dú)給寫出來

    創(chuàng)建站點(diǎn)文件夾

    sudo mkdir -p /var/www/<任意名稱>
    

    下文中我使用 /var/www/web.name.com 這個路徑為例

  4. 使用 vim 編輯器編輯 /etc/nginx/nginx.conf

    sudo vim /etc/nginx/nginx.conf
    

    按下 i 鍵進(jìn)行編輯

    在 http{} 里添加一行(這個一般都有)

    include /etc/nginx/conf.d/*.conf;
    

    按下 Esc,并輸入 :wq 回車保存并退出

  5. 在上述文件夾中添加配置文件,直接 vim 就可以新建一個文件并開始編輯

    sudo vim /etc/nginx/conf.d/web.name.com.conf
    

    配置文件如下

    server
    {
        listen 443 ssl http2;
        server_name web.name.com;
        ssl on;
        ssl_certificate   /etc/nginx/ssl/web.name.com.crt;
        ssl_certificate_key  /etc/nginx/ssl/web.name.com.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        access_log off;
        location / {
            proxy_pass https://site.name.com:8086/;
      }
    }
    

    你需要把你的證書命名為 web.name.com 然后放到 /etc/nginx/ssl 目錄下

  6. 重啟 nginx 服務(wù)

    nginx -s reload
    
  7. 然后就能通過訪問 https://web.name.com 訪問到 https://site.name.com:8086 的內(nèi)容了

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

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