使用Nginx进行反向代理,在分发请求发现,不安全字符在nginx里没有被转义,秋解决办法
配置如下
worker_processes 2;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
rewrite_log on;
sendfile on;
keepalive_timeout 65;
server {
listen 99;
server_name server8.example.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 1024m;
client_header_buffer_size 16m;
large_client_header_buffers 4 64m;
location / {
proxy_pass http://127.0.0.1:8080/;
#set $kas "%7C"; 这样强制赋值成转义编码,但是转发出去的时候被还原成|
#rewrite ^/http://(.*)[|](.*)[|](.*) http://$1$kas$2$kas$3 break;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话: