linux上的apache2服务器开启激活和配置端口方法

绑定地址与端口

启动apache2

调用命令apache2ctl来启动,而非apache2。它可以简单地用start、stop、restart等参数,也可以使用和apahce2一样的参数。在

/etc/init.d/apache2

所以只用调用:

安装apache2服务器:sudo apt-get install apache2

开启服务器:sudo /etc/init.d/apache2 start

关闭服务器sudo /etc/init.d/apache2 stop

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


脚本里,也是调用的apahce2ctl。


总览

在文件/etc/apache2/ports.conf里可以看到这行:

Listen 80

它表示监听服务器所有网卡的80端口。


我们也可以在不同网卡上监听不同端口:

Listen 192.0.2.1:80

Listen 192.0.2.5:8000


IPv6

如果要监听IPv6,需要在地址周围使用方括号:

Listen [2001:db8::a00:20ff:fea7:ccea]:80

为了用最少的socket来同时处理IPv4和IPv6请求,则需要使用IPv4映射的IPv6地址。--enable-v4-mapped配置选项用于启动这个映射。默认情况下,除了FreeBSD, NetBSD, and OpenBSD,其它平台都默认启用这个选项。


如果只想处理IPv4请求,则在所有的Listen指令上都指定一个IPv4地址:

Listen 0.0.0.0:80

Listen 192.0.2.1:80


协议

Listen有一个可选的protocol参数。在未指定的情况下,https的默认端口为443,而http为其它的端口。这个protocol用来决定哪个模块来处理请求,以及使用AcceptFilter来应用协议相关的优化。

我们只有在响应非标准的端口上时,才需要指定protocol参数。比如:

Listen 192.170.2.1:8443 https


与虚拟主机的协作

Listen指令并不实现Virtual Host,它仅仅告诉主服务器监听哪些地址以及哪些端口,如果没有使用<VirtualHost>指令,服务器会以相同的方式处理所有接受到的请求。<VirtualHost>指令可以为一个或多个地址或端口指定不同的行为。要使用VirtualHost,服务器必须先监听使用的地址和端口,否则<VirtualHost>不能被访问。


配置文件

主要配置文件

Apache通过在文本配置文件里放置指令来配置HTTP服务器。主配置文件通常为httpd.conf(apache2为/etc/apache2/apache2.conf,它会包含httpd.conf),该文件的位置在编译期中设置,也可以使用命令行参数-f来重写。此外,其它配置文件可以通过Include指令来引用,这里可以使用通配符来引用多个配置文件(比如厅Include mods-enabled/*.conf)。httpd在启动或重启时会加载主要配置文件。


服务器也读取一个包含mime文档类型的文件,文件名通过TypeConfig指令来指定。默认情况下为mime.types。


语法

配置文件里通过一个指令为一行。在行末用“\”可以标示指令占据多行。


指令本身是不区分大小写的,但它的参数通常是大小写敏感的。以#开头的行被视为注释。空白行和指令前的空格都被忽略。


Define定义的变量和shell环境变量可以通过${VAR}的形式在配置文件里使用。通过Define定义的变量比环境变量的优先级高。如果VAR没有定义,那么${VAR}会保持不变,而且一个警告会发生。变量名不能包含“:”,以免干扰RewriteMap指令。


只有在服务器启动前定义的环境变量才会被展开。在配置文件本身定义的环境变量,如通过SetEnv定义的,不会展开。


配置文件在展开变量、联合后续行(\结尾表示)后的最大长度大约为16M。.htaccess文件里行的最大长度为8190个字符。


使用命令apachectl configtest或apachectl -t可以在不启动服务器的情况下检查配置文件语法错误。


mod_info模块的-DUMP-CONFIG可以输出解析所有引用文件和环境变量,以及删除注释、不匹配的<IfDefine>和<IfModule>的配置文件。


模块

核心服务器只包含了最基本的功能,扩展特性可以通过加载模块来使用。默认情况下,一个模块的基本集在编译期包含进了服务器。如果服务器被编译成使用动态加载模块,那么模块可以分开编译,并在任何时候使用LoadModule指令加入。否则,服务器必须重新编译来加入或删除模块。<IfModule>块里的指令只在所需模块被加载时才会执行,比如:

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>


命令行参数-l可以查看编译进server的模块,-M可以查看动态加载的模块。



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值