好比我利用家庭公網(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
-
首先更新軟件包列表
sudo apt-get update -
安裝 Nginx
sudo apt-get install nginx -
添加 vhost,雖然就一個站點(diǎn),但我還是習(xí)慣添加 vhost 單獨(dú)給寫出來
創(chuàng)建站點(diǎn)文件夾
sudo mkdir -p /var/www/<任意名稱>下文中我使用 /var/www/web.name.com 這個路徑為例
-
使用 vim 編輯器編輯 /etc/nginx/nginx.conf
sudo vim /etc/nginx/nginx.conf按下 i 鍵進(jìn)行編輯
在 http{} 里添加一行(這個一般都有)
include /etc/nginx/conf.d/*.conf;按下 Esc,并輸入 :wq 回車保存并退出
-
在上述文件夾中添加配置文件,直接 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 目錄下
-
重啟 nginx 服務(wù)
nginx -s reload 然后就能通過訪問 https://web.name.com 訪問到 https://site.name.com:8086 的內(nèi)容了