我已经在服务器上启动并运行了一个Spring Boot + MVC应用程序,它绑定到http://localhost:8000。
http://localhost:8000
有一个nginx代理(或者是反向代理,不确定名称)在端口80和443上侦听外界。根(/)可以正确解析,但是其下的任何内容都无法解析并导致404错误(/ someControllerName / action,/ images / ,/ css / )。
我将其作为配置:
upstream jetty { server localhost:8000; } server { listen 80; server_name domain.com; return 301 http://www.domain.com$request_uri; } server { listen 443; server_name domain.com; ssl_certificate /etc/nginx/ssl/ssl.crt; ssl_certificate_key /etc/nginx/ssl/ssl.key; return 301 https://www.domain.com$request_uri; } server { listen 80 default_server; listen 443 ssl; root /usr/share/nginx/html; index index.html index.htm; server_name www.domain.com localhost; #ssl on; ssl_certificate /etc/nginx/ssl/ssl-unified.crt; ssl_certificate_key /etc/nginx/ssl/ssl.key; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules proxy_pass $scheme://jetty/$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; try_files $uri $uri/ =404; } }
很感谢任何形式的帮助。
您无法proxy_pass以try_files尝试的方式与之结合。正如配置中的注释所描述的那样,该try_files指令使nginx查找与URI匹配的文件,然后寻找与URI匹配的目录。如果找不到,它将以404响应。您可以try_files在nginx文档中了解更多信息。
proxy_pass
try_files
从您的问题尚不清楚您是否需要使用它try_files,因此修复配置的最简单方法是删除该try_files行。