美文网首页
Springboot项目使用Nginx时访问不到静态文件

Springboot项目使用Nginx时访问不到静态文件

作者: Pecksniff1994 | 来源:发表于2021-03-30 16:32 被阅读0次
    原先的配置文件

    nginx.conf

    user  www www;
    worker_processes auto;
    error_log  /www/wwwlogs/nginx_error.log  crit;
    pid        /www/server/nginx/logs/nginx.pid;
    worker_rlimit_nofile 51200;
    
    events
        {
            use epoll;
            worker_connections 51200;
            multi_accept on;
        }
    
    http
        {
            include       mime.types;
            #include luawaf.conf;
    
            include proxy.conf;
    
            default_type  application/octet-stream;
    
            server_names_hash_bucket_size 512;
            client_header_buffer_size 32k;
            large_client_header_buffers 4 32k;
            client_max_body_size 50m;
    
            sendfile   on;
            tcp_nopush on;
    
            keepalive_timeout 60;
    
            tcp_nodelay on;
    
            fastcgi_connect_timeout 300;
            fastcgi_send_timeout 300;
            fastcgi_read_timeout 300;
            fastcgi_buffer_size 64k;
            fastcgi_buffers 4 64k;
            fastcgi_busy_buffers_size 128k;
            fastcgi_temp_file_write_size 256k;
            fastcgi_intercept_errors on;
    
            gzip on;
            gzip_min_length  1k;
            gzip_buffers     4 16k;
            gzip_http_version 1.1;
            gzip_comp_level 2;
            gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
            gzip_vary on;
            gzip_proxied   expired no-cache no-store private auth;
            gzip_disable   "MSIE [1-6]\.";
    
            limit_conn_zone $binary_remote_addr zone=perip:10m;
            limit_conn_zone $server_name zone=perserver:10m;
    
            server_tokens off;
            access_log off;
    
    server
        {
            listen 888;
            server_name phpmyadmin;
            index index.html index.htm index.php;
            root  /www/server/phpmyadmin;
    
            #error_page   404   /404.html;
            include enable-php.conf;
    
            location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
            {
                expires      30d;
            }
    
            location ~ .*\.(js|css)?$
            {
                expires      12h;
            }
    
            location ~ /\.
            {
                deny all;
            }
    
            access_log  /www/wwwlogs/access.log;
        }
    include /www/server/panel/vhost/nginx/*.conf;
    }
    
    

    hbs.wsyao.com.conf

    server
    {
        listen 80;
        server_name hbs.wsyao.com;
        index index.php index.html index.htm default.php default.htm default.html;
        root /www/wwwroot/hbs.wsyao.com/;
       
        #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
        #error_page 404/404.html;
        #SSL-END
        
        #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
        #error_page 404 /404.html;
        #error_page 502 /502.html;
        #ERROR-PAGE-END
        
        #PHP-INFO-START  PHP引用配置,可以注释或修改
        include enable-php-73.conf;
        #PHP-INFO-END
        
        #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
        include /www/server/panel/vhost/rewrite/hbs.wsyao.com.conf;
        #REWRITE-END
        
        #禁止访问的文件或目录
        location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
        {
            return 404;
        }
        
        #一键申请SSL证书验证目录相关设置
        location ~ \.well-known{
            allow all;
        }
        
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
            error_log off;
            access_log /dev/null;
        }
        
        location ~ .*\.(js|css)?$
        {
            expires      12h;
            error_log off;
            access_log /dev/null; 
        }
        access_log  /www/wwwlogs/hbs.wsyao.com.log;
        error_log  /www/wwwlogs/hbs.wsyao.com.error.log;
    }
    
    

    添加代理地址后访问到配置的宝塔建站默认页

    image.png
    添加 proxy_pass http://localhost:8080/ 访问不到系统静态资源
    image.png image.png

    添加静态文件访问配置

    location / {
            #try_files $uri $uri:8080/ /index.html;
            proxy_pass http://localhost:8080/;
        }
        location ~ .* {
                proxy_pass http://localhost:8080/;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    
    image.png
    重启nginx报错nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in /www/server/panel/vhost/nginx/hbs.wsyao.com.conf:13
    server {
       listen       80;
       server_name  localhost;
       location /api1/ {
               proxy_pass http://localhost:8080;
            }
       # http://localhost/api1/xxx -> http://localhost:8080/api1/xxx
     
       location /api2/ {
               proxy_pass http://localhost:8080/;
            }
       # http://localhost/api2/xxx -> http://localhost:8080/xxx
     
       location /api3 {
               proxy_pass http://localhost:8080;
            }
       # http://localhost/api3/xxx -> http://localhost:8080/api3/xxx
     
       location /api4 {
               proxy_pass http://localhost:8080/;
            }
       # http://localhost/api4/xxx -> http://localhost:8080//xxx,请注意这里的双斜线,好好分析一下。
     
       location /api5/ {
               proxy_pass http://localhost:8080/haha;
            }
       # http://localhost/api5/xxx -> http://localhost:8080/hahaxxx,请注意这里的haha和xxx之间没有斜杠,分析一下原因。
     
       location /api6/ {
               proxy_pass http://localhost:8080/haha/;
            }
       # http://localhost/api6/xxx -> http://localhost:8080/haha/xxx
     
       location /api7 {
               proxy_pass http://localhost:8080/haha;
            }
       # http://localhost/api7/xxx -> http://localhost:8080/haha/xxx
     
       location /api8 {
               proxy_pass http://localhost:8080/haha/;
            }
      # http://localhost/api8/xxx -> http://localhost:8080/haha//xxx,请注意这里的双斜杠。
    }
    

    去掉proxy_pass http://localhost:8080/ 中最后的/重启nginx访问项目正常

    相关文章

      网友评论

          本文标题:Springboot项目使用Nginx时访问不到静态文件

          本文链接:https://www.haomeiwen.com/subject/pyrghltx.html