Nginx

瀏覽 nginx 網路伺服器時看不到文件。權限不對?

  • August 30, 2018

我正在使用帶有 nginx 1.12 的 centos 7 在本地託管 yum 儲存庫。當我嘗試通過瀏覽器瀏覽文件時,我可以看到文件夾,但裡面沒有文件。我想知道我是否可能沒有設置正確的權限或所有權。

這是我的設置: 我已經將所有額外的包、更新等同步到路徑中

/var/www/html/repos/centos/7/os/x86_64

權限如下所示:

ls -l /var/www
drwxrwx--x. 3 root nginx 19 Aug 30 09:12 html

ls -l /var/www/html
drwxr-xr-x. 4 root nginx 32 Aug 30 09:12 repos

ls -l /var/www/html/repos
drwxr-xr-x. 3 root nginx 15 Aug 30 09:12 centos

ls -l /var/www/html/repos/centos
drwxr-xr-x. 3 root nginx 45 Aug 30 09:12 7

ls -l /var/www/html/repos/centos/7
drwxr-xr-x. 3 root nginx 20 Aug 30 09:12 os
drwxr-xr-x. 3 root nginx 20 Aug 30 09:12 updates
drwxr-xr-x. 3 root nginx 20 Aug 30 09:12 extras

ls -l /var/www/html/repos/centos/7/os
drwxr-xr-x. 8 alexl alexl 237 Aug 30 09:12 x86_64

我正在嘗試通過瀏覽器訪問封包件夾,但沒有看到任何文件。權限是:

ls -l /var/www/html/repos/centos/7/os/x86_64 | grep Packages
drwxr-x-r-x. 2 alexl alexl 565248 Aug 1 18:02 Packages

文件夾內文件的權限:

ls -l /var/www/html/repos/centos/7/os/x86_64/Packages | tail -1
-rw-r--r--. 1 alexl alexl 35380 Jul 4 2014 zziplib-utils-0.13.62-5.el7.x86_64.rpm

這是我的 nginx.conf 文件

user              nginx;  
worker_processes  auto;
error_log         /var/log/nginx/error.log;
pid               /run/nginx.pid;

events {
 worker_connections  1024;
}

http {
   log_format   main '$remote_addr - $remote_user [$time_local]  $status '
   '"$request" $body_bytes_sent "$http_referer" '
   '"$http_user_agent" "$http_x_forwarded_for"';

   access_log          /var/log/nginx/access.log  main;

   sendfile            on;
   tcp_nopush          on;
   tcp_nodelay         on;
   keepalive_timeout   65;
   types_hash_max_size 2048;

   include             /etc/nginx/mime.types;
   default_type        application/octet-stream;

   include /etc/nginx/conf.d/*.conf;

}

這是網站的配置:

server { # simple load balancing
 listen          80;
 server_name     mysecretdomain.com;
 root            /var/www/html/repos;

 location / {
   autoindex on;
 }
}

除了正常的文件系統權限外,RHEL 和 CentOS 預設啟用了 SELinux 強制訪問控制。很可能您的文件未正確標記。

由於您使用 Web 內容的預設文件系統位置,因此您可以使用以下命令恢復預設的 SELinux 安全上下文restorecon

restorecon -R /var/www/html/repos

關於解決 SELinux 問題的 Moire 詳細資訊: https ://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/chap-security-enhanced_linux-troubleshooting

引用自:https://serverfault.com/questions/928673