El servidor está usando Nginx. En
este caso, es posible usar image.gshop.com para obtener el archivo.
Solución:
server{
listen 80;
server_name api.gshop.com;
proxy_set_header X-Forworded-Host $host;
proxy_set_header X-Forworded-Server $host;
proxy_set_header X-Forworded-For $proxy_add_x_forwarded_for;
location /api/upload {
proxy_pass http://127.0.0.1:8084;
proxy_connect_timeout 600;
proxy_read_timeout 600;
rewrite:"^/api/(.*)" /$1 break;
}
location / {
proxy_pass http://127.0.0.1:8082;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
server{
listen 80;
server_name image.gshop.com;
proxy_set_header X-Forworded-Host $host;
proxy_set_header X-Forworded-Server $host;
proxy_set_header X-Forworded-For $proxy_add_x_forwarded_for;
location / {
root G:\\gshop\\image;
}
}
- Primero, la ruta de mapeo
/api/upload
y la siguiente ruta de mapeo es /, de acuerdo con el principio de coincidencia de ruta más larga, / api / upload tiene una prioridad más alta. En otras palabras, cualquier ruta que comience con / api / upload será procesada por la primera configuración. proxy_pass
: Proxy inverso, esta vez usamos el proxy al puerto 8084, que es el servicio de servicio de carga.rewrite
: Ruta de reescritura :- "^ / api /(.*)$" : la expresión regular que coincide con la ruta, utiliza la sintaxis de agrupación y trata
/api/
todas las partes posteriores como un grupo - / $ 1 : La ruta de destino reescrita. Aquí, $ 1 se usa para hacer referencia al grupo que coincide con la expresión regular anterior (el número de grupo comienza desde 1),
/api/
es decir, todo lo siguiente. De esta manera, la nueva ruta es eliminar/api/
todo excepto con/api
el propósito de eliminar el prefijo. - descanso : instrucción, hay 2 instrucciones de uso común, a saber: último, descanso
- último : una vez finalizada la ruta de reescritura, la ruta obtenida se volverá a hacer coincidir
- break : después de reescribir la ruta, la ruta no se volverá a hacer coincidir.
No puede elegir el último aquí, de lo contrario, se utilizará la nueva ruta ** / upload / image ** para hacer coincidir.
- "^ / api /(.*)$" : la expresión regular que coincide con la ruta, utiliza la sintaxis de agrupación y trata
-
- No coincidirá correctamente con el puerto 8082
Una vez completada la modificación, ingrese el nginx -s reload
comando para volver a cargar la configuración. Luego intente cargar de nuevo.
Una vez completada la modificación: aparece un código de estado de error en el archivo cargado 400
. 400 (Solicitud incorrecta) El servidor no comprende la sintaxis de la solicitud. Significa que no se encontró el tipo de archivo correspondiente.
private static final List<String> CONTENT_TYPE = Arrays.asList("image/jpeg", "image/png", "image/gif");