Linux-Apache服务器的安装配置

安装

yum -y install httpd
systemctl { start | stop | status | restart } httpd.service
systemctl { enable | disable }  httpd.service
// 标准三步 安装启动自启动

apachectl configtest
// 检测配置文件语法正确

Apache的服务概览如下:
服务类型:由Systemd启动的守护进程
配置单元: /usr/lib/systemd/system/httpd.service
守护进程: /usr/sbin/httpd
端口: 80(http), 443(https)
配置: /etc/httpd/conf/httpd.conf
网页位置: /var/www/html/
相关软件包: mod_ssl  

配置

ifconfig ens33:0 192.168.1.51 netmask 255.255.255.0 up
// 添加虚拟网卡 

主配置文件: /etc/httpd/conf/httpd.conf
// 每一行包含一个指令,在行尾使用反斜杠”\”可以表示续行。
// 无顺序,放哪里都行

(1)全局环境配置命令
ServerRoot:用于设置服务器的根目录
Listen:服务器监听的端口号。
(2)主服务器配置命令
ServerName:设置主机名称。
DocumentRoot:用于设置Apache默认站点根目录。
UserDir  public_html:用户可以在自己的目录下建立public_html目录来放置网页。
DirectoryIndex:用来设定主页,可以设置多个页面,前面的页面优先级高。 

<IfModule prefork.c>       \\设置使用perfork MPM运行方式的参数
StartServers       8       \\服务器启动时,执行8个httpd进程
MinSpareServers    5      \\最小的备用程序数量为5
MaxSpareServers   20      \\最大的备用程序数量为20
ServerLimit      256      \\服务器允许的进程数上限为256
MaxClients       256      \\服务器允许启动的最大进程数为256
MaxRequestsPerChild 4000   \\服务进程允许的最大请求数为4000
</IfModule>
<IfModule worker.c>
StartServers        2      \\服务器启动的服务进程数量为2
MaxClients          150  \\服务器允许启动的最大进程数为150
MinSpareThreads     25   \\保有的最小工作线程数目为25
MaxSpareThreads     75   \\允许保有的最大工作线程数目为75
ThreadsPerChild     25    \\每个服务进程中的工作线程常数为25
MaxRequestsPerChild 0     \\服务进程允许的最大请求数不限
</IfModule>



<VirtualHost 192.168.1.50:80>
// ip地址和端口
ServerAdmin root@zyxweb.com
// 管理员邮箱
DocumentRoot /var/www/w1
// 网站路径
ServerName w1.zyxweb.com
// 网站域名
ErrorLog logs/w1-error_log
// 错误日志
CustomLog logs/w1-access_log common
// 自定义日志
</VirtualHost>

<VirtualHost 192.168.1.51:80>
ServerAdmin root@zyxweb.com
DocumentRoot /var/www/w2
ServerName w2.zyxweb.com
ErrorLog logs/w2-error_log
CustomLog logs/w2-access_log common
</VirtualHost>

网站目录:/var/www/[自建目录]
echo hello w1! > /var/www/w1/index.html
// 网站下方新建index.html


本地测试修改host: /etc/hosts
192.168.1.50 w1.sdflc.com
192.168.1.51 w2.sdflc.com

起别名

Alias : 别名
alias /down "/var/www/test"
<VirtualHost 192.168.1.50:80>
ServerAdmin root@sdflc.com
DocumentRoot /var/www/w1
ServerName w1.sdflc.com
<directory /var/www/test>  ~
options indexes multiviews
allowoverride none
order allow,deny
allow from all
</directory>               ~
ErrorLog logs/w1-error_log
CustomLog logs/w1-access_log common
</VirtualHost>

基于域名的虚拟主机配置

一个域名 --> 1个ip
1个ip --> 多个域名
w1.sdflc.com,w2.sdflc.com --> 192.168.0.50  

namevirtualhost 192.168.1.50:80   ~
alias /down "/var/www/test" 
<VirtualHost 192.168.1.50:80>
ServerAdmin root@sdflc.com
DocumentRoot /var/www/w1
ServerName w1.sdflc.com
<directory /var/www/test>   
options indexes multiviews
allowoverride none
order allow,deny
allow from all
</directory>               
ErrorLog logs/w1-error_log
CustomLog logs/w1-access_log common
</VirtualHost>

<VirtualHost 192.168.1.50:80>
ServerAdmin root@sdflc.com
DocumentRoot /var/www/w2
ServerName w2.sdflc.com
ErrorLog logs/w2-error_log
CustomLog logs/w2-access_log common
</VirtualHost>

基于认证的配置

order allow,deny   // 这个顺序很重要!!!!!!!!先拒绝在允许就是白名单
allow from 192.168.0.1
deny from all

用户的认证

htpasswd [选项] [密码文件的名称] [用户名]
-c 创建一个新的密码文件 再次添加用户时不需要加
-m 采用md5编码加密
添加root账户
 


authname "w2 passwd" // 认证名称
authtype basic       // 认证类型
authuserfile [自定义密码文件路径]    // 认证文件名称
require user centos  // 只能使用centos
或
require valid-user   // 允许所有认证文件的用户
require group [组名]:用户1 用户2

Apache日志字段说明

格式说明描述
%a远程IP地址
%A本地IP地址
%b所发送的字节数,不包含http头
%{variable}eVariable环境变量的内容
%h远程主机
%f文件名
%m请示方法
%l远程登录名
%r请求的第一行
%t时间,按照默认的格式
%U请求的URL路径
%v请求的服务器名称
%P服务请求的子进行ID
%p服务器响应请求时使用的端口
%s状态
%u远程用户
阅读剩余
THE END