分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

Ngx_http_proxy_module

发布时间:2023-09-06 01:30责任编辑:郭大石关键词:http
proxy_pass

proxy_pass后的url加不加/的区别

# 在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;# 如果没有/,则会把匹配的路径部分也给代理走。下面四种情况分别用http://192.168.1.4/proxy/test.html 进行访问。第一种:location  /proxy/ {          proxy_pass http://127.0.0.1:81/;}会被代理到http://127.0.0.1:81/test.html 这个url第二:(相对于第一种,最后少一个 /)location  /proxy/ {          proxy_pass http://127.0.0.1:81;}会被代理到http://127.0.0.1:81/proxy/test.html 这个url第三种:location  /proxy/ {          proxy_pass http://127.0.0.1:81/ftlynx/;}会被代理到http://127.0.0.1:81/ftlynx/test.html 这个url。第四种情况(相对于第三种,最后少一个 / ):location  /proxy/ {          proxy_pass http://127.0.0.1:81/ftlynx;}会被代理到http://127.0.0.1:81/ftlynxtest.html 这个url 从结果可以看出,应该说分为两种情况才正确。即http://127.0.0.1:81 (上面的第二种) 这种和 http://127.0.0.1:81/.... (上面的第1,3,4种) 这种。

proxy_pass实现伪源功能

server {        listen          80;        server_name     www.dyf.com;        location /image {            root            /data/www/;                     #首先读取本地路径资源;            error_page      404 = /fetch$uri;               #当返回404,实现内部跳转;        }        location /fetch {            alias           /data/www/;                     #获取后本地保存的路径            proxy_pass      http://www.source.com:80/;      #pass指向的server,注意不加‘/’会将匹配路径也追加;            proxy_store     on;            proxy_store_access user:rw group:rw all:rw;     #本地路径需要开启权限        }    }# proxy_pass 给出 # proxy_pass 只要执行就会走后端服务器,无论本地有无资源,所以先要进行本地判断;# 当404时走proxy_pass# 保存文件的修改时间根据接收到的“Last-Modified”响应头来设置。响应都是先写到临时文件,然后进行重命名来生成的。从0.8.9版本开始,临时文件和持久化存储可以放在不同的文件系统,但是需要注意这时文件执行的是在两个文件系统间拷贝操作,而不是廉价的重命名操作。因此建议保存文件的路径和proxy_temp_path指令设置的临时文件的路径在同一个文件系统中。# 由于先写进proxy_temp_file,针对不完整文件可删除,实现不完整数据不保存;# 两个文件系统之间的copy,最好设置proxy_temp_path & save_path 为统一路径;# 统一文件系统 -- rename# 不同文件系统 -- copy

proxy_connect_variables

  • proxy_connect_timeout 60s;ngx 与 proxy_server 连接超时时间,不能超过75s;

  • proxy_read_timeout 60s;与proxy_server读超时时间,决定ngx 等待多长时间去获得 proxy_server 请求响应不是获取整个response,而是两次reading操作的时间.

  • proxy_send_timeout 60s;ngx 给 proxy_server 发送请求的超时时间;不是整个发送时间,而是两次write时间;超时后仍然没有收到数据,连接关闭。

  • ngx & proxy 建立连接 -- connect_timeout

  • ngx --> proxy 发送请求 -- send_timeout

  • ngx <-- proxy 等待响应 -- read_timeout

Ngx_http_proxy_module

原文地址:http://blog.51cto.com/duanyifei/2050471

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved