Apache虚拟主机配置详细教程(1)

最后

我想问下大家当初选择做程序员的初衷是什么?有思考过这个问题吗?高薪?热爱?

既然入了这行就应该知道,这个行业是靠本事吃饭的,你想要拿高薪没有问题,请好好磨练自己的技术,不要抱怨。有的人通过培训可以让自己成长,有些人可以通过自律强大的自学能力成长,如果你两者都不占,还怎么拿高薪?

架构师是很多程序员的职业目标,一个好的架构师是不愁所谓的35岁高龄门槛的,到了那个时候,照样大把的企业挖他。为什么很多人想进阿里巴巴,无非不是福利待遇好以及优质的人脉资源,这对个人职业发展是有非常大帮助的。

如果你也想成为一名好的架构师,那或许这份Java核心架构笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。

中高级开发必知必会:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

/usr/local/apache/htdocs/love1

[root@localhost love1]# vim …/…/conf/extra/httpd-vhosts.conf

[root@localhost love1]# cat …/…/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>

ServerAdmin rivers@163.com

DocumentRoot “/usr/local/apache/htdocs/love1”

ServerName www.love1.lan1.com

ServerAlias www.biaobai.com

ErrorLog “love1.com-error_log”

CustomLog “logs/love1.com-access_log” common

<VirtualHost *:80>

ServerAdmin rivers@163.co

DocumentRoot “/usr/local/apache/htdocs/love2”

ServerName www.love2.lan2.com

ErrorLog “logs/love2.com-error_log”

CustomLog “logs/love2.com-access_log” common

[root@localhost love1]#

  • 重启服务

[root@localhost love1]# /usr/local/apache/bin/apachectl stop

[root@localhost love1]# /usr/local/apache/bin/apachectl start

  • 测试:

  • 输入:www.love1.lan1.com 访问

在这里插入图片描述

  • 输入:www.love2.lan2.com

在这里插入图片描述

调试worker工作模式


Worker MPM引擎配置段;

StartServers 8

#默认启动Apache 工作进程数

MaxClients 2000

#每秒支持的最大客户端并发;

MinSpareThreads 25

#最小空闲线程数;

MaxSpareThreads 60

#最小空闲线程数;

ThreadsPerChild 40

#每个进程启动的线程数;

MaxRequestsPerChild 0

#每个进程能处理的最大请求数,0表示无限制;

进行压力测试


  • 测试工具 ab

  • 常用参数:

  • -c 并发多少次

  • -n 请求次数

[root@localhost apache]# ./bin/ab -c 1000 -n 10000 http://www.love2.lan2.com/index.html

This is ApacheBench, Version 2.3 <$Revision: 1879490 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.love2.lan2.com (be patient)

Completed 1000 requests

Completed 2000 requests

Completed 3000 requests

Completed 4000 requests

Completed 5000 requests

Completed 6000 requests

Completed 7000 requests

Completed 8000 requests

Completed 9000 requests

Completed 10000 requests

Finished 10000 requests

Server Software: Apache/2.4.46

Server Hostname: www.love2.lan2.com

Server Port: 80

Document Path: /index.html

Document Length: 585 bytes

Concurrency Level: 1000

Time taken for tests: 1.908 seconds

Complete requests: 10000

Failed requests: 0

Total transferred: 8310000 bytes

HTML transferred: 5850000 bytes

