使用Apache和云虚拟机搭建web服务器

前置准备
购买服务器和域名,并且将域名和服务器公网地址绑定,完成相应认证和备案。绑定后可以通过域名来访问服务器内容,当然如果没有域名,也可在浏览器中直接通过IP地址来访问。
Apach简单介绍
Apache HTTP Server由一个core和多个独立模块组成,模块可以静态编译于服务端成宿,或是在运行时动态调用(模块目录/Modules/ 或 /libexec/);核心工作依赖于APR(Apache Portable Runtime 用于跨平台操作系统环境)和MPM(特殊模块Multi-processiong Module,所有模块中唯一一个可以访问操作系统资源模块)。结构如图

工作时可分为两个工作阶段:启动阶段和工作阶段;起始阶段需要进行配置读取、载入模块、初始log、memory等资源,进行数据库链接等操作;启动阶段在特权模式下运行。关于配置方式,Apache主要配置文件惯用名为httpd.conf,也可以采用其它方式进行命名。httpd.conf可以是一个单独的配置文件,也可以采用Include指令包含不同的配置文件,httpd.conf为一个纯文本文件,在启动阶段进行逐行解析。httpd.conf包含directives 指令,containers(容器) 和注释,空行和空白符通常被忽略。指令可以不带参数或带有多个参数,容器属于特殊的指令,包含起始和结束部分;注释方式采用#来表示。在启动阶段末尾,控制转到MPM模块。MPM负责系统管理Apache的工作。MPM支持多个连接,通过一个主城来创建子程序或多个线程的方式。Apache停止的操作为shutdown行为。Apach有两种不同的工作模式,具体细节后续在研究。
云服务器环境搭建
云服务器安装apache,使用yum -y install httpd httpd-devel命令,相应的启动命令systemctl start httpd;开机自动启动命令systemctl enable httpd,设置开机启动后服务器每次重启将自动启动服务器端;systemctl status httpd命令可以用来确认服务器端是否启动;systemctl stop httpd停止运行命令;systemctl is-enabled httpd查看是否开机自启动;chkconfig httpd on可以用来确认是否开机后自动运行。
在centos服务器上,安装之后配置文件将位于/etc/httpd/conf,文件名为httpd.conf , 当然目前采用默认配置及文件路径, http.conf文件中初始页面配置路径/var/www/html/,不修改配置情况下在/var/www/html/中增加index.html文件。服务器初始最简单的配置就已经完成。
遇到的问题总结
1、端口问题: 云虚拟机默认很多端口没有打开,需要在云平台进行配置。阿里云的配置方式登录阿里云 =>找到相应虚拟镜像=>更多里面的安全配置=>打开相应的80端口。
2、SSH远程访问问题: 在MAC OS系统上一直无法使用terminal 登录服务器,在Authentication成功之后仍然连接失败,显示的错误为packet_write_wait: Connection to port 22: Broken pipe,最终的解决方案时增加了-o IPQos=0的选项,亦即将ssh -l root IPaddr修改为ssh -o IPQos=0ss -l root IPaddr 后成功登录。通过wireshark抓包,发现两个方式一个使用SSH协议,一个使用TLS协议,具体什么原因导致失败,还不清楚,目前采用这样子的workaround方式进行处理。同样scp命令也需要增加这样的选项才可工作。

你可能感兴趣的:(网络知识)