浏览 423
nginx部署在windows server中,做了反向代理。配置如下
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
worker_rlimit_nofile 65000;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
charset UTF-8;
server_names_hash_bucket_size 128;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 120;
# gzip压缩功能设置
# gzip on;
# http_proxy 设置
lingering_timeout 600s;
send_timeout 600s;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
client_header_timeout 60;
client_body_timeout 60;
client_header_buffer_size 1M;
large_client_header_buffers 8 1M;
client_max_body_size 1024M;
client_body_buffer_size 10M;
# proxy header
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Cookie $http_cookie;
server {
listen 80;
server_name my.domain.com;
add_header Cache-Control no-cache;
# 首页
location / {
root html/home;
error_page 500 502 503 504 404 403 /error.html;
client_max_body_size 1024m ;
}
}
# 单点
location /sso/ {
proxy_pass http://127.0.0.1:7001/sso/;
}
location /um/ {
proxy_pass http://127.0.0.1:8080/um/;
}
location /pm/ {
proxy_pass http://127.0.0.1:8080/pm/;
proxy_buffering off;
proxy_buffer_size 4k;
proxy_buffers 8 1M;
proxy_busy_buffers_size 2M;
proxy_temp_file_write_size 2M;
proxy_temp_path temp/proxy_temp 1 2;
limit_rate_after 30m;
limit_rate 700k; #这里根据需要设置,意思是视频缓冲30M之后,限速为700k/s
}
error_page 500 502 503 504 404 403 /error.html;
location = /error.html {
# 放错误页面的目录路径。
root html;
client_max_body_size 1024m;
}
}
}
但是在PM应用中上传大于10M的文件时(使用jquery+ajax+java技术栈),总是提示ERR_CONNECTION_RESET失败,查看nginx的access日志中都没有上传文件的请求的记录。
对于小于10M的文件,一切都没问题。
通过wireshark抓包分析,报错如下:
2156 61.473231 10.80.90.216 dstip HTTP 1402 POST /pm/fileupload?type=0 HTTP/1.1
2157 61.473323 10.80.90.216 dstip HTTP 1514 Continuation
2157 61.473323 10.80.90.216 dstip HTTP 1514 Continuation
。。。。。这里是多条Continuation的包信息。。。。
2238 61.559356 10.80.90.216 dstip HTTP 1514 [TCP Window Full] Continuation
2243 61.918391 10.80.90.216 dstip HTTP 55 [TCP ZeroWindowProbe] Continuation
分析是底层TCP的问题,但是不知道如何解决。有遇到过该问题的大神,还往不吝赐教!
按点赞数排序
按时间排序
感谢陶辉老师详细的回复。 那就是对于HTTP1.0和HTTP1.1,具体使用哪个版本是服务器决定的。客户端没有选择的权力,极端的情况下如果浏览器不支持http1.0,那么就没有办法和服务器进行通信了?
可以配置upstream keepalive 参数,需要配合 keepalive_timeout,keepalive_requests