使用nginx + host 對映域名到本地
阿新 • • 發佈:2018-12-21
使用nginx對映域名到本地
ps: 最近在寫一個app內巢狀的專案,然後在app內部只能通過域名訪問,在除錯過程中需要寫完程式碼然後提交,打包,釋出bulabulabula~ 然後爆炸~~,不多嗶嗶,進入正題。
首先,下載nginx
// 下載
$ brew install nginx
// 或者
$ npm install nginx
// 以上是mac的安裝方法,windows的同學抱歉啦,暫時沒有windows電腦
檢查是否安裝完成
nginx -v
// 結果 nginx version: nginx/1.xx.xx
OK安裝完成
- 修改配置
// 終端輸入
open /usr/local/etc/nginx
// 開啟nginx目錄,然後尋找一個叫做servers的資料夾,
// ps: 此資料夾初始是空的,需要我們自己寫相關配置,如果沒有則新建一個,
// 然後開啟當前目錄的nginx.conf。
// 在末尾新增程式碼 “include servers/*;”, 此程式碼與server同級
// 如果初始有servers資料夾以上步驟可以忽略
- server資料夾配置
// 新建以.conf結尾檔案,檔名字隨意,建議與專案相關,配置如下
// http形式域名:
server {
listen 80; // 監聽80埠
index index.html;
location / {
proxy_pass http: //localhost:8080; // 本地開啟服務ip地址埠號
}
location /api {
proxy_pass http://103.21.117.96:810; // 加api的請求全部對映到此ip下
proxy_set_header Host $host; // proxy使用本地host
}
}
// https形式域名
server {
listen 443; // https監聽443埠
ssl_certificate /usr/local/etc/nginx/ssl/xxx.com. crt; // 申請到的ssl檔案
ssl_certificate_key /usr/local/etc/nginx/ssl/xxx.com.key; // 申請到的ssl檔案
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4';
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_session_timeout 5m;
location / {
proxy_pass http://localhost:8080;
}
location /api {
proxy_pass http://103.21.117.96:810;
proxy_set_header Host $host;
}
}
nginx配置完成,接下來配置host檔案
// 方法一:找到host檔案人後編輯,目錄:/private/etc/,查詢方式:
//前往->前往資料夾 ->輸入/private/etc/,就可以看到了
// 方法二:使用終端編輯
// 輸入sudo vi/etc/hosts 提示輸入密碼並回車
// 按i進入輸入模式 在最後一行輸入 127.0.0.1 xxx.com // 要對映的域名
// ip與域名以空格隔開
// 輸入之後按ESC退出編輯模式 輸入 :wq 儲存並退出, (冒號需英文)
// OKhost配置完畢
啟動nginx
sudo nginx // 咦?啥也沒有?不,其實這個時候nginx已經啟動了。
// 本地開啟localhost:8080, (因為本文配置監聽的是localhost:8080)。
// 然後瀏覽器輸入網站域名,完美,哈哈哈~~
本文到此結束,歡迎大家指正錯誤