2015-10-14 67 views
0

我有2台服务器(新老一个)nginx的将不加载被链接conf文件

在两台服务器上有一个名为mysite.conf conf文件是被链接到/ var /本地/ mysite的/ conf目录/ mysite.conf

/etc/nginx/conf.d/mysite.conf - > /var/local/mysite/conf/mysite.conf

在旧服务器,一切正常。但是,在新服务器上,它不会遵循符号链接。如果我使conf文件成为一个真实文件,那么nginx会加载它/etc/nginx/conf.d/mysite.conf并且它可以工作。

有什么区别?

.conf文件的文件权限相同。

主要的/etc/nginx/nginx.conf文件是相同的。

+0

为 –

+0

的文件/目录烫发是在两台机器上相同的所有父目录检查权限。 conf文件是644,目录下是755. – 010110110101

+0

它可能与SELinux有关。有一些问题与我想的 –

回答

0

我想通了。这是SELinux。谢谢阿列克谢十。为了解决这个问题,你需要创建一个模块来调整SELinux设置。

tail /var/log/audit/audit.log | audit2why 
tail /var/log/audit/audit.log | audit2allow -m myapplocal > myapplocal.te 
tail /var/log/audit/audit.log | audit2allow -M myapplocal 
semodule -i myapplocal.pp 

产生的模块看起来像这样对我说:

require { 
    type httpd_t; 
    type var_t; 
    class file getattr; 
} 

#============= httpd_t ============== 
allow httpd_t var_t:file getattr; 
0

尝试添加到您的nginx.conf文件:

http { 
    disable_symlinks off; 
} 
+0

我相信该设置不适用于conf文件的后续符号链接,而是针对正在提供的文件的后续符号链接。尽管如此,我试了一下,但没有奏效。 – 010110110101