静态服务之Apache

静态服务之Apache与wiki部署

世上最重要的事,不在于我们在何处,而在于我们朝着什么方向走。
只能解析静态页面。 动态页面:只要和数据库进行连接的都属于动态页面,比如java写的代码,PHP的代码,python的代码。
web服务器:apache (参考服务器配置、优化。静态并发量最高2000) nginx tengine IIS  端口 全部为80!https为443端口
web中间件、web容器:
php: php-fpm(php端口9000)
java: (tomcat端口8080。并发量到150就不行了)、jboss
python: uwsgi(默认端口5000)
多实例: 在同一台服务器上启动多个相同apache进程。只要端口不一样就可以。
前端页面:静态元素: .html .img js css swf mp4 配合:apache、nginx。
后端页面:动态元素: .php .jsp .cgi .asp 配合:java、php、python
SQL
数据库-mysql、mariadb

Apache的工作模式---面试

apche工作的三种模式?介绍下特点,说明什么情况下采取不同的工作模式?
apche 3种工作模式,分别是prefork,worker,event
prefork 是一种进程,进程去请求处理,容易消耗内存但是稳定,某个进程出现问题不会影响其他请求,要求稳定时使用。
worker 使用多个子进程,每个子进程有多个线程,使用线程去处理请求,消耗内存小稳定不好,在访问量多的时候使用。
event 为了解决keep-alive 保持长连接工作模式,不支持用在https

常见的组合方式

LNMP (Linux + Nginx + MySQL + PHP)  #php-fpm就是php,这个组合是公司用的最多的组合
LAMP (Linux + Apache + MySQL + PHP) #php作为Apache的模块
Nginx + Tomcat   #java项目常用的组合。取代apache

一、apache安装

[root@apache-test ~]# systemctl stop firewalld
[root@apache-test ~]# systemctl disable firewalld
[root@apache-test ~]# setenforce 0
[root@apache-test ~]# yum install -y httpd
[root@apache-test ~]# systemctl start httpd
[root@apache-test ~]# netstat -lntp | grep 80 #查看apache端口
tcp6       0      0 :::80                   :::*                    LISTEN      2776/httpd
#端口80.可以改
index.html:默认主页名称
默认发布网站的目录:/var/www/html
系统产生apache账户,家目录是:/var/www

1.apache目录介绍

apache的工作目录(基准目录)
conf   存储配置文件
conf.d 存储配置文件
logs   存储日志 
modules 存储模块
run    存储Pid文件,存放的pid号码。是主进程号
主配置文件:
#: vim /etc/httpd/conf/httpd.conf 
ServerRoot "/etc/httpd" 工作目录
Listen 80 监听端口
Listen 192.168.2.8:80 指定监听的本地网卡 可以修改
Include conf.modules.d/*.conf 所有动态模块的加载配置
User apache apache子进程所有者 可以修改 有可能被人改称www账户 Group apache 进程的所属组
DocumentRoot "/var/www/html" 发布网站的默认目录,想改改这里。

二、访问控制

1.准备测试目录

[root@apache-test ~]# mkdir /var/www/html/test1 #创建测试目录
[root@apache-test ~]# echo test1 > /var/www/html/test1/index.html #编写测试文件

2.访问控制测试

可以直接编辑apache主配置文件

1.允许所有主机访问
[root@apache-test ~]# vim /etc/httpd/conf/httpd.conf

[root@apache-test ~]# systemctl restart httpd

访问:172.16.229.131/test1

2.只拒绝一部分客户端访问:
[root@apache-test ~]# vim /etc/httpd/conf/httpd.conf

[root@apache-test ~]# systemctl restart httpd

访问:172.16.229.131/test1

3.拒绝所有人
[root@apache-test ~]# vim /etc/httpd/conf/httpd.conf

[root@apache-test ~]# systemctl restart httpd

访问:172.16.229.131/test1

三、虚拟主机

虚拟主机:多个网站在一台服务器上。web服务器都可以实现。
三种:基于域名 基于端口 基于Ip
1.基于域名
[root@apache-test ~]# cd /etc/httpd/conf.d/
[root@apache-test conf.d]# vim test.conf   #创建配置文件
<VirtualHost *:80>   #指定虚拟主机端口,*代表任何人都可以访问,也可以指定ip
DocumentRoot /soso     #指定发布网站目录,自己定义
ServerName www.soso666.com  #指定域名,可以自己定义
<Directory "/soso/">
  AllowOverride None    #设置目录的特性,如地址重写
  Require all granted   #允许所有人访问
</Directory>
</VirtualHost>
​
<VirtualHost *:80>
DocumentRoot /soho
ServerName www.soho666.com
<Directory "/soho/">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>
[root@apache-test ~]# mkdir /soso #创建发布目录
[root@apache-test ~]# mkdir /soho
[root@apache-test ~]# echo soso > /soso/index.html #创建测试页面
[root@apache-test ~]# echo soho > /soho/index.html
[root@apache-test ~]# systemctl restart httpd


在wind电脑上面打开C:\Windows\System32\drivers\etc\hosts文件。可以用管理员身份打开

测试访问

基于端口

[root@apache-test ~]# vim /etc/httpd/conf/httpd.conf  ---添加

2.基于端口
[root@apache-test ~]# vim /etc/httpd/conf.d/test.conf
<VirtualHost *:81>   #修改端口
  DocumentRoot /soso
  ServerName www.soso666.com
<Directory "/soso/">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>
​
<VirtualHost *:82>   #修改端口
  DocumentRoot /soho
  ServerName www.soho666.com
<Directory "/soho/">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>
[root@apache-test ~]# systemctl restart httpd
注意:解析并没有变

访问:www.soso666.com:81

访问: www.soho666.com:82

3.基于IP
[root@apache-test ~]# ifconfig ens33:0 172.16.229.132  #添加一个临时ip
[root@apache-test ~]# vim /etc/httpd/conf.d/test.conf
<VirtualHost 172.16.229.131:80>   #指定ip
  DocumentRoot /soso
  ServerName www.soso666.com
<Directory "/soso/">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>
​
<VirtualHost 172.16.229.132:80>   #指定ip
  DocumentRoot /soho
  ServerName www.soho666.com
<Directory "/soho/">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>
[root@apache-test ~]# systemctl restart httpd

可以配置本地解析,也可以不配本地解析

172.16.229.132-----www.soho666.com