本章主要描述下怎么样用apache搭建web网站
~
URL
:(
Uniform Resource Locator
)统一资源定位符
示例
:
http://www.test.com:80/1/index.html
www.test.com
:IP
也可以,域名更安全
:80
:端口
http默认
对应
80
端口,
https默认
对应
443
端口
/1/index.html
:网站目录和文件,.html为静态网站,.php为php写的动态网站
主配置文件:
/etc/httpd/conf/httpd.conf
子配置文件:
/etc/httpd/conf.d/*.conf
yum –y install httpd
systemctl start httpd
systemctl enable httpd
getenforce #查看selinux运行状态
setenforce 0 #临时关闭selinux
selinux开机不自启的配置如下:
执行:vi /etc/selinux/config
将SELINUX=xxxx 修改为SELINUX=disabled
systemctl status firewalld #检查firewalld是否启动,未启动需执行:systemctl start firewalld;已启动请忽略
systemctl enable firewalld #做开机启动
netstat -anp |grep httpd #查看httpd所用端口,为80
firewall-cmd --add-port=80/tcp #firewalld放开httpd所用80端口
firewall-cmd --add-port=80/tcp --permanent #端口做永久生效
firewall-cmd --add-service=http
firewall-cmd --add-service=http --permanent #保险起见,把http service直接添加了
firewall-cmd --reload #刷新
1、浏览器访问,地址栏
输入
:主机
IP
,会采用默认80端口进入访问
2
、
系统内
,
执行命令
:
curl IP
,回显网页文本;执行命令:curl
–
I
IP
,回
显内容加HTTP状态码
1
、
静态页面就是设计者把页面上所有东西都设定好、做死了,然后放上去,不管是谁在任何时候看到的页面内容都是一样的,一成不变(除非手动修改页面内容)。静态html页面文件,可以直接用本地的浏览器打开。
2
、
动态页面的内容一般都是依靠服务器端的程序来生成的,不同人、不同时候访问页面,显示的内容都可能不同。网页设计者在写好服务器端的页面程序后,不需要手工控制,页面内容会按照页面程序的安排自动更改变换。
●域名,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传 输时标识计算机的电子方位。
●IP地址是Internet主机的作为路由寻址用的数字型标识,人不容易记忆。因而产生了域名这一种字 符型标识。什么叫域名?也就是说这种容易记忆的字符型标识就叫域名。
●通俗的说什么是域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。这也 意味着在全世界没有重复的域名。
1、删除默认欢迎页(不
要问为什么
,
删就是了
)
rm –rf /etc/httpd/conf.d/welcome.conf
cd /var/www/html
mkdir 1 2
echo “hello,a.com” > 1/index.html
echo “hello,b.com” > 2/index.html
netstat -anp|grep 81
netstat -anp|grep 82
vim /httpd/conf.d/8182.conf #创建并编辑一个8182.conf,必须要以.conf后缀
listen 81
listen 82
<virtualHost *:81>
servername a.com #指定网页名称,可以不写,名字随意
documentroot /var/www/html/1 #指定服务路径,网站根目录
<directory"/var/www/html/1">
options Indexes followsymlinks #主页显示,优先index
allowoverride none
require all granted
</directory>
</virtualHost>
<virtualhost *:82>
servername b.com
documentroot /var/www/html/2
<directory"/var/www/html/2">
options Indexes followsymLinks
allowoverride None
require all granted
</directory>
</VirtualHost>
firewall-cmd --add-port=81/tcp #firewalld放开81端口
firewall-cmd --add-port=82/tcp #firewalld放开82端口
firewall-cmd --add-port=81/tcp --permanent #端口做永久生效
firewall-cmd --add-port=82/tcp --permanent #端口做永久生效
firewall-cmd --reload #刷新
httpd –t
systemctl restart httpd
浏览器访问,地址栏
输入
:主机
IP:端口
,示例:192.168.20.20:81,会从81端口进入访问,显示a
.com
;
系统内
,
执行命令
:
curl IP:端口
,回显网页文本,示例:
curl 192.168.20.20:81 #回显a.com;
系统内,执行命令:curl
–
I
IP:端口
,回
显内容加HTTP状态码
,示例:
curl 192.168.20.20:81 #回显HTTP状态码和a.com
mkdir -p /work/html1
mkdir -p /work/html2
cd /etc/httpd/conf.d/
vim yuming.conf
<VirtualHost *:80>
ServerName www.AA.com
DocumentRoot /work/html1
<Directory "/work/html1">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.BB.com
DocumentRoot /work/html2
<Directory"/work/html2">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
echo "我是AA,你知道不" > /work/html1/index.html
echo "我是BB,你知道不" > /work/html2/index.html
vim /etc/hosts
192.168.20.20 www.AA.com
192.168.20.20 www.BB.com
httpd –t
systemctl restart httpd
firewall-cmd --add-port=80/tcp
firewall-cmd --add-port=80/tcp –permanent
firewall-cmd --reload #刷新
curl www.AA.com
curl www.BB.com
C:\Windows\System32\drivers\etc\hosts
(今天该路径修改该文件,经常遇到没有权限保存的问题,可以先修改为.txt格式,修改保存后再改回原格式)
浏览器地址栏输入
:www
.AA.com或www.BB.com
systemctl start httpd
systemctl enable httpd
firewall-cmd --add-port=80/tcp
firewall-cmd --add-port=80/tcp --permanent
echo "" > /var/www/html/index.php
或者:
rm -rf /etc/httpd/conf.d/welcome.conf
echo "" > /var/www/html/rrr.php
Apache
一共有
3
种稳定的
MPM
模式
(
多进程处理模块
)
,它们分别是
prefork
、
worker
、
event
。
http-2.2
版本的
httpd
默认的
mpm
工作模式为
prefork
,
2.4
版本的
httpd
默认是
event
工作模式。可以通过
httpd -V
来查看。
[root@test-CG ~]# httpd -V |grep -i "server mpm"
Server MPM: prefork
Apache
在启动之初,就预先
fork
一些子进程,然后等待请求进来。之所以这样做,是为了减少频繁创建和销毁进程的开销。每个子进程只有一个线程,在一个时间点内,只能处理一个请求。
优点:成熟稳定,兼容所有新老模块。同时,不需要担心线程安全的问题。
缺点:一个进程相对占用更多的系统资源,消耗更多的内存。而且,它并不擅长处理高并发请求。
(
作用:一个进程生成多个线程,一个线程处理一个用户请求
)
使用了多进程和多线程的混合模式。它也预先
fork
了几个子进程
(
数量比较少
)
,然后每个子进程创建一些线程,同时包括一个监听线程。每个请求过来,会被分配到
1
个线程来服务。线程比起进程会更轻量,
因为线程通常会共享父进程的内存空间,因此,内存的占用会减少一些。在高并发的场景下,因为比起
prefork
有更多的可用线程,表现会更优秀一些。
它和
worker
模式很像,最大的区别在于,它解决了
keep-alive
场景下,长期被占用的线程的资源浪费问题。
event MPM
中,会有一个专门的线程来管理这些
keep-alive
类型的线程,当有真实请求过来的时候,
将请求传递给服务线程,执行完毕后,又允许它释放。这样增强了高并发场景下的请求处理能力。
HTTP
采用
keepalive
方式减少
TCP
连接数量,但是由于需要与服务器线程或进程进行绑定,导致一个繁忙的服务器会消耗完所有的线程。
Event MPM
是解决这个问题的一种新模型,它把服务进程从连接中分
离出来。在服务器处理速度很快,同时具有非常高的点击率时,可用的线程数量就是关键的资源限
制,此时
Event MPM
方式是最有效的,但不能在
HTTPS
访问下工作。
看到这里
,
本篇就写完啦
,
如果对文中有误
,可以提出建议私信我哦~
~