Linux中apche配置

apache安装部署
yum install httpd -y          ##安装apache软件
yum install httpd-manual      ##安装apache手册
systemctl start httpd          
systemctl enable httpd
firewall-cmd --list-all       ##列出火墙信息
firewall-cmd --permanent --add-service=http  ##若是火墙开启需将http加入火墙允许列表
firewall-cmd --reload         ##火墙重新加载策略

这里写图片描述

vim /var/www/html/index.html 

    <h1>hello world</h1>

这里写图片描述
测试:打开浏览器访问,172.25.254.114,此处ip为刚才安装部署apache的主机ip
这里写图片描述

apache基础信息
/var/www/html/             ##apache默认发布目录
/var/www/html/index.com    ##默认发布文件
/etc/httpd/conf            ##默认配置目录
/etc/httpd/conf/httpd.conf ##默认配置文件
/etc/httpd/conf.d/*.conf   ##子配置文件
/etc/httpd/conf.d/         ##子配置目录
httpd_sys_contnet_t        ##默认安全上下文
80                         ##默认端口
apache                     ##程序开启默认用户
/etc/httpd/logs/*          ##apache日志(分访问日志和报错日志)
修改默认端口:
 vim /etc/httpd/conf/httpd.conf
     Listen 8080      ##修改默认端口为8080

 firewall-cmd --permanent --add-port=8080/tcp     ##因为火墙默认端口是80所以要将8080端口加入火墙允许列表
 firewall-cmd --reload
 systemctl restart httpd

这里写图片描述
测试:打开浏览器访问172.25.254.114:8080
这里写图片描述

修改默认发布文件:

默认发布文件就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个,有访问顺序(配置文件中写在前面的优先)

 vim /var/www/html/index.html 
 <h1>test.html</h1>

 vim /etc/httpd/conf/httpd.conf
 DirectoryIndex test.html index.html    ##当test.html不存在时才去访问index.html 
 systemctl restart httpd

这里写图片描述
这里写图片描述
测试:打开浏览器访问172.25.254.114
这里写图片描述
当test.html文件被删除时,再次访问,此时访问的为index.html文件
这里写图片描述
这里写图片描述

修改默认发布目录

apache默认发布目录修改:企业7之前版本修改完配置文件不需要授权,企业7之后需要

mkdir /www/html -p
vim /www/html/index.html
  <h1>/www/html/index.html</h1>

这里写图片描述

vim /etc/httpd/conf/httpd.conf
  DocumentRoot "/www/html"
  <Directory "/www">
  Require all granted  ##允许所有用户访问
  </Directory>

systemctl restart httpd.service

这里写图片描述
测试:打开浏览器访问172.25.254.114
这里写图片描述

访问控制

1)主机访问控制

mkdir /var/www/html/westos
vim /var/www/html/westos/index.html
   <h1>westos/index.html</h1>

这里写图片描述

vim /etc/httpd/conf/httpd.conf
   <Directory "/var/www/html/westos">
   Order Allow,Deny    ##先读Allow再读Deny,后读的会覆盖先读的信息
   Allow from All
   Deny from 172.25.254.114
   </Directory>

systemctl restart httpd.service

这里写图片描述
测试:
打开浏览器访问172.25.254.114/westos
会发现这台172.25.254.114主机访问不了,但是别的主机可以
这里写图片描述
2)用户访问控制

vim /etc/httpd/conf/httpd.conf
   <Directory "/var/www/html/westos">
       AuthUserFile  /etc/httpd/conf/httpuser
       AuthType      basic
       AuthName      "Please input your name and password !!"              ##提示语
       Require user  admin       ##允许admin用户访问
       Require       valid-user  ##允许所有用户访问,此参数本次不用
   </Directory>

这里写图片描述
建立用户登陆文件:

cd /etc/httpd/conf/              ##下面用户文件需要建立在此目录中                                          
htpasswd -cm httpuser admin    ##建立用户
htpasswd -m  httpuser admin1    ##当westosuser文件存在时,再次建立用户不能加c不然新文件会覆盖原来文件
systemctl restart httpd.service

这里写图片描述
测试:
用浏览器访问ip/westos
会出现用户登陆界面,admin1用户访问不了,admin可以
这里写图片描述
这里写图片描述

apache虚拟主机

一台主机发布多个页面

vim /etc/httpd/conf/httpd.conf

mkdir /var/www/virtual/news -p
mkdir /var/www/virtual/music -p
mkdir /var/www/virtual/music/html -p
mkdir /var/www/virtual/news/html -p
vim /var/www/html/index.html
   <h1>hello world</h1>

vim /var/www/virtual/music/html/index.html
   <h1>music.westos.com</h1>

vim /var/www/virtual/news/html/index.html
   <h1>news.westos.com</h1>

这里写图片描述

vim /etc/httpd/conf.d/a_default.conf
   <VirtualHost _default_:80>
       DocumentRoot /var/www/html
       CustomLog logs/default.log combined
   </VirtualHost>

vim /etc/httpd/conf.d/news.conf
   <VirtualHost *:80>
       ServerName news.westos.com
       DocumentRoot /var/www/virtual/news/html
       CustomLog logs/news.log combined
   </VirtualHost>
   <Directory "/var/www/virtual/news/html">
       Require all granted
   </Directory>

cd /etc/httpd/conf.d/
cp news.conf music.conf
vim music.conf
:%s/news/music/g

这里写图片描述

systemctl restart httpd.service

测试:

vim /etc/hosts        ##添加本地域名解析
172.25.254.114 www.westos.com news.westos.com music.westos.com   ##ip为浏览器所在主机ip

这里写图片描述
打开浏览器依次访问
这里写图片描述

apache支持的语言

php:

yum install php -y
vim /var/www/html/index.php
    <?php
    phpinfo();
?>

这里写图片描述

systemctl restart httpd.service

浏览器查看:172.25.254.114/index.php
这里写图片描述
cgi:

yum install httpd-manual -y
mkdir /var/www/html/cgi
vim /var/www/html/cgi/index.cgi
    #!/usr/bin/perl
    print "Content-type: text/html\n\n";
    print `date`;

chmod 755 /var/www/html/cgi/index.cgi
/var/www/html/cgi/index.cgi       ##运行cgi脚本
vim /etc/httpd/conf.d/a_default.conf
    <Directory "/var/www/html/cgi">
    Options +ExecCGI
    AddHandler cgi-script .cgi
    </Directory>

systemctl restart httpd

这里写图片描述
浏览器查看:172.25.254.114/cgi/index.cgi
这里写图片描述

https

apache证书认证,相当于给http加密
1)部署https:yum install mod_ssl -y :生成443端口以及https服务(若是火墙开启需将https加入火墙允许列表,然后重新加载火墙列表)

yum install mod_ssl.x86_64  -y

2)配置证书信息:yum install crypto-utils -y :生成产生加密证书

yum install crypto-utils -y
genkey www.westos.com     ##生成证书
/etc/pki/tls/certs/www.westos.com.crt 
/etc/pki/tls/private/www.westos.com.key

此处显示加密的key和加密证书的文件及其位置,选择Next进行下一步
这里写图片描述
选择key文件的大小,越大等下等待时间越长,512安全性比较低,建议选1024
这里写图片描述
此步为收集密码数据,速度较慢,可以在一个新的shell命令行随机输入内容,速度会迅速加快
这里写图片描述
该步骤为是否向CA机构发送,选择NO就行
这里写图片描述
这里直接选择Next继续
这里写图片描述
填写网站的基本信息,依次为国家、省份、所在城市、公司名称,所属部门,网站网址名称
完成后Next即可创建成功
这里写图片描述
可以看见证书密码信息
这里写图片描述
3)在https的配置文件中用我们做的证书密码替换原有配置

vim /etc/httpd/conf.d/ssl.conf
    #SSLCertificateFile /etc/pki/tls/certs/localhost.crt
    SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt

    #SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key

这里写图片描述
systemctl restart httpd.service

浏览器查看:https://172.25.254.114
选择I Understand the Risks
点击Add Exception
这里写图片描述
先点击Get Certificate 再点击Confirm Security Exception
这里写图片描述
然后可以访问
这里写图片描述
点击域名左边的锁还可以查看证书具体信息
这里写图片描述

网页重写

即http自动跳转https

mkdir -p /var/www/virtual/login/html
vim /var/www/virtual/login/html/index.html
<h1>login.westos.com</h1>

这里写图片描述

vim /etc/httpd/conf.d/login.conf
    <VirtualHost *:443>
    ServerName login.westos.com
    DocumentRoot /var/www/virtual/login/html
    CustomLog logs/login.log combined
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
    </VirtualHost>
    <Directory "/var/www/virtual/login/html">
    Require all granted
    </Directory>
    <VirtualHost *:80>
    ServerName login.westos.com
    RewriteEngine On
    RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301] 
    </VirtualHost>

这里写图片描述

RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]   ##在客户在浏览器中输入的所有字符前加上https://
^(/.*)$          ##客户在浏览器地址中输入的所有字符
https://         ##强制客户加密访问
%{HTTP_HOST}     ##客户主机请求主机
$1		 ##“$1”表示^(/.*)$的值
[redirect=301]   ##临时重写,302永久转换

systemctl restart httpd.service

查看:使用浏览器输入login.westos.com查看会自动跳转https://login.westos.com
查看前需在本机添加域名解析
这里写图片描述
这里写图片描述

搭建论坛

1)安装mariadb-server,下载论坛安装包并解压

yum install mariadb-server -y
systemctl start mariadb
mysql_secure_installation    ##开启安全模式
cd /var/www/html
下载论坛软件
unzip Discuz_X3.2_SC_UTF8.zip  ##将下载的软件压缩包解压

这里写图片描述
2)用浏览器访问 ip/upload 此处ip为安装论坛的主机ip
点击我同意继续安装
这里写图片描述
3)由于某些文件不可写,需改变权限才可继续安装
这里写图片描述

cd upload
chmod 777 config -R
chmod 777 data -R
chmod 777 uc_* -R
yum install php-mysql.x86_64 -y   ##解决函数依赖问题
systemctl restart httpd

这里写图片描述
4)刷新页面点击下一步继续安装
这里写图片描述
5)选择全新安装,点击下一步继续
这里写图片描述
6)root和管理员设置密码,点击下一步继续
这里写图片描述
7)等待安装即可
这里写图片描述
8)由于下载的免费软件所以会有广告,点击右下角点此访问就行
这里写图片描述
9)搭建完成,登陆即可查看
这里写图片描述

squid服务(正向代理)

服务端:

yum install squid -y
vim /etc/squid/squid.conf
    http_access allow all
    cache_dir ufs /var/spool/squid 100 16 256 ##100:缓存100M大小,当超过100M会清除缓存。16:此目录下有16个一级目录。256:有256个二级目录

这里写图片描述

systemctl restart squid
systemctl stop firewalld

这里写图片描述
测试:
另外一台主机打开firefox,点击右上角三条杠
这里写图片描述
依次点击preferences—->Advanced—->Network—->Settings—->选择manual 那一行,并iqe选中Use this proxy server 那一行—->HTTP Proxy:ip Port:3128 ##ip为部署好squid的主机ip,端口为suqid端口可以在服务端/etc/squid/squid.conf文件里查看
这里写图片描述
配置完成之后点击OK即可
这里写图片描述
然后本来不能上网的主机就可以上网了
这里写图片描述

squid 代理加速(反向代理)

主服务器:正向代理所用的主机
这里写图片描述
副服务器:再新建一个虚拟机,做副服务器
这里写图片描述

yum install squid -y
vim /etc/squid/squid.conf
    http_access allow all
    http_port 80 vhost vport
    cache_peer 172.25.254.114 parent 80 0 no-query
    cache_dir ufs /var/spool/squid 100 16 256

这里写图片描述

systemctl restart squid.service 
systemctl stop firewalld

测试:确保主服务器的http默认发布文件里有内容,然后用客户机去访问副服务器,可以查看到主服务器的内容
这里写图片描述

访问轮询

1)还是修改上面的副服务器的squid配置文件里,副服务器squid的两个父节点,originserver指明是源服务器;round-robin参数指明;副服务器的squid通过轮询方式将请求发送到其中一台父节点,如果一台父节点down了,会从其他的的父节点抓取数据
2)将www.westos.com域的请求通过平衡轮询的方式转发到两个父节点的一个上(保证浏览器所在服务器本地解析里有这个网址

vim /etc/squid/squid.conf
    http_access allow all
    http_port 80 vhost vport
    cache_peer 172.25.254.114 parent 80 0 proxy-only round-robin originserver name=web1
    cache_peer 172.25.254.100 parent 80 0 proxy-only round-robin originserver name=web2
    cache_peer_domain web1 web2 www.westos.com
    cache_dir ufs /var/spool/squid 100 16 256

这里写图片描述

systemctl restart squid.service 

测试:用浏览器去访问这个网址,刷新可以看到,实现轮询(为了看到效果,两台父节点内容写的不一样;实际需要时,两台父节点的内容一致,缓解了服务器压力,也以防万一一个父节点出现问题,其他的父节点可以继续传输数据)
用浏览器访问前需添加本地解析 vim /etc/hosts
这里写图片描述
每刷新依次网页,内容也刷新
这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值