在Linux上部署DotNet Core项目的时候发现Apache没法转发Kestrel的5000端口的问题

CentOS服务器上使用Apache托管Dotnet Core2,服务启动了,端口也打开了。在本地使用curl命令能够访问5000端口的网页内容,可是访问Apache的端口却没法获取到网页的内容。想起了以前一直踩过的坑---SE Linux。linux

一、首先说解决办法,运行以下命令便可:数据库

sudo setsebool -P httpd_can_network_connect on

究其缘由,这是由于SELinux(Security-Enhanced Linux)进行了访问控制的缘故。查看SELinux的文档,打开httpd_can_network_connect便可。服务器

二、若是碰到数据库没法链接的,运行以下命令则可解决:curl

sudo setsebool -P httpd_can_network_connect_db on

三、若是是非生产环境,能够考虑直接关掉SELinux:url

//把SELINUX设置为disabled便可
vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
#把设置改成disabled
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
相关文章
相关标签/搜索