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
每刷新依次网页,内容也刷新