Rumah >Operasi dan penyelenggaraan >Nginx >Bagaimana untuk menyelesaikan masalah silang domain nginx

Bagaimana untuk menyelesaikan masalah silang domain nginx

WBOY
WBOYke hadapan
2023-05-13 23:43:045395semak imbas

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

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/;# 代理接口地址

  }

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/;# 代理接口地址
}

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);
});

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam