内容简介:安装完成后,所有配置文件都在/etc/apache2/目录下。apache2在启动的时候自动读取/etc/apache2/apache2.conf文件的配置信息,不同的配置项按功能分布在不同的文件中,然后被Include包含到apache2.conf这个主配置文件中,方便管理。就是说事实上apache2主配置文件只有一个,即apache2.conf,其他的都是被include进来的。可以把所有的配置都放在apache2.conf或者任何一个配置文件中,但是划分到不同文件会让我们管理起来方便很多。其中,apa
一、关于Apache2
Ubuntu环境下安装Apache2
sudo apt-get install apache2
安装完成后,所有配置文件都在/etc/apache2/目录下。
基本原理
apache2在启动的时候自动读取/etc/apache2/apache2.conf文件的配置信息,不同的配置项按功能分布在不同的文件中,然后被Include包含到apache2.conf这个主配置文件中,方便管理。就是说事实上apache2主配置文件只有一个,即apache2.conf,其他的都是被include进来的。可以把所有的配置都放在apache2.conf或者任何一个配置文件中,但是划分到不同文件会让我们管理起来方便很多。
apache2目录结构
. ├── apache2.conf 全局配置 ├── conf-available 可用的配置文件 ├── conf-enabled 已启用的配置文件 ├── envvars 环境变量 ├── magic ├── mods-available 已安装的模块 ├── mods-enabled 已启用的模块 ├── ports.conf http服务端口信息 ├── sites-available 可用站点信息 ├── sites-enabled 已经启用的站点信息,当中的文件是到/etc/apache2/sites-available/ 文件的软连接。
其中,apache2.conf是apache2的主配置文件,包括三个级别的配置。
- 控制apache服务器执行过程的全局配置。
- 定义主服务或者默认服务器的参数的配置,这些配置会响应virtual host不处理的请求。这类配置也为所有的virtual hosts配置提供默认值。
- virtual hosts相关的配置,使得同一个apache服务进程处理向不同IP地址或者主机名发送的请求。
二、Apache2配置介绍
初始情况下,Apache2主配置文件/etc/apache2/apache2.conf。其最后两行为:
# Include the virtual host configurations: IncludeOptional sites-enabled/*.conf
显然/etc/apache2/sites-enabled下存放着有关虚拟站点(VirtualHost)的配置。经查看,初始情况下,该目录下包含一个符号链接:
000-default.conf -> ../sites-available/000-default.conf
这里又引出另外一个配置目录:/etcc/apache2/sites-available。这个目录下放置了所有可用站点的真正配置文件,对于Enabled的站点,Apache2在sites-enabled目录建立一个到sites-available目录下文件的符号链接。
/etc/apache2/sites-available下有两个文件:000-default.conf和default-ssl.conf。000-default链接的文件为000-default.conf。
以000-default.conf为例,看看一个VirtualHost的配置是啥样的:
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html <Directory "/var/www/html"> AllowOverride All </Directory> # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost>
DocumentRoot是这个站点的根目录,这样Apache2启动时会扫描/etc/apache2/sites-enabled中可用的站点配置并加载。当用户访问localhost:80时,Apache2就将default站点根目录/var/www/html下的index.html作为请求的响应返回给浏览器。
三、利用Apache2部署多个站点
Apache2的默认站点我们不要去动它,我们新增站点配置来满足我们的要求。我们可能有两类需求:
- 根据不同的域名访问不同的站点
- 在相同域名地址的情况下,通过访问不同的端口获得不同的站点
3.1 第一种需求
第一种需求讲的是我要在一个Apache2服务器上配置两个站点: site1.com和site2.com 。
我们可以按照下面步骤来做:
建立配置文件
在sites-available中建立两个站点的配置文件site1_com和site2_com:
sudo cp 000-default.conf site1_com.conf sudo cp 000-default.conf site2_com.conf
编辑这两个配置文件,以site1_com为例
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. ServerName site1.com ServerAdmin webmaster@localhost DocumentRoot /var/www/site1_com <Directory "/var/www/site1_com"> AllowOverride All </Directory> # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost>
注意上面配置中:ServerName、DocumentRoot是我们重点关注的配置点。 site1的ServerName为site1.com ,根目录为/var/www/site1_com。(site2_com.conf也做同样的改动)
在sites-enabled目录下建立符号链接
sudo ln -s /etc/apache2/sites-available/site1_com.conf /etc/apache2/sites-enabled/site1_com.conf sudo ln -s /etc/apache2/sites-available/site2_com.conf /etc/apache2/sites-enabled/site2_com.conf
部署项目(以Angular2项目为例)
- 使用ng build命令,将web项目编译成静态文件;
- 将dist/文件夹拷贝到/var/www/目录下,重命名为site1_com和site2_com;
- 在site1_com目录下新建文件.htaccess,以重构路由:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] </IfModule>
- 重写apache2配置
sudo a2enmod rewrite
重启Apache2使配置生效
sudo service apache2 restart 或 sudo /etc/init.d/apache2 restart
修改/etc/hosts文件,便于测试。
添加如下两行:
127.0.0.1 site1.com 127.0.0.1 site2.com
打开浏览器,输入http://site1.com,即可看到我们的网站。
3.2 第二种需求
第二类需求是希望通过端口号来区分虚拟站点。
首先我们得让apache2监听端口8081和8082
修改/etc/apache2/ports.conf,增加两行:
Listen 8081 Listen 8082
修改site1_com.conf和site2_com.conf:
以site2_com为例,将监听的端口改为8082, ServerName改为site.com 。(site1_com同理。)
<VirtualHost *:8082> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. ServerName site.com ServerAdmin webmaster@localhost DocumentRoot /var/www/site2_com <Directory "/var/www/site2_com"> AllowOverride All </Directory> # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost>
修改/etc/hosts文件,便于测试。
添加一行:
127.0.0.1 site.com
重启Apache2使配置生效
sudo service apache2 restart 或 sudo /etc/init.d/apache2 restart
访问 http://site.com:8082 即可看到我们的网站。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用 Nginx 同域名下部署多个 Vue 项目,并使用反向代理
- 使用 nginx 同域名下部署多个 vue 项目,并使用反向代理
- TeaWeb v0.0.10 发布,增加多个监控数据源,增加 Agent 集群部署
- 我国三个E级超算原型机系统均完成交付 部署在多个超算中心
- 监控多个Kubernetes集群
- 管理多个远端仓库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
计算机程序设计艺术(第3卷 英文版·第2版)
Donald E.Knuth / 人民邮电出版社 / 2010-10 / 119.00元
《计算机程序设计艺术》系列被公认为计算机科学领域的权威之作,深入阐述了程序设计理论,对计算机领域的发展有着极为深远的影响。本书是该系列的第3卷,扩展了第1卷中信息结构的内容,主要讲排序和查找。书中对排序和查找算法进行了详细的介绍,并对各种算法的效率做了大量的分析。 本书适合从事计算机科学、计算数学等各方面工作的人员阅读,也适合高等院校相关专业的师生作为教学参考书,对于想深入理解计算机算法的读......一起来看看 《计算机程序设计艺术(第3卷 英文版·第2版)》 这本书的介绍吧!