2015-10-14 26 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