Requests per second: 5240.58 [#/sec] (mean)

Time per request: 190.819 [ms] (mean)

Time per request: 0.191 [ms] (mean, across all concurrent requests)

Transfer rate: 4252.85 [Kbytes/sec] received

Connection Times (ms)

min mean[+/-sd] median max

Connect: 0 51 212.4 1 1009

Processing: 11 53 175.6 16 1618

Waiting: 8 53 175.6 15 1618

Total: 12 105 288.7 17 1723

Percentage of the requests served within a certain time (ms)

50% 17

66% 19

75% 23

80% 31

90% 203

95% 1019

98% 1219

99% 1419

100% 1723 (longest request)

[root@localhost apache]# ./bin/ab -c 1000 -n 50000 http://www.love2.lan2.com/index.html

This is ApacheBench, Version 2.3 <$Revision: 1879490 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.love2.lan2.com (be patient)

Completed 5000 requests

Completed 10000 requests

Completed 15000 requests

Completed 20000 requests

Completed 25000 requests

Completed 30000 requests

Completed 35000 requests

Completed 40000 requests

Completed 45000 requests

apr_socket_recv: Connection reset by peer (104)

Total of 49944 requests completed

[root@localhost apache]#

权限设置


  • 两种权限设置方法

<VirtualHost *:80>

ServerAdmin rivers@163.com

DocumentRoot “/usr/local/apache/htdocs/love1”

ServerName www.love1.lan1.com

ServerAlias www.biaobai.com

ErrorLog “love1.com-error_log”

CustomLog “logs/love1.com-access_log” common

<Directory /usr/local/apache/htdocs/love1>

AllowOverride ALL

Options Indexes FollowSymLinks

Order allow,deny

Allow from 192.168.10.10

<VirtualHost *:80>

ServerAdmin rivers@163.co

DocumentRoot “/usr/local/apache/htdocs/love2”

ServerName www.love2.lan2.com

ErrorLog “logs/love2.com-error_log”

CustomLog “logs/love2.com-access_log” common

<Directory /usr/local/apache/htdocs/love2>

Require all granted

Require not ip 192.168.10.10

[root@localhost extra]# curl http://www.love2.lan2.com/index.html

<!doctype html>

LOVE

我观察你很久了

小姐姐做我对象好不好?

不好

[root@localhost extra]#

[root@localhost ~]# curl http://www.love2.lan2.com/index.html

403 Forbidden

Forbidden

You don't have permission to access this resource.

[root@localhost ~]#

Apache 配置文件详解


  • Apache 的配置文件 是Apache WEB难点,读者需要掌握配置文件中每个参数的含义,理解日常运维中遇到的故障,并解决问题。

ServerTokens OS 服务器的版本和操作系统而已,不需要改动他,如果不在乎你的系统信息被远程用户查询到,则可以将这个项目注释掉(不建议)

ServerRoot “/etc/httpd” 服务器设置的最顶层目录,有点类似于chroot那种感觉。包括logs , modules等的数据都应该要放置在此目录下面(如果这些配置没有声明成绝对路径的话)

PidFile run/httpd.pid 放置PID的文件,可方便apache软件的管理。只有相对路径考虑

ServerRoot 设置值,所以文件在/etc/httpd/run/httpd.pid

Timeout 60 不论接收或发送,当持续连接等待超过60秒则该次连接就中断一般来说,此数值在300秒左右即可,不需要修改这个原始值

KeepAlive Off 这里最好把默认值“Off”修改为“On”。这里表示是否允许持续性的连接,也就是一个TCP连接可以具有多个文件资料传送的要求

MaxKeepAliveRequests 100 可以将默认的100改成500或更高与上一个设置的值KeepAlive有关,当KeepAlive的值设置为On的时候,这个数值可以决定。该次连接能够传输的最大传输数量。为了提高效率则可以改大一点。0代表不限制

KeepAliveTimeout 65 在KeepAlive设置为“On”的情况下,该次连接在最后一次传输后等待延迟的秒数,当超过该秒数的时候该连接中断。保持默认值15即可,如果设置的值太高(等待时间较长),在较忙碌的系统上面将会有较多的Apache程序占用资源,可能有效率方面的问题。

StartServers 8 启动Apache的时候,唤醒几个PID来处理服务的。#Apache使用了进程预派生的技术来处理请求,大大提高了响应速度,

MinSpareServers 5 最小预备使用的PID数量

MaxSpareServers 20 最大预备使用的PID数量

ServerLimit 4096 服务器的限制

MaxClients 4096 最多可以有多少个客户端同时连接到Apache

Maxrequestsper Child 4000 每个进程能处理的最大请求数

Loadmodule mod version.so 静态加载 apache相关模块

erverAdminsupport@ifed.net 管理员邯箱,网站异常,错误信息会发生至该邯箱

Apache Rewrite 规则讲解


  • httpd.conf (Apache的主配文件)

[root@localhost ~]# ll /usr/local/apache/conf/httpd.conf

-rw-r–r-- 1 root root 19069 Apr 4 11:57 /usr/local/apache/conf/httpd.conf

[root@localhost ~]#

httpd.conf是Apache的主配文件,整个Apache也不过就是这个配置文件,里面几乎包含了所有的配置。有的distribution都将这个文件拆分成数个小文件分别管理不同的参数。但是主要配置文件还是以这个文件为主。只要找到这个文件名就知道如何设置了。后面会详细解释Apache主配文件的每一行配置

  • 虚拟主机配置文件

[root@localhost ~]# ll /usr/local/apache/conf/extra/httpd-vhosts.conf

-rw-r–r-- 1 root root 810 Apr 4 14:05 /usr/local/apache/conf/extra/httpd-vhosts.conf

[root@localhost ~]#

  • Apache支持很多的外挂模块

[root@localhost ~]# ll /usr/local/apache/modules/

total 3576

-rw-r–r-- 1 root 40 15845 Apr 3 16:36 httpd.exp

-rwxr-xr-x 1 root root 13632 Apr 3 16:47 mod_access_compat.so

-rwxr-xr-x 1 root root 13344 Apr 3 16:47 mod_actions.so

-rwxr-xr-x 1 root root 22776 Apr 3 16:47 mod_alias.so

例如PHP以及SSL都是Apache外挂的一种。所有你想要使用的模块文件默认是放置在这个目录当中的

  • 网站根目录

这个目录就是Apache默认的存放首页的目录(默认是index.html)

[root@localhost ~]# ll /usr/local/apache/htdocs/

total 0

drwxr-xr-x 5 root root 76 Apr 4 10:37 love1

drwxr-xr-x 5 root root 78 Apr 4 10:38 love2

[root@localhost ~]#

  • Apache 默认小图标

[root@localhost ~]# ll /usr/local/apache/icon

这个目录提供Apache默认给予的一些小图示,可以随意使用。

  • /var/www/cgi-bin/

[root@localhost ~]# ll /usr/local/apache/cgi-bin/

total 16

-rw-r–r-- 1 root 40 820 Dec 18 2012 printenv

-rw-r–r-- 1 root 40 1074 Dec 18 2012 printenv.vbs

-rw-r–r-- 1 root 40 1133 Dec 18 2012 printenv.wsf

-rw-r–r-- 1 root 40 1261 Dec 18 2012 test-cgi

[root@localhost ~]#

默认给一些可执行的CGI(网页程序)程序放置的目录。

  • 日志文件

[root@localhost ~]# ll /usr/local/apache/logs/

total 5636

-rw-r–r-- 1 root root 851 Apr 3 21:59 access_log

-rw-r–r-- 1 root root 10240 Apr 4 14:05 error_log

-rw-r–r-- 1 root root 5 Apr 4 14:05 httpd.pid

-rw-r–r-- 1 root root 6247 Apr 4 13:54 love1.com-access_log

-rw-r–r-- 1 root root 5736884 Apr 4 14:06 love2.com-access_log

-rw-r–r-- 1 root root 203 Apr 4 14:06 love2.com-error_log

默认的Apache日志文件都放在这里,对于流量比较大的网站来说,这个目录要格外注意,这里的数据文件可能会非常大。

  • 启动脚本

[root@localhost ~]# ll /usr/local/apache/bin/apachectl

-rwxr-xr-x 1 root 40 3434 Apr 3 16:29 /usr/local/apache/bin/apachectl

[root@localhost ~]#

这个就是Apache的主要执行文件,这个执行文件其实就是一个Shell Script而已,他可以主动地侦测系统上面的一些设置值,好让你启动Apache时更简单一些。

  • 二进制执行文件

[root@localhost ~]# ll /usr/local/apache/bin/httpd

-rwxr-xr-x 1 root root 912304 Apr 3 16:47 /usr/local/apache/bin/httpd

[root@localhost ~]#

这个是主要的Apache二进制执行文件。

  • 密码文件

[root@localhost ~]# ll /usr/local/apache/bin/htpasswd

-rwxr-xr-x 1 root root 27608 Apr 3 16:47 /usr/local/apache/bin/htpasswd

[root@localhost ~]#

( (Apache密码保护)

在当你想要登入某些网页时你需要输入帐号与密码,那Apache本身就提供一个最基本的密码保护方式,该密码的产生就是通过这个命令来实现的。

Apache配置文件权限操作


  • 在权限配置一块让人一头雾水,下面我整理了一下相关的文档,希望能拨开云雾

更多:Java进阶核心知识集

包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

image

高效学习视频

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

ot@localhost ~]# ll /usr/local/apache/bin/htpasswd

-rwxr-xr-x 1 root root 27608 Apr 3 16:47 /usr/local/apache/bin/htpasswd

[root@localhost ~]#

( (Apache密码保护)

在当你想要登入某些网页时你需要输入帐号与密码,那Apache本身就提供一个最基本的密码保护方式,该密码的产生就是通过这个命令来实现的。

Apache配置文件权限操作


  • 在权限配置一块让人一头雾水,下面我整理了一下相关的文档,希望能拨开云雾

更多:Java进阶核心知识集

包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

[外链图片转存中…(img-jYaUz36y-1715810585154)]

高效学习视频

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值