https://www.cnblogs.com/caijt/p/10978324.html
以上篇博客中說了怎么在linux部署asp.net core 跟 nginx,里面成功的前提是把SElinux關了,SELinux一開,確實出現很多莫名奇妙的問題,我網上查,大多數的解決方法也是教你把SElinux關了。
我研究了下怎么在不關SELinux的情況下,Nginx還能正常地使用。
先說下SElinux是什么,其實我也看不太懂,不過我了解了一點規則
先說下兩個命令跟參數 ps -Z ls -Z 注意Z參數可以顯示出SElinux的信息
如下圖紅圈,第一個是進程的SElinux信息,第二個是文件的SElinux,system_u是用戶,object_r是用色,http_t是類型,這個類型比較重要,其它的好像沒啥影響
就直接點說nginx來說,這個進程只能訪問httpd_sys_content_t類型的文件,所以如果出現403的話,就是你的www目錄的類型不對,所以得把www目錄設置成httpd_sys_content_t類型
semanage fcontext -a -t httpd_sys_content_t '/var/www(/.*)?'
這樣一般就能解決SELinux導致的403問題了
后面我又遇到了一個問題,在nginx里我有設置了 /api轉發到http://localhost:5000,可一直返回502的錯誤,我知道又是SElinux的問題
經過我不斷地百度
終於讓我找到這個博客,這真的是百度上為數不多的不教人關掉SElinux的教程,值得點贊 https://www.jianshu.com/p/ae3f8a8ca54f
setsebool -P httpd_can_network_connect 1
好了,這樣Nginx就可以愉快地跟Selinux相處了!