nginx 配置 同一域名端口下,根據URL 導向不一樣的項目目錄

咱們如今擁有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/...........;

相關文章
相關標籤/搜索