Nginx 反向代理 Tomcat 返回403错误

Nginx 反向代理 Tomcat 返回403错误


在配置Nginx反向代理Tomcat并实现后,有时通过代理的域名访问时,浏览器会返回403页面,这是由于进行配置时,niginx 没有读取其定义的静态文件的权限;

比如示例的 nginx.conf 部分配置如下:

upstream testapp {       
    server 127.0.0.1:8080;
}
server {
    listen 80;                      
    server_name www.assad.site;      

    root /tomcat/webapps/testapp;           
    index index.html index.htm index.jsp      
          
    location ~ \.(jsp|jspx|do|wsdl)$ {                
        proxy_pass http://testapp;          
        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;
        
    } 
    location ~ \.(html|htm|js|htm|png|gif|jpg|jpeg)$ {  
       root /tomcat/webapps/testapp;          
   }
  
}

该示例中 root 属性,location ~ \.(html|htm|js|htm|png|gif|jpg|jpeg) {  ... } 部分定义 Nginx 所要处理的静态页面的服务器路径,在示例中为 /tomcat/webapps/testapp

在nginx.conf 开头部分,有一句配置如下:

use www www

表明 nginx 强制使用 www 用户组的www用户;

此时我们可以检查 /tomcat/webapps/testapp 权限;

cd  /tomcat/webapps
ll

返回中说明testapp的信息部分:

drwxr-x---  5 root root 4096 Jul 31 20:40 testapp

说明 /tomcat/webapps/testapp 目录下的文件归宿 root root 用户;

此时我们更改 /tomcat/webapps/testapp 的用户归属:

 chown -R www www webapps


之后再通过域名访问,就会返回正常页面;





你可能感兴趣的:(Nginx)