Apakah permintaan dan langkah berjaga-jaga axios proksi Nginx?

WBOY
Lepaskan: 2023-05-15 17:43:06
ke hadapan
1057 orang telah melayarinya

1. Maklumat konfigurasi nginx.conf

Memandangkan nginx.conf mempunyai banyak maklumat konfigurasi, artikel ini hanya memfokuskan pada tetapan permintaan sumber statik dan aksios, dan akan juga meliputi biasa Nota beberapa item konfigurasi. Tetapan khusus adalah seperti berikut:

# 设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
 #连接超时时间
 keepalive_timeout 120;
 
 #gzip压缩开关及相关配置
 gzip on;
 gzip_min_length 1k;
 gzip_buffers  4 32k;
 gzip_http_version 1.1;
 gzip_comp_level 2;
 gzip_types  text/plain application/x-javascript text/css application/xml;
 gzip_vary on;
 gzip_disable "msie [1-6].";

 #设定实际的服务器列表 
 upstream zp_server{
 server 127.0.0.1:8089;
 }
 
 #http服务器 
 server {
 #监听80端口
 listen 80
 
 #定义服务名称
 server_name localthost;
 
 #首页
 index index.html
 
 #指向项目根目录
 root d:\project\src\main\webapp;
 
 #编码格式
 charset utf-8;
 
 #代理的路径(和upstream绑定),location 后面设置映射的路径
 location / {
  #代理配置参数
  proxy_connect_timeout 180;
  proxy_send_timeout 180;
  proxy_read_timeout 180;
  proxy_set_header host $host;
  proxy_set_header x-forwarder-for $remote_addr;
  proxy_pass http://zp_server/;
  
  #跨域相关设置
  add_header 'access-control-allow-origin' '*' always;
  add_header 'access-control-allow-credentials' 'true';
  add_header 'access-control-allow-headers' 'origin, x-requested-with, content-type, accept' always;
  }
  
  #配置静态资源 解决js css文件无法加载无法访问的问题,注意末尾不能有 /
  location ~ .*\.(js|css|jpg|png)$ {
  proxy_pass http://zp_server;
  } 
 }
}
Salin selepas log masuk

2 Masalah slash proxy_pass

nginx membahagikan proxy_pass kepada dua jenis:

    <. 🎜>
  • Satu jenis hanya mengandungi nombor IP dan port (bukan / selepas port, jadi beri perhatian khusus di sini), seperti proxy_pass http://localhost:8080 Kaedah ini dipanggil kaedah tanpa uri;

  • Yang satu lagi mempunyai laluan lain selepas nombor port, termasuk yang hanya mempunyai satu /, seperti proxy_pass http://localhost:8080/, dan laluan lain, seperti proxy_pass http ://localhost:8080/abc.

2.1 Untuk kaedah tanpa uri

Untuk kaedah tanpa uri, nginx akan mengekalkan bahagian laluan di lokasi, contohnya :

location /api1/ {
 proxy_pass http://localhost:8080;
}
Salin selepas log masuk

Apabila mengakses http://localhost/api1/xxx, ia akan menjadi proksi kepada http://localhost:8080/api1/xxx

2.2 Untuk kaedah uri

Untuk kaedah uri, nginx akan menggunakan kaedah penggantian seperti alias untuk menggantikan url, dan penggantian ini hanyalah penggantian literal, seperti:

location /api2/ {
 proxy_pass http://localhost:8080/;
}
Salin selepas log masuk

Apabila mengakses http Apabila ://localhost/api2/xxx, http://localhost/api2/ (perhatikan / pada penghujung) digantikan dengan http://localhost:8080/, dan kemudian baki xxx ditambah, jadi ia menjadi http://localhost:8080/xxx.

2.3 Ringkasan

server {
 listen    80;
 server_name localhost;

 location /api1/ {
  proxy_pass http://localhost:8080;
 }
 # http://localhost/api1/xxx -> http://localhost:8080/api1/xxx


 location /api2/ {
  proxy_pass http://localhost:8080/;
 }
 # http://localhost/api2/xxx -> http://localhost:8080/xxx


 location /api3 {
  proxy_pass http://localhost:8080;
 }
 # http://localhost/api3/xxx -> http://localhost:8080/api3/xxx


 location /api4 {
  proxy_pass http://localhost:8080/;
 }
 # http://localhost/api4/xxx -> http://localhost:8080//xxx,请注意这里的双斜线,好好分析一下。


 location /api5/ {
  proxy_pass http://localhost:8080/haha;
 }
 # http://localhost/api5/xxx -> http://localhost:8080/hahaxxx,请注意这里的haha和xxx之间没有斜杠,分析一下原因。

 location /api6/ {
  proxy_pass http://localhost:8080/haha/;
 }
 # http://localhost/api6/xxx -> http://localhost:8080/haha/xxx

 location /api7 {
  proxy_pass http://localhost:8080/haha;
 }
 # http://localhost/api7/xxx -> http://localhost:8080/haha/xxx

 location /api8 {
  proxy_pass http://localhost:8080/haha/;
 }
 # http://localhost/api8/xxx -> http://localhost:8080/haha//xxx,请注意这里的双斜杠。
}
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah permintaan dan langkah berjaga-jaga axios proksi 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!