nginx后端服务器可以是(外部)互联网服务器吗?
Posted
技术标签:
【中文标题】nginx后端服务器可以是(外部)互联网服务器吗?【英文标题】:can nginx backend server be (external) internet server? 【发布时间】:2017-05-28 16:16:24 【问题描述】:我想使用 nginx 设置代理。我想使用互联网上的远程服务器作为我的后端服务器,这对于 Nginx 是否可行?
即客户端和后端服务器都在互联网上。
我的配置有点像以下:
server
listen 443 ssl;
server_name localhost;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /
proxy_pass http://www.google.com;
#Proxy Settings
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
【问题讨论】:
【参考方案1】:当然
upstream your-domain.de
## network
server 8.8.8.8:80;
server
server_name your-domain2.de;
listen 80 ;
location /
proxy_pass http://your-domain.de;
你可以用正确的参数做各种各样的事情,比如忽略 cors 等,但这是基线
【讨论】:
我已经按照您在此处键入的内容进行了配置,但结果是流量没有通过代理,只有我的浏览器获得重定向到后端服务器的 URI(这意味着我的浏览器正在直接访问后端服务器通过我的互联网连接,这是我想要得到的方式) 我使用 Fiddler 来观察请求发生了什么。居然有 Nginx 发出 http 302 将我的浏览器重定向到后端服务器,这是怎么回事? 我确定我配置了“proxy_redirect off;” 奇怪,我认为 nginx 本身并没有这样做(不能只是假设客户端可以访问网络)这篇文章可能会有所帮助。它表明 nginx 只是从您的后端为 302 提供服务。 ***.com/questions/20254456/… 还是谢谢你。最后我发现这可能是后端服务器的一个技巧,它通过 nginx 提供 302 服务(而 niginx 正在忠实地工作),因为我没有注意到它。以上是关于nginx后端服务器可以是(外部)互联网服务器吗?的主要内容,如果未能解决你的问题,请参考以下文章
nginx 可以用作后端 websocket 服务器的反向代理吗?
客户端发送请求, java后端有耗时任务,web服务器如nginx返回服务端超时信息,会中断后端请求处理吗