RT
因为最近想学习一下Nginx服务器,就想搭建一个Tomcat+Nginx,简单的实现动静分离的功能。
Ubuntu:ubuntu-16.04-desktop-amd64
JDK:jdk1.8.0_101
Tomcat:apache-tomcat-8.5.4
Nginx:nginx/1.10.0
ubuntu ip:192.168.182.129
upstream tomcat {
server 192.168.182.129:8080;
}
server {
listen 80 default_server;
listen [::]:80 ;
root /opt/apache-tomcat-8.5.4/webapps/springmvc;
#server_name _;
server_name test.nt.springmvc.com;
location /{
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_pass http://tomcat;
try_files $uri $uri/ =404;
}
}
通过Tomcat,请求url:http://test.nt.springmvc.com:...
通过Nginx,请求url:http://test.nt.springmvc.com/
通过Nginx,请求url:http://test.nt.springmvc.com/...
通过Nginx,请求url:http://test.nt.springmvc.com/...
192.168.182.129 - - [28/Jul/2016:15:11:36 +0800] "GET /springmvc/test/ HTTP/1.1" 200 106
192.168.182.129 - - [28/Jul/2016:15:12:40 +0800] "GET / HTTP/1.0" 404 -
192.168.182.129 - - [28/Jul/2016:15:13:05 +0800] "GET /springmvc HTTP/1.0" 302 -
192.168.182.129 - - [28/Jul/2016:15:13:05 +0800] "GET /springmvc/ HTTP/1.0" 404 990
192.168.182.129 - - [28/Jul/2016:15:12:40 +0800] "GET / HTTP/1.1" 404 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
192.168.182.129 - - [28/Jul/2016:15:13:05 +0800] "GET /springmvc HTTP/1.1" 302 5 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
192.168.182.129 - - [28/Jul/2016:15:13:05 +0800] "GET /springmvc/ HTTP/1.1" 404 441 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
192.168.182.129 - - [28/Jul/2016:15:13:37 +0800] "GET /springmvc/test HTTP/1.1" 404 152 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
通过日志可以看到,我第四次的请求并没有转发到Tomcat这里,找了网上好多文档,都没有发现是哪里出现的问题。下面是对应的网页



upstream tomcat {
server 192.168.182.129:8080;
}
server {
listen 80 default_server;
listen [::]:80 ;
root /opt/apache-tomcat-8.5.4/webapps/springmvc;
server_name test.nt.springmvc.com;
location / {
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_pass http://tomcat;
#try_files $uri $uri/ =404;
}
}
可以看到在nginx的配置文件中,将try_files $uri $uri/ =404注解掉就可以正常访问了
nginx上try_files 判断文件是否存在
指的是请求的文件和路径,不包括“?”或者“#”之后的东西
$request_uri: /stat.php?id=1585378&web_id=1585378
$uri /stat.php
$document_uri: /stat.php
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
光阴似箭催人老,日月如移越少年。