Nginx反向代理tomcat返回400 bad request
Nginx反向代理tomcat返回400 bad request
nginx 版本1.12, tomcat版本 9.06
最近用Nginx做反向代理tomcat,实现前后端分离,nginx 将请求代理到tomcat服务始终返回400 bad request,如果直接访问tomcat服务则一点问题没有(测试中,tomcat本身端口对外开放).
配置如下:
nginx.conf
#配置一个代理即tomcat1服务器
upstream tomcat_server1{
server localhost:8080;
} server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/MyXzmBlog;
charset utf-8;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; location ^~ /app/ {
#端口80的请求全部转发到tomcat_server1即tomcat1服务上
proxy_pass http://tomcat_server1;
proxy_http_version 1.1;
proxy_set_header Connection "";
# } error_page 404 /404.html;
location = /40x.html {
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
查看了tomcat访问日志:
1. 127.0.0.1 - - [15/Mar/2018:09:33:57 +0800] "GET /app/headlines HTTP/1.1" 400 1126
2. 221.232.135.233 - - [15/Mar/2018:09:34:16 +0800] "GET /app/homeCategory?id=4 HTTP/1.1" 200 10910
其中第一条是nginx反向代理的返回400,第二条是直接访问tomcat服务则正常.
一开始是怀疑tomcat配置引擎不支持本机地址访问,在服务器端用http命令行访问也无问题。
后来分析了tomcat错误原因:
The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
貌似nginx是访问请求格式问题。
尝试在代理请求头上加入该配置:
proxy_set_header Host $host; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
location / {
#端口80的请求全部转发到tomcat_server1即tomcat1服务上
proxy_pass http://tomcat_server1;
proxy_http_version 1.1;
proxy_set_header Host $host; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
}
访问ok,但是还是没弄清楚具体原因。
Nginx反向代理tomcat返回400 bad request的更多相关文章
- nginx反向代理tomcat访问时浏览器加载失败,出现 ERR_CONTENT_LENGTH_MISMATCH 问题
问题说明:测试机上部署了一套业务环境,nginx反向代理tomcat,在访问时长时间处于加载中,十分缓慢! 通过浏览器调试(F12键->Console),发现有错误ERR_CONTENT_LEN ...
- docker,构建nginx反向代理tomcat
Nginx实现负载均衡是通过配置nginx.conf来实现的,nginx.conf的全部内容如下: user nginx; worker_processes 1; error_log /var/log ...
- Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第九集之安装Tomcat+Nginx反向代理Tomcat集群】
1,安装Tomcat:和在windows下安装是一样的. 安装tomcat:上传后解压: tar -zxvf apache-tomcat-7.0.88.tar.gz -z:代表.gz格式的压缩包,-x ...
- Nginx反向代理+Tomcat+Springmvc获取用户访问ip
Nginx+Tomcat+Springmvc获取用户访问ip 1.Nginx反向代理 修改Nginx配置文件 location / { ***********之前代码*******; proxy_se ...
- nginx反向代理Tomcat/Jetty获取客户端IP地址
使用nginx做反向代理,Tomcat服务器和Jetty服务器如何获取客户端真实IP地址呢?首先nginx需要配置proxy_set_header,这样JSP使用request.getHeader(& ...
- Nginx反向代理Tomcat静态资源无法加载以及请求链接错误
在使用Nginx实现Tomcat的负载均衡的时候,项目发布到了Tomcat,Nginx也配置好了, 当访问的时候发现了与预期不符 表现为: 静态资源加载失败 链接跳转地址错误 下面是我错误的配置文件 ...
- 手动部署LNMT(Nginx+Tomcat)并实现Nginx反向代理Tomcat
一.什么是Tomcat? 在弄清楚Tomcat之前要先了解什么是J2EE:从整体上讲,J2EE 是使用 Java 技术开发企业级应用的工业标准,它是 Java 技术不断适应和促进企业级应用过程中的产物 ...
- nginx反向代理+tomcat域名绑定
今天在用nginx做反向代理时,由于一个tomcat下有多个应用,因此要在tomcat做域名绑定.tomcat启动后,通过域名+端口是可以访问到页面的,但是通过nginx转发后就不能访问了,因此tom ...
- Docker Compose一键部署Nginx反向代理Tomcat集群
目录结构如下 mysql/conf/my.cnf [mysqld] user=mysql port=3306 datadir=/var/lib/mysql socket=/var/lib/mysql/ ...
随机推荐
- Idea搭建servlet开发过程
Idea搭建servlet开发过程 https://www.cnblogs.com/javabg/p/7976977.html (1) 安装idea,jdk,tomcat:设置好环境变量: (2 ...
- gevent-协程用法
文章介绍了一种采用循环的方式生产协程列表,并可以向协程函数传递参数... # 协程引用import gevent from gevent import monkey, pool monkey.patc ...
- (17)线程队列---queue LifoQueue PriorityQueue
线程常用队列有: queue LifoQueue PriorityQueue 语法: 大致和进程队列语法一致 put 往队列当中放值,超过队列长度,直接加阻塞 get 如果获取不到加阻塞 put_no ...
- SQL Server数据归档的解决方案
SQL Server数据归档的解决方案 最近新接到的一项工作是把SQL Server中保存了四五年的陈年数据(合同,付款,报销等等单据)进行归档,原因是每天的数据增量很大,而历史数据又不经常使用, ...
- gii的使用
假设有表link 在backend中生成子模块content 生成子模块模型common/models/Link 生成模块content中的crud 配置别名 在backend/config/main ...
- Systemd程序及相关命令
Systemd程序及相关命令 Systemd是一款用于Linux操作系统系统管理和服务管理的工具.它向后兼容SysV init脚本,并且支持许多类似于startup系统服务的功能,比如系统快照(sna ...
- 『计算机视觉』Mask-RCNN_从服装关键点检测看KeyPoints分支
下图Github地址:Mask_RCNN Mask_RCNN_KeyPoints『计算机视觉』Mask-RCNN_论文学习『计算机视觉』Mask-RCNN_项目文档翻译『计算机视觉』Mas ...
- hdu6129 Just Do It!
多校时找规律做过... 题意,给你一个数列a[1], a[2], a[3], a[4], ... , a[n],操作一次后变为a[1], a[1] ^ a[2], a[1] ^ a[2] ^ a[3] ...
- 皮质学习 HTM 知多少
目录 Hierarchical Temporal Memeory 0.1 引言 历史 HTM 概览 HTM的层级结构 神经元 HTM 端对端应用框架[^8] 数据编码[^1] 数据编码 数据输入 树突 ...
- 词向量编码 word2vec
word2vec word2vec 是Mikolov 在Bengio Neural Network Language Model(NNLM)的基础上构建的一种高效的词向量训练方法. 词向量 词向量(w ...