ubuntu18.04安装Apache,配置多个虚拟主机,并整合tomcat

ubuntu上配置Apache和centeros好像还不太一样,里面的配置文件好像有点区别,centeros上是httpd.conf,ubuntu是apache2.conf,记录一下ubuntu18.04系统下的操作:

一、安装Apache

1.直接用命令安装,sudo apt-get install apache2

2.安装完后,查看Apache的版本信息,apache2 -v

3.安装完,访问localhost,会显示默认页面,显示apache2 ubuntu default page

apache已经安装成功。因为是使用命令安装,可以使用service命令操作apache:
            Service apache2 start;
            Service apache2 stop;
            Service apache2 restart;
            Service apache2 status;
配置文件都在/etc/apache2目录下面(可以用whereis apache2命令查看位置,具体目录的作用可百度)

二、配置多个虚拟主机

1.修改hosts文件,sudo /etc/hosts,添加:
        

    127.0.0.1   www.t1.com
    127.0.0.1   www.t2.com

2.进入目录/etc/apache2,其中有两个目录,sites-avaliable和sites-enabled,作用自己百度

3.在sites-avaliable中,复制000-default.conf文件,命名为test.conf

    sudo cp 000-default.conf test.conf

4.修改test.conf,添加:

<VirtualHost *:80>
    ServerName www.t1.com
    ServerAdmin t1@qq.com
    DocumentRoot /home/test/apache/test1
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName www.t2.com
    ServerAdmin t2@qq.com
    DocumentRoot /home/test/apache/test2
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

注意:此处在配置的时候,在每行后面都有个空格,导致报错,找了好长时间才找到错误

5.建立软链接

sudo ln -s  /etc/apach2/sites-avaliable/test.conf  /etc/apache2/sites-enabled/test.conf

注意:建立软连接,如果失败,那么配置的test.conf将不会生效,因为在apache2.conf中引入的是sites-enabled目录中的文件

6.开放目录权限,进入目录/etc/apache2下面,修改配置文件apache2.conf,添加:

<Directory /home/test/apache/test1/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all  granted
</Directory> 

<Directory /home/test/apache/test2/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all  granted
</Directory>

或者

<Directory /home/test/apache/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all  granted
</Directory>

注意:这里的Directory需要和test.conf中的DocumentRoot内容保持一致,或者Directory的目录要包含test.conf中DocumentRoot的目录

7.创建目录, /home/test/apache/test1 | test2 ,并在里面放置index.html,内容随意

8.最后重启一下apache,service apache2 restart,访问www.t1.com,www.t2.com,会出现不同的页面

三、安装tomcat

在/home/test/中安装2个tomcat,修改里面的端口,保证能同时运行,并修改里面index.jsp的内容,方便查看访问的是哪个tomcat,其他配置默认

四、开始整合apache和tomcat

1.使用命令安装mod_jk模块,负责转发消息到tomcat

sudo apt-get install libapache2-mod-jk

2.此时,/etc/apache2/mods-available目录下会多出jk.conf和jk.load文件,apache启动时,会加载load文件,从而加载jk.conf文件

3.先看jk.conf文件(源文件注释已被删除)

<IfModule jk_module>
	# 指出mod_jk模块工作所需要的工作文件workers.properties的位置
    JkWorkersFile /etc/libapache2-mod-jk/workers.properties

    JkLogFile /var/log/apache2/mod_jk.log

    JkLogLevel info

    JkShmFile /var/log/apache2/jk-runtime-status

    JkWatchdogInterval 60

    <Location /jk-status>
        # Inside Location we can omit the URL in JkMount
        JkMount jk-status
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Location>
    <Location /jk-manager>
        # Inside Location we can omit the URL in JkMount
        JkMount jk-manager
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Location>
	
	# 将所有请求都让tomcat来处理
	#JkMount /*  worker1
</IfModule>

注意:

    1.JkMount /* worker1,表示所有请求都交给worker1来处理,这里是全局配置,因为想根据域名来分配到不同的worker,把他注释掉;
    2.这里的worker可以看做是tomcat实例,worker是在workers.properties中定义的;
    3.jk.conf文件中的JkWorkersFile属性来指定worker.properties文件的位置;

4.再来看worker.properties文件(源文件注释已删除)

workers.tomcat_home=/usr/share/tomcat8

	workers.java_home=/usr/lib/jvm/default-java

	ps=/

	worker.list=ajp13_worker,worker1,worker2

	worker.ajp13_worker.port=8009
	worker.ajp13_worker.host=localhost
	worker.ajp13_worker.type=ajp13
	worker.ajp13_worker.lbfactor=1
	
	# Set properties for worker1
	worker.worker1.type=ajp13  
	worker.worker1.host=localhost  
	worker.worker1.port=8009
	worker.worker1.lbfactor=50  
	worker.worker1.cachesize=10  
	worker.worker1.cache_timeout=600  
	worker.worker1.socket_keepalive=1  
	worker.worker1.socket_timeout=300
	 
	# Set properties for worker2
	worker.worker2.type=ajp13  
	worker.worker2.host=localhost
	worker.worker2.port=8010
	worker.worker2.lbfactor=50  
	worker.worker2.cachesize=10  
	worker.worker2.cache_timeout=600  
	worker.worker2.socket_keepalive=1  
	worker.worker2.socket_timeout=300

	worker.loadbalancer.type=lb
	worker.loadbalancer.balance_workers=ajp13_worker

1.worker.list是定义tomcat实例,多个用逗号分隔,worker1和worker2是自己定义的,worker1是本地的8009端口的tomcat关联,worker2是本地的8010端口的tomcat关联;
2.worker.korker1.port=8009,代表apache的mod_jk模块与tomcat交换数据的端口(通过AJP协议),需要与tomcat配置文件中<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />所在端口保持一致;

5.此时修改/etc/apache2/sites-available目录下的test.conf文件,在虚拟主机的节点下,配置JkMount,如下:

<VirtualHost *:80>
	  ServerName www.t1.com
	  ServerAdmin t1@qq.com
	  DocumentRoot /home/test/apache/test1
	  ErrorLog ${APACHE_LOG_DIR}/error.log
	  CustomLog ${APACHE_LOG_DIR}/access.log combined
          JkMount /*.jsp worker1
	  JkMount /*.css worker1
	  JkMount /*.png worker1
	  JkMount /*.ico worker1
</VirtualHost>

表示.jsp,.css,.png,.ico的请求,发送给worker1这个tomcat实例来处理

6.访问不同域名下的index.jsp和index.html,会访问到对应的apache和对应的tomcat

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值