博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux上的apache2服务器开启激活和配置端口方法
阅读量:4128 次
发布时间:2019-05-25

本文共 2115 字,大约阅读时间需要 7 分钟。

绑定地址与端口

启动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可以查看动态加载的模块。

转载地址:http://ieuvi.baihongyu.com/

你可能感兴趣的文章
二叉树非递归遍历算法思悟
查看>>
红黑树算法思悟
查看>>
从山寨Spring中学习Spring IOC原理-自动装配注解
查看>>
实例区别BeanFactory和FactoryBean
查看>>
Spring后置处理器BeanPostProcessor的应用
查看>>
Spring框架的ImportSelector到底可以干嘛
查看>>
Mysql中下划线问题
查看>>
微信小程序中使用npm过程中提示:npm WARN saveError ENOENT: no such file or directory
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>
idea的安装以及简单使用
查看>>
Windows mysql 安装
查看>>
python循环语句与C语言的区别
查看>>
Vue项目中使用img图片和background背景图的使用方法
查看>>
vue 项目中图片选择路径位置static 或 assets区别
查看>>
vue项目打包后无法运行报错空白页面
查看>>
Vue 解决部署到服务器后或者build之后Element UI图标不显示问题(404错误)
查看>>
element-ui全局自定义主题
查看>>
facebook库runtime.js
查看>>
vue2.* 中 使用socket.io
查看>>
openlayers安装引用
查看>>