• Nginx 因 Selinux 服务导致无法远程訪问


    文章来源:http://blog.csdn.net/johnnycode/article/details/41947581


    2014-12-16日

    昨天晚上处理好的网络訪问连接。早晨又訪问不到了。

    现象是Nginx能够获得 Respone Head信息,但Respone Body信息间歇性能够获取,Nginx配置为监听80port。iptables 和 selinux 服务停止状态。

    终于的处理结论是某IDC要求80port必须申请白名单才干够訪问,由于能够间歇性获取 Respone Body 导致对问题的误判,谨记!


    2014-12-15日

    本文暂且叫这个名吧,由于不是非常理解 Selinux 。或许你有更好的办法请告知我!

    一、问题现象
    Nginx 启动后本机能够正常訪问,使用Curl 命令能够获取默认 index.html,其它界面均不可訪问。远程訪问server时提示 400 bad request 信息。检查Nginx用户权限和port都正常。iptables 未启动。
    # curl -I 123.123.123.123
    HTTP/1.1 200 OK
    Server: nginx
    Date: Mon, 15 Dec 2014 10:52:34 GMT
    Content-Type: text/html
    Content-Length: 12
    Last-Modified: Mon, 15 Dec 2014 10:00:36 GMT
    Connection: keep-alive
    Accept-Ranges: bytes
    检查文件夹时发现文件夹权限后缀都有个点。


    注意观察 html 文件夹下 50x.html 、default.html、index.html 这三个文件权限后的点以及 welcome.html 文件权限的区别。

    二、问题分析

    谷歌、度娘一番,终于结论为 selinux 保护文件夹都会在文件以及文件夹后有个点

    查询 selinux 状态

    $ sestatus
    SELinux status:                 enabled
    SELinuxfs mount:                /selinux
    Current mode:                   enforcing
    Mode from config file:          enforcing
    Policy version:                 24
    Policy from config file:        targeted
    查询 selinux 执行模式

    $ getenforce
    Enforcing 
    执行模式分为三种 enforcing (强制模式)、permissive(宽容模式)、disabled(关闭)

    三、问题处理

    既然分析问题可能出在 selinux ,那就尝试修复,修复方式分为两种暂时修复和永久修复!

    暂时修复,网上盛传方式。

    # setenforce 0 #关闭 Selinux
    # setenforce 1 #开启 Selinux
    实际上能够执行下试试效果,本人执行结果是在 enforcing 模式与 permissive 模式之间来回切换而已无不论什么效果,假设本人理解错误。请不吝赐教。

    永久方式,确实可用。须要重新启动server!

    1、改动 /etc/selinux/config 文件

    # vim /etc/selinux/config
    2、改动 SELINUX=disabled 。改动后内容

    # 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 - SELinux is fully disabled.
    SELINUX=disabled
    # SELINUXTYPE= type of policy in use. Possible values are:
    #       targeted - Only targeted network daemons are protected.
    #       strict - Full SELinux protection.
    SELINUXTYPE=targeted
    3、重新启动电脑查看 Selinux 状态,应该为关闭状态
    $ getenforce 
    Disabled

    四、问题总结

    1、未停止 Selinux 服务时,文件新增、改动文件夹都是带着点的,參见 default.html 和 index.html。

    2、停止 Selinux 服务后,文件新增将不受 Selinux 服务保护。也就是不带点了。參见 welcome.html。
    第一次处理 Selinux 问题,若实际问题与解决方式有出入请告知我,虚心学习!谢谢。

    感谢百度文库作者提供指导意见 


  • 相关阅读:
    24. Swap Nodes in Pairs
    23. Merge k Sorted Lists
    shell脚本报错:"[: =: unary operator expected"
    一种用 数组元素 指定 所调函数 的方法
    阻塞 非阻塞
    Linux open() 一个函数,两个函数原型
    QT 执行windows cmd 命令并读取结果
    Qt5 escape spaces in path
    获取磁盘的 总容量,空余容量,已用容量 【windows】
    通过进程名称,获取其路径
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5192366.html
Copyright © 2020-2023  润新知