2016-08-25 49 views
1

我构建了一个spring启动应用程序,因此我有一个app.war文件,其中包含一个嵌入式tomcat和我的应用程序本身。Nginx从春季启动战争中静态服务

这里是我的nginx的配置:

server { 
    listen 80; 
    server_name sub.domain.com; 

    location/{ 
      proxy_pass http://127.0.0.1:8090/index; 
    } 

    location ~* \.(js|jpg|png|css|html|gif|pdf)$ { 
      root /path/to/app/app.war 
      expires 30d; 
    } 
} 

该网站是在向上的sub.domain.com运行,但静态内容没有加载..

我怎样才能使这项工作?

+0

你需要让服务器知道的在哪里看,只是在你的'server_name'某处点你'root'。 ('root /path/to/sub.domain.com/html;')。这通常放在'/ var/www/....' – Darren

+0

我试着用path/to/app和path/to/app/app.war,都产生502坏的网关。 – nmpg

+0

什么是你的'/ var/log/nginx/error.log'? – Darren

回答

1

使它工作,很容易做到

server { 
    listen 80; 
    server_name sub.domain.com; 

    location/{ 
      proxy_pass http://domain.com:8090/; 
    } 

    location ~* \.(svg|js|jpg|png|css|html|gif|pdf)$ { 
      proxy_pass    $scheme://domain.com:8090/$request_uri; 
      proxy_redirect off; 
      proxy_set_header  X-Real-IP $remote_addr; 
      proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header  Host $http_host; 
      expires 30d; 
    } 
} 

希望它能帮助:)