Maison > Questions et réponses > le corps du texte
Le serveur d'applications (Tomcat) et le serveur proxy (Nginx) se trouvent sur des serveurs différents, et le serveur d'applications ne peut pas accéder directement au réseau externe. Les requêtes HTTP pour accéder au réseau externe ne peuvent être envoyées que via Nginx正向代理
.
apache.http.client
/** 正向代理地址 */
private static HttpHost forwardProxy = new HttpHost(host, forwardPort, forwardSchema);
HttpClientBuilder builder = HttpClients.custom().setDefaultRequestConfig(globalConfig).setKeepAliveStrategy(keepAliveStrat);
if (isForward) {
builder.setProxy(forwardProxy);
}
this.httpClient = builder.build();
server {
listen 8092;
location / {
# 配置 DNS 解析 IP 地址,以及超时时间,
resolver 219.149.6.99 114.114.114.114;
resolver_timeout 30s;
proxy_pass $scheme://$host$request_uri;
# proxy_set_header 部分的配置,是为了解决如果 URL 中带 "."(点)后 Nginx 503 错误
proxy_set_header Host $http_host;
# 配置缓存大小,关闭磁盘缓存读写减少I/O,以及代理连接超时时间
proxy_buffers 4 256k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;
# 配置代理服务器 Http 状态缓存时间
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
}
access_log logs/proxy-$host-aceess.log main;
error_log logs/proxy-$host-error.log;
}
La méthode ci-dessus est correcte. HTTPS
请求貌似不起作用,不用回复Nginx就是不支持正向代理HTTPS,我只想评估这种场景的解决方案
天蓬老师2017-05-16 17:10:50
Votre proxy ici est $scheme://$host$request_uri ; Pourquoi avez-vous besoin d'utiliser une variable du serveur sur lequel nginx se trouve ? Cela semble très étrange ici ?