咱們如今擁有2個項目。可是隻有一個域名,經過nginx配置來實現如下url導向不一樣的項目。html
後臺管理臺:{域名}/adminnginx
用戶客戶端:{域名}/client api
server { listen 8888; server_name ****.*****.com; root /home/work/***/static/client; index index.html; autoindex on; charset utf-8; location ~ /(system|car)/ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://192.168.1.1:3000; } #配置Nginx動靜分離,定義的靜態頁面直接從Nginx發佈目錄讀取。 location /admin { alias /home/work/****/static/admin/; expires 1d; index index.html; autoindex on; } access_log /home/work/****/logs/static_admin_ng_access.log; location /api/ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://192.168.1.1:3000; } #配置Nginx動靜分離,定義的靜態頁面直接從Nginx發佈目錄讀取。 location /client { alias /home/work/****/static/client/; #expires 爲用戶信息的緩存時間。1d爲一天 expires 1d; index index.html; autoindex on; } access_log /home/work/****/logs/static_client_ng_access.log; }
在配置這個的時候,遇到一個坑,就是alias 和root 的區別,致使獲取的靜態文件的獲取的路徑不對,一直報404;鬱悶的很;緩存
在配置ng 的location 的生活;通常不要加後面的斜杆;而後加上autoindex on; 自動首頁;這樣就會自動跳轉到首頁了;服務器
alias 和 root 的區別; root 的話;location 中的地址會拼接到root後面;alias就直接代替後面的東西app
如:
location /admin {
root /admin/res/;
index html.html;
autoindex no;
}url
location /admin {
alias /admin/res/;
index html.html;
autoindex no;
}spa
訪問地址:localhost:8888/admin/res/app.js;代理
root實際訪問的地址就是: localhost:8888/admin/res/admin/res/app.jscode
也就是說這個實際訪問的地址 ./admin/res/admin/res/app.js ;這樣根本找不到文件;
alias 實際的訪問地址就是: localhost:8888/admin/res/app.js;
訪問的地址是 ./admin/res/app.js
location /admin/{
root /admin/res/;
index html.html;
autoindex no;
}
上面這種配置 localhost:8888/admin 是不能跳轉到首頁的;
須要加上斜杆 localhost:8888/admin/ 才能跳轉到首頁
location /admin{
root /admin/res/;
index html.html;
autoindex no;
}
這種訪問的時候: localhost:8888/admin 這樣就能夠直接訪問了;
配置服務器代理:
location /api/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.1.1:3000;
}
必定要填寫
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.1.1:3000;
這4項了;
如今這樣訪問的地址就是 http://192.168.1.1:3000/api/...........;