• Ubuntu下Apache虚拟主机+反向代理


    反向代理 就是通过一台代理服务器,让Internet用户可以访问到内部网络上的服务器

    下图中192.168.0.4 可以理解带有2个网卡,一个是公网ip,一个是192.168.0.4

    代理内外中的2个服务器上的2个服务,分别是运行在9000端口和81端口

    01)安装 Apache2:
        sudo apt-get install apache2
        测试访问:192.168.0.4

    02)重启服务器:
        sudo /etc/init.d/apache2 restart

    03)虚拟主机+反向代理 配置:

        目标是:用安装apache2的服务器ip 192.168.0.4 代理运行在192.168.0.15:9000上的tomcat服务器
        前提是:
        192.168.0.4安装好了apache2并可以正常访问
        192.168.0.15:9000也可以正常访问

        启用这几个模块
        LoadModule proxy_module modules/mod_proxy.so
        LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
        LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
        LoadModule proxy_connect_module modules/mod_proxy_connect.so
        LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
        LoadModule proxy_http_module modules/mod_proxy_http.so
        
        启用模块   sudo a2enmod <model>  
        禁用模块   sudo a2dismod <model> 

        上面提到的几个启动模块命令如下
        sudo a2enmod proxy
        sudo a2enmod proxy_ajp
        sudo a2enmod proxy_balancer
        等等

    /etc/apache2/sites-available/ 目录中建立一个文件 linuxidc

    <VirtualHost *:80>
    ServerName www.linuxidc.com
    ServerAlias linuxidc.com
    ProxyPreserveHost On
    ProxyRequests Off
    <Proxy *>
    Order deny,allow
    Allow from all
    </Proxy>
    ProxyPass / http://192.168.0.15:9000/
    ProxyPassReverse / http://192.168.0.15:9000/
    </VirtualHost>


    然后执行 启用这个站点 
    sudo a2ensite linuxidc
    service apache2 reload

    /etc/apache2/sites-available/ 目录中建立一个文件 88181

    <VirtualHost *:80>
    ServerName www.88181.com
    ServerAlias 88181.com
    ProxyPreserveHost On
    ProxyRequests Off
    <Proxy *>
    Order deny,allow
    Allow from all
    </Proxy>
    ProxyPass / http://192.168.0.11:81/
    ProxyPassReverse / http://192.168.0.11:81/
    </VirtualHost>

    然后执行 启用这个站点
    sudo a2ensite 88181
    service apache2 reload

    修改C:WINDOWSsystem32driversetchosts进行测试
    192.168.0.4       linuxidc.com
    192.168.0.4       88181.com

    关闭一个虚拟站点
    sudo a2dissite linuxidc  
    sudo a2dissite 88181

    04)Ubuntu的/etc/apache2目录解释:

        apache2.conf 核心配置文件,一般不需要修改!
        conf.d 目录,里面包含了一些字符集设置,文档等设置!
        dav_svn.authz 和dav_svn.passwd 是前面做SVN时,相关权限、密码文件。
        envvars 定义了运行时的用户身份——www-data。
        httpd.conf 是Apache留给我们自己折腾的配置文件,默认为空。apache2.conf 会加载这个文件。
        ports.conf 端口默认配置。apache2.conf 会加载这个文件。
        magic 为mod_mime_magic模块服务。
        mods-enabled 和mods-available mods-enabled 会被apache2.conf 加载,里面包含*.load和*.conf文件。*.load文件中是加载相应的模块(位于/usr/lib/apache2/modules/ 中),而*.conf中是对应的基本配置。但这些文件其实都是链接到mods-available 中相应的文件上。当我们通过a2enmod 操作时,实际上正是操作了这些软链接。
        sites-available 和sites-enabled 与 mods-enabled 和mods-available 的关系类似,只是其中包含的是站点内容。

    05)Ubuntu的Apache的配置文件解释:

        Apache在启动时会自动读取/etc/apache2/apache2.conf的配置信息。
        而其他的一些配置文件,则是通过Include指令包含进来
        在apache2.conf中可以找到这些Include行:

            # Include module configuration: 
            Include /etc/apache2/mods-enabled/*.load
            Include /etc/apache2/mods-enabled/*.conf
             
            # Include all the user configurations:
            Include /etc/apache2/httpd.conf
             
            # Include ports listing
            Include /etc/apache2/ports.conf

            # Include generic snippets of statements
            Include /etc/apache2/conf.d/
             
            # Include the virtual host configurations:
            Include /etc/apache2/sites-enabled/

    06)配置错误:
        apache2"NameVirtualHost *:80 has no VirtualHosts" 
         
        对于同一主机支持多个虚拟主机的情况,只需要命名一次NameVirtualHost,如果在每个虚拟主机配置文件中都加上NameVirtualHost *:80 ,则会报这个警告。

  • 相关阅读:
    [ python ] 线程的操作
    [ python ] 进程的操作
    RabbitMQ 集群
    RabbitMQ 实践及使用
    RabbitMQ 基础知识
    [ python ] FTP作业进阶
    [ python ] 项目一:FTP程序
    [ python ] 网络编程(2)
    [ python ] 网络编程(1)
    Linux 日志系统及分析
  • 原文地址:https://www.cnblogs.com/younggun/p/3415188.html
Copyright © 2020-2023  润新知