1. 程式人生 > >使用域名訪問本地專案and nginx解決埠問題

使用域名訪問本地專案and nginx解決埠問題

使用域名訪問本地專案

域名解析

一個域名一定會被解析為一個或多個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,然後用域名訪問後臺管理系統: