Macos TOMCAT前面的NGINX提供静态文件
我正在本地机器上使用Macos TOMCAT前面的NGINX提供静态文件,macos,tomcat,grails,nginx,Macos,Tomcat,Grails,Nginx,我正在本地机器上使用grails 2.2.2进行一个项目Mac OSX Lion 10.7.5我已经用brew安装了NGINX,并修改了NGINX.conf,如下所示: worker_processes 1; error_log logs/error.log info; events { worker_connections 1024; } http { include mime.types; default_type application/
grails 2.2.2
进行一个项目Mac OSX Lion 10.7.5
我已经用brew
安装了NGINX
,并修改了NGINX.conf
,如下所示:
worker_processes 1;
error_log logs/error.log info;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
sendfile on;
keepalive_timeout 65;
server {
listen 8081;
server_name localhost;
root /;
access_log /Users/lorenzo/grails/projects/logs/myproject_access.log;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8081;
}
#images folders
location /posters {
root /Users/lorenzo/grails/projects/posters/;
}
#images folders
location /avatars {
root /Users/lorenzo/grails/projects/avatars/;
}
#images folders
location /waveforms {
root /Users/lorenzo/grails/projects/waveforms/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
当我访问http://localhost:8081
我的网站正在运行,但我想确定图像是由nginx
提供的,而不是由tomcat
提供的,所以我查看了myproject\u access.log
,但什么都没有发生
ngnix
仅在tomcat
未运行时写入日志
有没有办法“监视”nginx提供的静态文件
多谢各位
编辑
Executing curl -I http://localhost:8081
当tomcat运行时,输出为:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1 //TOMCAT
...
HTTP/1.1 500 Internal Server Error
Server: nginx/1.4.1 //NGINX
Date: Tue, 08 Apr 2014 09:30:00 GMT
Content-Type: text/html
Content-Length: 192
Connection: keep-alive
当tomcat未运行时,输出为:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1 //TOMCAT
...
HTTP/1.1 500 Internal Server Error
Server: nginx/1.4.1 //NGINX
Date: Tue, 08 Apr 2014 09:30:00 GMT
Content-Type: text/html
Content-Length: 192
Connection: keep-alive
您的问题是,您要让两台服务器在同一个端口上侦听,您需要将tomcat移动到另一个端口,如8082
,并让nginx侦听主端口(在您的情况下是8081
),然后在请求不是映像(或任何资产)时告诉nginx代理8082
这里还有对服务器块的改进
server {
server_name localhost;
listen 8081;
root /Users/lorenzo/grails/projects;
location @tomcat {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8082;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
try_files $uri $uri/ @tomcat;
}
}
您的问题是,您要让两台服务器在同一个端口上侦听,您需要将tomcat移动到另一个端口,如8082
,并让nginx侦听主端口(在您的情况下是8081
),然后在请求不是映像(或任何资产)时告诉nginx代理8082
这里还有对服务器块的改进
server {
server_name localhost;
listen 8081;
root /Users/lorenzo/grails/projects;
location @tomcat {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8082;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
try_files $uri $uri/ @tomcat;
}
}
您的问题是,您要让两台服务器在同一个端口上侦听,您需要将tomcat移动到另一个端口,如8082
,并让nginx侦听主端口(在您的情况下是8081
),然后在请求不是映像(或任何资产)时告诉nginx代理8082
这里还有对服务器块的改进
server {
server_name localhost;
listen 8081;
root /Users/lorenzo/grails/projects;
location @tomcat {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8082;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
try_files $uri $uri/ @tomcat;
}
}
您的问题是,您要让两台服务器在同一个端口上侦听,您需要将tomcat移动到另一个端口,如8082
,并让nginx侦听主端口(在您的情况下是8081
),然后在请求不是映像(或任何资产)时告诉nginx代理8082
这里还有对服务器块的改进
server {
server_name localhost;
listen 8081;
root /Users/lorenzo/grails/projects;
location @tomcat {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8082;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
try_files $uri $uri/ @tomcat;
}
}
谢谢你的回答!我正在尝试你的解决方案,但仍然不完全明白到底发生了什么。。在我的浏览器上,我应该使用或8082吗?对不起,如果这是一个愚蠢的问题,但我有点不知所措。。我仍然不知道如何查看静态文件是否由nginx提供,或者tomcat8082将是tomcat服务器,8081将是nginx服务器,您将像现在一样正常编写8081,服务器将决定它是否是一个可以立即传递的请求,如图像、css文件或js文件,如果不是nginx,则会将请求传递给tomcat,等待tomcat回复,然后将回复传递给用户8081,指向nginx,将8082传递给tomcat,对于8082,它可以工作,但是对于8081,我得到错误500。如果您可以从错误日志中告诉我错误,它也会很有帮助。如果是错误,请尝试sudo nginx-t
,并将输出粘贴给我谢谢您的回答!我正在尝试你的解决方案,但仍然不完全明白到底发生了什么。。在我的浏览器上,我应该使用或8082吗?对不起,如果这是一个愚蠢的问题,但我有点不知所措。。我仍然不知道如何查看静态文件是否由nginx提供,或者tomcat8082将是tomcat服务器,8081将是nginx服务器,您将像现在一样正常编写8081,服务器将决定它是否是一个可以立即传递的请求,如图像、css文件或js文件,如果不是nginx,则会将请求传递给tomcat,等待tomcat回复,然后将回复传递给用户8081,指向nginx,将8082传递给tomcat,对于8082,它可以工作,但是对于8081,我得到错误500。如果您可以从错误日志中告诉我错误,它也会很有帮助。如果是错误,请尝试sudo nginx-t
,并将输出粘贴给我谢谢您的回答!我正在尝试你的解决方案,但仍然不完全明白到底发生了什么。。在我的浏览器上,我应该使用或8082吗?对不起,如果这是一个愚蠢的问题,但我有点不知所措。。我仍然不知道如何查看静态文件是否由nginx提供,或者tomcat8082将是tomcat服务器,8081将是nginx服务器,您将像现在一样正常编写8081,服务器将决定它是否是一个可以立即传递的请求,如图像、css文件或js文件,如果不是nginx,则会将请求传递给tomcat,等待tomcat回复,然后将回复传递给用户8081,指向nginx,将8082传递给tomcat,对于8082,它可以工作,但是对于8081,我得到错误500。如果您可以从错误日志中告诉我错误,它也会很有帮助。如果是错误,请尝试sudo nginx-t
,并将输出粘贴给我谢谢您的回答!我正在尝试你的解决方案,但仍然不完全明白到底发生了什么。。在我的浏览器上,我应该使用或8082吗?对不起,如果这是一个愚蠢的问题,但我有点不知所措。。我仍然不知道如何查看静态文件是否由nginx提供,或者tomcat8082将是tomcat服务器,8081将是nginx服务器,您将像现在一样正常编写8081,服务器将决定它是否是一个可以立即传递的请求,如图像、css文件或js文件,如果不是nginx,则会将请求传递给tomcat,等待tomcat回复,然后将回复传递给用户8081,指向nginx,将8082传递给tomcat,对于8082,它可以工作,但是对于8081,我得到了错误500。如果您可以从错误日志中告诉我错误,它也会很有帮助。如果是错误,请尝试sudo nginx-t
并粘贴输出