使用nginx以后静态文件被直接访问了,想让请求经过java后端处理,怎么配置?某些静态文件需要登陆以后才给访问的

时间:2021-01-02 11:52:33
使用nginx以后静态文件被直接访问了,想让请求经过java后端处理,怎么配置?某些静态文件需要登陆以后才给访问的,在线等,谢谢。下面是我个配置

server
{
        listen       9090;
        server_name  101.71.11.194
        index  index.jsp  index.html index.htm;
        error_log   /home/weblogs/error/home.p2puser.com_error.log crit;
        access_log  /home/weblogs/access/home.p2puser.com_access.log  access;
        #root /home/www/home.p2puser.com;

        rewrite ^(.*)\;(.*)$ $1 last;
rewrite avatar/(.*).jpg /imgurl.action?userId=$1 last;
        location ~ \.(do|html|action|tpl|eot|svg|page|woff|ttf|jpg|png|gif|swf|jsp)$ {
                proxy_pass http://localhost:9600;
                proxy_redirect off;
                proxy_set_header HOST $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }


        location  ~* \.(css|js|json)$ {

                root /home/www/home.p2puser.com;
                expires    10d;
        }

location  ~* /data/upfiles {
root /home/www/home.p2puser.com;
}

        location ~* \.(html|gif|jpg|jpeg|png|bmp|swf|ico|flv|mp3|wav|wmv)$  {
                root /home/www/home.p2puser.com;
                expires      15d;
                access_log   off;
        }
}

6 个解决方案

#1


貌似不是nginx的问题,而是程序应该加过滤器

#2


需要session的页面就别用ng直接访问了

所有可以直接访问的页面放在一个公有的子目录下,如:  http://127.0.0.1:port/static/xxx.html

反向代理配置的时候,根据  /static/ 做映射

其它的转到应用服务器处理

#3


需要session的页面就别用ng直接访问了

所有可以直接访问的页面放在一个公有的子目录下,如:  http://127.0.0.1:port/static/xxx.html

反向代理配置的时候,根据  /static/ 做映射

其它的转到应用服务器处理

#4


/data/upfiles上的静态文件是需要session的,要怎么配置呢,现在里面的文件直接被访问了,没有经过tomcat 

location  ~* /data/upfiles {
root /home/www/home.p2puser.com;
}

#5


/data/upfiles上的静态文件是需要session的,要怎么配置呢,现在里面的文件直接被访问了,没有经过tomcat 

location  ~* /data/upfiles {
root /home/www/home.p2puser.com;
}

#6


我意思是把需要session的页面文件部署到应用服务器里

你们前后台是分开开发的么?
需要session的页面内容是全静态的?假如这样的话,只能部署到应用里才有session的概念
假如这些页面和应用程序有交互,需要动态数据,就可以在取数据时加判断,然后前端转到登录页

#1


貌似不是nginx的问题,而是程序应该加过滤器

#2


需要session的页面就别用ng直接访问了

所有可以直接访问的页面放在一个公有的子目录下,如:  http://127.0.0.1:port/static/xxx.html

反向代理配置的时候,根据  /static/ 做映射

其它的转到应用服务器处理

#3


需要session的页面就别用ng直接访问了

所有可以直接访问的页面放在一个公有的子目录下,如:  http://127.0.0.1:port/static/xxx.html

反向代理配置的时候,根据  /static/ 做映射

其它的转到应用服务器处理

#4


/data/upfiles上的静态文件是需要session的,要怎么配置呢,现在里面的文件直接被访问了,没有经过tomcat 

location  ~* /data/upfiles {
root /home/www/home.p2puser.com;
}

#5


/data/upfiles上的静态文件是需要session的,要怎么配置呢,现在里面的文件直接被访问了,没有经过tomcat 

location  ~* /data/upfiles {
root /home/www/home.p2puser.com;
}

#6


我意思是把需要session的页面文件部署到应用服务器里

你们前后台是分开开发的么?
需要session的页面内容是全静态的?假如这样的话,只能部署到应用里才有session的概念
假如这些页面和应用程序有交互,需要动态数据,就可以在取数据时加判断,然后前端转到登录页