• 十二.虚拟Web主机


    ***********************
    修改apache默认的网页文件存放位置
    ]# mkdir /var/www/myweb
    ]# echo "I am MyWeb" > /var/www/myweb/index.html
    ]# vim /etc/httpd/conf/httpd.conf
    DocumentRoot  "/var/www/myweb"
    ]# systemctl restart httpd
    ]# firefox 172.25.0.11
    ***********************
      作用:一台服务器可以提供多个Web站点
      一旦使用虚拟web主机功能,所有的站点都必须用虚拟web主机来实现

    • 区分方式
    – 基于域名的虚拟主机
    – 基于端口的虚拟主机
    – 基于IP地址的虚拟主机

    • 为每个虚拟站点添加配置
      ServerName 此站点的DNS名称
      DocumentRoot 此站点的网页根目录

    • 配置文件路径
    – /etc/httpd/conf/httpd.conf  (主配置文件)
    – /etc/httpd/conf.d/*.conf (调用配置文件)

    目标
    webapp0.example.com -> 企鹅
    www0.example.com    -> MyWeb
    server0.example.com -> 百度

    虚拟机Server0:
    1.创建配置文件:
    ]# vim /etc/httpd/conf.d/nsd01.conf
    <.VirtualHost  *:80>
        ServerName webapp0.example.com
        DocumentRoot /var/www/qq
    <./VirtualHost>

    <.VirtualHost  *:80>
        ServerName www0.example.com
        DocumentRoot /var/www/myweb
    <./VirtualHost>

    <.VirtualHost  *:80>
        ServerName server0.example.com
        DocumentRoot /var/www/baidu
    <./VirtualHost>

    可以添加访问规则:
    <.Directory  "/webroot">
        Require all granted
    <./Directory>

    <.Directory  "/webroot/private">
        Require ip 127.0.0.1  ::1  172.25.0.11
    <./Directory>
    2.创建对应网页文件夹
    ]# mkdir /var/www/qq  /var/www/baidu /var/www/myweb
    ]# echo '企鹅' > /var/www/qq/index.html
    ]# echo '百度' > /var/www/baidu/index.html
    ]# echo 'MyWeb' > /var/www/qq/index.html
    ]# systemctl restart httpd
    3.访问:
    ]# firefox www0.example.com
    ]# firefox webapp0.example.com
    ]# firefox server0.example.com

    ************************

    访问控制:
    只允许172.25.0.11访问server0.example.com站点的/var/www/myweb/private目录的网页
     <.VirtualHost  *:80>
        ServerName www0.example.com
        DocumentRoot /var/www/myweb
    <./VirtualHost>

    ]# mkdir /var/www/myweb/private
    ]# echo "I am private" > /var/www/myweb/private/index.html
    ]# vim /etc/httpd/conf.d/nsd01.conf
    增加这段:
    <.Directory  "/webroot/private">
        Require ip 127.0.0.1  ::1  172.25.0.11
    <./Directory>
    ]# systemctl restart httpd

    不同主机访问测试:
    ]# firefox server0.example.com/private

    **************************

    自定Web根目录
    调整 Web 站点 http://server0.example.com 的网页
    目录,要求如下: /webroot,作为此站点新的网页文件目录
    ]# mkdir /webroot
    ]# echo 'wo shi webroot' > /webroot/index.html
    ]# vim /etc/httpd/conf.d/nsd01.conf
    ...
    <.VirtualHost  *:80>
        ServerName server0.example.com
        DocumentRoot  /webroot
    <./VirtualHost>
    ...
    ]# systemctl restart httpd

    SELinux的安全上下文(标签)
    ]# ls -Zd /var/www/  #查看安全上下文值
    ]# ls -Zd /webroot
    ]# chcon -R --reference=/var/www /webroot/
    ]# ls -Zd /webroot/
    ]# firefox server0.example.com #验证
    **************************
    部署动态网站

         LAMP:Linux  Apache  MariaDB/MySQL php/Python
         LNMP:Linux  Nginx  MariaDB/MySQL php/Python

    静态网站的运行
    • 服务端的原始网页 = 浏览器访问到的网页
    – 由Web服务软件处理所有请求
    – 文本(txt/html)、图片(jpg/png)等静态资源

    动态网站的运行
    • 服务端的原始网页 ≠ 浏览器访问到的网页
    – 由Web服务软件接受请求,动态程序转后端模块处理
    – PHP网页、Python网页、JSP网页......

    为站点 webapp0.example.com 配置提供动态Web内容:
    <.VirtualHost  *:80>
        ServerName server0.example.com
        DocumentRoot /var/www/baidu
    <./VirtualHost>

    1.下载动态页面到指定目录:
    /var/www/baidu/webinfo.wsgi
    ]# ls
    index.html  webinfo.wsgi
    2.修改配置文件
    ]# vim /etc/httpd/conf.d/nsd01.conf
    <.VirtualHost *:80>
         ServerName webapp0.example.com
         DocumentRoot /var/www/baidu
         Alias /  /var/www/baidu/webinfo.wsgi
    <./VirtualHost>
    当用户访问到网页文件根目录时,进行跳转到webinfo.wsgi
    3.重启查看:
    ]# systemctl restart httpd
    ]# firefox webapp0.example.com(看到的是源码)
    4.安装mod_wsgi软件,专用于Python页面代码翻译
    ]# yum -y install mod_wsgi
    5.修改配置文件
    ]# vim /etc/httpd/conf.d/nsd01.conf
    <.VirtualHost *:80>
         ServerName webapp0.example.com
         DocumentRoot /var/www/baidu
         WSGIScriptAlias /  /var/www/baidu/webinfo.wsgi
    <./VirtualHost>
    ]# systemctl restart httpd
    ]# firefox webapp0.example.com
    6.此虚拟主机侦听在端口8909
    Listen 8909
    <.VirtualHost *:8909>
         ServerName webapp0.example.com
         DocumentRoot /var/www/baidu
         WSGIScriptAlias /  /var/www/baidu/webinfo.wsgi
    <./VirtualHost>
    SELinux非默认端口的开放:
    ]# semanage port -l | grep http  #查看http允许开放端口(有8909)
    ]# semanage port -a -t http_port_t -p tcp 8909
       -a:添加   -t:类型   -p:协议
    ]# systemctl restart httpd
    7.验证
    ]# firefox webapp0.example.com:8909
    ********************************

  • 相关阅读:
    ENode 1.0
    ENode 1.0
    ENode 1.0
    canvas转图片
    Canvas API
    微信 js api[转]
    Dicom格式文件解析器[转]
    跟我学AngularJS:全局变量设置之value vs constant vs rootscope vs 服务[转]
    angularJS 事件广播与接收[转]
    RequireJs
  • 原文地址:https://www.cnblogs.com/luwei0915/p/10482057.html
Copyright © 2020-2023  润新知