标签:nginx proxy_pass
proxy_pass# 在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种) 这种。
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_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
标签:nginx proxy_pass
原文地址:http://blog.51cto.com/duanyifei/2050471