Maison  >  Article  >  Opération et maintenance  >  Que sont les requêtes et précautions du proxy Nginx axios ?

Que sont les requêtes et précautions du proxy Nginx axios ?

WBOY
WBOYavant
2023-05-15 17:43:061061parcourir

1. Informations de configuration de nginx.conf

Étant donné que nginx.conf contient de nombreuses informations de configuration, cet article se concentre uniquement sur les paramètres axios et de demande de ressources statiques, et note également certains éléments de configuration courants. Les paramètres spécifiques sont les suivants :

# 设定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;
  } 
 }
}

2. Le problème de barre oblique de proxy_pass

nginx divise proxy_pass en deux types :

  • L'un contient uniquement l'adresse IP et le numéro de port (le / après le port est également inclus ) Non, une attention particulière doit être portée ici), comme proxy_pass http://localhost:8080, cette méthode est appelée méthode sans uri

  • L'autre a d'autres chemins après le numéro de port, dont un seul ; / , tel que proxy_pass http://localhost:8080/, et d'autres chemins, tels que proxy_pass http://localhost:8080/abc.

2.1 Pour la méthode sans uri

Pour la méthode sans uri, nginx conservera la partie chemin à l'emplacement, tel que :

location /api1/ {
 proxy_pass http://localhost:8080;
}

Lors de l'accès à http://localhost/api1/xxx, il va proxy Allez sur http://localhost:8080/api1/xxx

2.2 Pour la méthode uri

Pour la méthode uri, nginx utilisera des méthodes de substitution telles que l'alias pour remplacer l'url, et cette substitution est uniquement Remplacement littéral, par exemple :

location /api2/ {
 proxy_pass http://localhost:8080/;
}

Lors de l'accès à http://localhost/api2/xxx, http://localhost/api2/ (notez le / à la fin) est remplacé par http://localhost:8080/, et puis ajouté. Le xxx restant est téléchargé, il devient donc http://localhost:8080/xxx.

Résumé 2.3

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,请注意这里的双斜杠。
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer