在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

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

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

問題描述

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

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

在nginx中的root指向本地vue項目生成的dist文件,然后再location中將請求代理到tomcat的服務器端口,

相關代碼

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

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下

你期待的結果是什么?實際看到的錯誤信息又是什么?

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

回答
編輯回答
墨沫

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

舉例來說:

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目錄,提供前端服務,/backend被反向代理到本機的8080端口,提供后端服務。只有這樣做才能正確地分離開前后端,否則把前后端混在一起是沒有辦法提供服務的。

2018年6月26日 20:59