鍍金池/ 問(wèn)答/Java  Linux  HTML/ 關(guān)于nginx實(shí)現(xiàn)前后端分離系統(tǒng)的配置問(wèn)題

關(guān)于nginx實(shí)現(xiàn)前后端分離系統(tǒng)的配置問(wèn)題

問(wèn)題描述

在前后端分離的系統(tǒng)中,前端和后端項(xiàng)目都已經(jīng)部署好了,可是通過(guò)前端項(xiàng)目并不能夠訪(fǎng)問(wèn)到后端項(xiàng)目所綁定的數(shù)據(jù)庫(kù),無(wú)法獲取數(shù)據(jù)庫(kù)中的內(nèi)容。

問(wèn)題出現(xiàn)的環(huán)境背景及自己嘗試過(guò)哪些方法

在nginx中的root指向本地vue項(xiàng)目生成的dist文件,然后再location中將請(qǐng)求代理到tomcat的服務(wù)器端口,

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)

server {
  listen 80;
  server_name  localhost;
  proxy_set_header X-Real-IP $remote_addr;
  add_header Access-Control-Allow-Origin *;
  add_header Access-Control-Allow-Headers X-Requested-With;
  add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
  add_header Access-Control-Allow-Headers Origin,X-Requested-Width,Content-Type,Accept;
client_max_body_size 30M;
  limit_rate 100k;

  gzip  on;
  gzip_min_length 1k;
  gzip_buffers 16 64k;
  gzip_http_version 1.1;
  gzip_comp_level 2;
  gzip_types application/json text/plain text/css;
  gzip_vary on;

  location ~* \.(txt|pem|p12|url)$ {
    deny all;
  }
   location / {
    default_type application/json;
     proxy_pass http://localhost:8888;
  }
}

我tomcat的端口是8888,而root的路徑放在了http下

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

試了很多方法還是不能夠解決,求大神指點(diǎn),我這樣是哪里出現(xiàn)了問(wèn)題呢?

回答
編輯回答
墨沫

前后端分離指的是前端一臺(tái)單獨(dú)的web服務(wù)器,后端一臺(tái)單獨(dú)的web服務(wù)器,可以是不同的物理服務(wù)器,也可以在同一臺(tái)物理服務(wù)器上,但是配置兩個(gè)不同的nginx主機(jī),或者甚至在同一個(gè)nginx主機(jī)上,但是至少要有不同的路徑進(jìn)行區(qū)隔。比如說(shuō)https://www.example.com/frontend是前端的服務(wù)路徑,https://www.example.com/backend是后端的服務(wù)路徑,如果都放在frontend里也可以,但至少要讓nginx知道它需要把哪些東西反向代理給tomcat,同一個(gè)路徑同一個(gè)文件,既讓它走前端,又讓它反向代理給tomcat,這是不可能的。

舉例來(lái)說(shuō):

server {
    listen 80;
    server_name www.example.com;

    root /Users/zhangjing/Projects/example.com/dist;

    location / {
        index index.html;
    }

    location /backend/ {
        proxy_pass http://127.0.0.1:8080;
    }
}

在這里,/被指向了dist目錄,提供前端服務(wù),/backend被反向代理到本機(jī)的8080端口,提供后端服務(wù)。只有這樣做才能正確地分離開(kāi)前后端,否則把前后端混在一起是沒(méi)有辦法提供服務(wù)的。

2018年6月26日 20:59