nginx不会加载符号链接的conf文件

nginx不会加载符号链接的conf文件,nginx,Nginx,我有两台服务器,一台新的,一台旧的 在这两台服务器上都有一个名为mysite.conf的conf文件,该文件符号链接到/var/local/mysite/conf/mysite.conf /etc/nginx/conf.d/mysite.conf->/var/local/mysite/conf/mysite.conf 在旧服务器上,一切正常。但是,在新服务器上,它不会遵循符号链接。如果我使conf文件成为一个真实的文件,那么nginx将加载它/etc/nginx/conf.d/mysite.co

我有两台服务器,一台新的,一台旧的

在这两台服务器上都有一个名为mysite.conf的conf文件,该文件符号链接到/var/local/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文件是相同的。

尝试添加到nginx.conf文件:

http {
    disable_symlinks off;
}

我想出来了。是塞利努克斯。谢谢你Alexey Ten。要解决此问题,您需要制作一个模块来调整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;

检查所有父目录的权限两台计算机上的文件/目录排列相同。conf文件是644,下面的目录是755。这可能与SELinux有关。我想也有一些与此相关的问题。我可以在/var/log/audit/audit.log中看到一些东西。我使用了audit2why和audit2allow,创建了一个模块,安装了它,但它不起作用。另一台服务器可以工作,但这台不能。这里有一个线索。我相信这个设置不是为了在conf文件上跟踪符号链接,而是为了在提供服务的文件上跟踪符号链接。尽管如此,我还是试过了,但没有成功。