使用域名訪問本地專案and nginx解決埠問題
阿新 • • 發佈:2018-12-18
使用域名訪問本地專案
域名解析
一個域名一定會被解析為一個或多個ip。這一般會包含兩步:
-
本地域名解析
瀏覽器會首先在本機的hosts檔案中查詢域名對映的IP地址,如果查詢到就返回IP ,沒找到則進行域名伺服器解析,一般本地解析都會失敗,因為預設這個檔案是空的。
- Windows下的hosts檔案地址:C:/Windows/System32/drivers/etc/hosts
- Linux下的hosts檔案所在路徑: /etc/hosts
樣式:
# My hosts 127.0.0.1 localhost 0.0.0.0 account.jetbrains.com 127.0.0.1 www.xmind.net
-
域名伺服器解析
本地解析失敗,才會進行域名伺服器解析,域名伺服器就是網路中的一臺計算機,裡面記錄了所有註冊備案的域名和ip對映關係,一般只要域名是正確的,並且備案通過,一定能找到。
3.解決域名解析問題
我們不可能去購買一個域名,因此我們可以偽造本地的hosts檔案,實現對域名的解析。修改本地的host為:
127.0.0.1 manage.boss.com
127.0.0.1 crm.boss.com
這樣就實現了域名的關係映射了。
每次在C盤尋找hosts檔案並修改是非常麻煩的,給大家推薦一個快捷修改host的工具,SwitchHosts 我們添加了兩個對映關係:
- 127.0.0.1 crm.boss.com
現在,ping一下域名試試是否暢通:
OK!
nginx解決埠問題
這裡就要用到反向代理工具:Nginx
使用nginx可以通過命令列來啟動,操作命令:
- 啟動:
start nginx.exe
- 停止:
nginx.exe -s stop
- 重新載入:
nginx.exe -s reload
nginx中的每個server就是一個反向代理配置,可以有多個server
完整配置:
#user nobody; 工作程序 worker_processes 1;
events { worker_connections 1024; }
http { include mime.types; default_type application/octet-stream; sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name manage.boss.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:8088;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
server {
listen 80;
server_name crm.boss.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
}
測試:
啟動nginx,然後用域名訪問後臺管理系統: