Bagaimana untuk menyelesaikan masalah silang domain nginx

WBOY
Lepaskan: 2023-05-13 23:43:04
ke hadapan
5345 orang telah melayarinya

Asingkan bahagian hadapan dan bahagian belakang, gunakan nginx untuk menyelesaikan masalah merentas domain

Halaman hadapan: vue.js+nodejs+webpack

Bandar belakang: springboot

Pelayan proksi terbalik: nginx

Idea: Bungkus kod bahagian hadapan, biarkan nginx menghala ke sumber statik dan nginx memajukan permintaan latar belakang.

1. Pakej kod bahagian hadapan:

npm run build
Salin selepas log masuk

akan menjana folder dist. Mengandungi fail index.html dan folder statik Ambil laluan setempat saya sebagai contoh:

/users/xxx/ideaprojects/webtest/dist

2. Buka

nginx.conf dalam direktori /usr/local/etc/nginx, tambahkan yang berikut pada pelayan:

listen  80; #原为8080,避免冲突,更改为80

  server_name localhost;

 

  #charset koi8-r;

 

  #access_log logs/host.access.log main;

 

 

  location / {

   root /users/xxx/ideaprojects/webtest/dist;

   index index.html;

    

   # 此处用于处理 vue、angular、react 使用h5 的 history时 重写的问题

   if (!-e $request_filename) {

    rewrite ^(.*) /index.html last;

    break;

   }

  }

 

 

  # 代理服务端接口

  location /api/ {

   proxy_pass http://localhost:8080/;# 代理接口地址

  }
Salin selepas log masuk

Ujian

Halaman hadapan menghantar permintaan : http://localhost/test, vue-router mengalihkannya ke http://localhost/api/demo/1, dan akses sebenar ialah http://localhost:8080/demo/1.

Hantar permintaan terus ke latar belakang: lawati http://localhost/api/demo/1, akses sebenar ialah: http://localhost:8080/demo/1

Berfikir tentang pengembangan kandungan:

1).
# Antara muka pelayan proksi

location /api/ {
proxy_pass http://localhost:8080/;# 代理接口地址
}
Salin selepas log masuk

Alamat antara muka proksi hanya mencapai 8080, kemudian ia akan menambah nama secara automatik projek bahagian belakang? ? ? Sebagai contoh, antara muka ialah http://148.70.110.87:8080/nama projek/nama kaedah. . .

2).js diminta seperti ini nginx dikonfigurasikan mengikut anda di atas, tetapi ralat permintaan ialah http://148.70.110.87/api/index2 404 (tidak dijumpai)

axios.post('/api/index2')
.then( (response) =>{
console.log(response);
})
.catch( (error)=> {
console.log(error);
});
Salin selepas log masuk

3). Langkah ketiga ialah menguji saya benar-benar tidak dapat memahaminya

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah silang domain nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan