您的位置:首页 > 运维架构 > Apache

LINUX 下的网络服务(Apache web 服务)

2019-02-21 12:52 381 查看

apache的相关知识

定义:
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。(网页服务器软件)

apache的安装部署

yum install httpd.x86_64 -y   	##apache软件
yum install httpd-manual -y	##apache的手册
systemctl start httpd
systemctl enable httpd



2.火墙

firewall-config ##图像化方式添加http和https火墙策略
firewall-cmd --permanent --add-service=http ##永久允许http
firewall-cmd --permanent --add-service=https ##永久允许https
firewall-cmd --reload ##火墙重新加载策略
firewall-cmd --list-all ##列出火墙信息

cd /var/www/html/     	##apache的/目录,默认发布目录
vim index.html		##默认发布文件
hello tom
systemctl restart httpd


测试:172.25.254.119

apache的基础信息

1.apache的默认访问接口是80

netstat -antlupe | grep httpd ##默认访问接口是80


2.默认访问目录 /var/www/html
3.默认共享的文件 index.html
4.apache的配置文件

/etc/httpd/conf  		##主配置目录
/etc/httpd/conf/httpd.conf	##主配置文件
/etc/httpd/conf.d/		##子配置目录
/etc/httpd/conf.d/*.conf	##子配置文件
rpm -qc httpd


5.默认安全上下文: http_sys_content_t
6.程序开启默认用户:apache
7.apache日志: /etc/httpd/logs/*

apache基础设置

1.修改默认端口为8080
1)selinux设置成强制模式

2)修改端口为8080:

vim /etc/httpd/conf/httpd.conf
42 Listen 8080  ##修改默认端口为8080
systemctl restart httpd.service
netstat -antlupe | grep httpd ##此时访问接口是8080



3)火墙添加httpd访问接口8080

##图像化方式 firewall-config
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload


测试http:172.25.254.119:8080

2.修改默认端口为特殊端口6666
1)修改端口为6666:

vim /etc/httpd/conf/httpd.conf
42Listen 1111  ##修改默认端口为6666
systemctl restart httpd.service

当selinux不为enforing时


2)特殊端口把selinux设置成强制模式

3)火墙添加httpd访问接口1111

firewall-cmd --permanent --add-port=6666/tcp
firewall-cmd --reload
semanage port -l | grep http 			##查看提供httpd服务的端口
semanage port -a -t http_port_t -p tcp 6666
##添加端口6666为提供httpd服务的端口,-a 添加 -t往那个协议里添加


测试http:172.25.254.117:1111

3.修改默认发布文件:

cd /var/www/html/ vim westos.html
<h1>westos linux</h1>
vim /etc/httpd/conf/httpd.conf
43 Listen 80 ##还原默认端口为80
164 DirectoryIndex westos.html index.html
##设置访问默认发布文件的先后顺序,当westos.html访问不到时访问index.html
systemctl restart httpd.service




测试http:172.25.254.119 访问的是发布文件westos.html

4.修改默认发布目录

mkdir -p /westos/html  		##建立新的发布目录
vim /westos/html/westos.html	##在发布目录下新建发布文件
hello tonny


vim /etc/httpd/conf/httpd.conf
DocumentRoot "/westos/html"
##DocumentRoot属性用于指定根目录路径
<Directory "/westos/html">
##指定URL路径的后续请求中可以进行操作的权限范围属性
Require all granted 	##提供所有权限
</Directory>
systemctl restart httpd.service



修改安全上下文

semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?'
restorecon -RvvF /westos


测试:http:172.25.254.119 ##访问的是你的修改的默认发布目录

apache的虚拟主机

1.还原环境

rm -fr /etc/httpd/conf/httpd.conf
yum reinstall httpd -y
systemctl start httpd
systemctl enable httpd

(也可以直接修改文件)
2.建立指定访问news和music的发布目录

mkdir /var/www/virtual/westos.com/news  -p 		##news.westos.com的默认发布目录
mkdir /var/www/virtual/westos.com/music  -p 	##music.westos.com的默认发布目录


3.在发布目录下默认发布文件

vim /var/www/virtual/westos.com/news/index.html
##new.westos.com的默认发布文件
news
vim /var/www/virtual/westos.com/music/index.html
##music.westos.com的默认发布文件
music


4.apache的子配置目录中建立子配置文件

cd /etc/httpd/conf.d/ ##切换到apache的子配置目录
vim adefautl.conf
<VirtualHost _default_:80>
DocumentRoot /var/www/html
</VirtualHost>


vim news.conf
<VirtualHost *:80>
ServerName news.westos.com ##访问的域名
DocumentRoot /var/www/virtual/westos.com/news ##访问域名时读取的发布文件
Customlog logs/news.log combined ##指定一个日志CustomLog combined混合型日志
</VirtualHost>
<Directory "/var/www/virtual/westos.com/news">
Require all granted
</Directory>

vim music.conf
<VirtualHost *:80>
ServerName music.westos.com ##访问的域名
DocumentRoot /var/www/virtual/westos.com/music ##访问域名时读取的发布文件
Customlog logs/music.log combined ##指定一个日志CustomLog combined混合型日志
</VirtualHost>
<Directory "/var/www/virtual/westos.com/music">
Require all granted
</Directory>



真机测试:

vim /etc/hosts     ##本地解析
172.25.254.119 www.westos.com news.westos.com music.westos.com



内部的访问控制

基于IP的访问控制
1.只允许IP为172.25.254.119的主机访问

cd /etc/httpd/conf.d
vim adefautl.conf
<VirtualHost _default_:80>
DocumentRoot /var/www/html
CustomLog logs/default.log combined
</VirtualHost>
<Directory "/var/www/html"> ##访问的目录
Order Deny,Allow ##按Deny,Allow的顺序访问
Allow from 172.25.254.119 ##只172.25.254.119允许
Deny from all ##不允许任何人访问
</Directory>



测试:
IP为172.25.254.119的主机可以访问

真机无法访问

2.禁止IP为172.25.254.119的主机访问

cd /etc/httpd/conf.d
vim adefautl.conf
<VirtualHost _default_:80>
DocumentRoot /var/www/html
CustomLog logs/default.log combined
</VirtualHost>
<Directory "/var/www/html"> ##访问的目录
Order Allow, Deny ##按 Allow, Deny的顺序访问
Allow fromall ##只允许允许任何人访问
Deny from all ##不允许172.25.254.119
</Directory>



测试:
IP为172.25.254.119的主机不可以访问

真机(其他)可以访问

基于用户的访问控制

cd /etc/httpd/conf.d
htpasswd -cm http_userlist admin ##创建用户列表,添加用户admin并设置其密码 cat http_userlist ##查看用户列表
htpasswd -m http_userlist admin1 ##在用户列表中添加用户admin1

vim a_defautl.conf
<VirtualHost _default_:80>
DocumentRoot /var/www/html
CustomLog logs/default.log combined
</VirtualHost>
<Directory "/var/www/html">
AuthUserFile /etc/httpd/conf.d/http_userlist (上面创建的名称)
AuthName "please input username and password !!" ##用户登陆提示信息
AuthType basic ##basic 基本认证,只看用户和密码其他不看 ##
#Require user admin ##只允许admin用户可以登陆
Require valid-user ##所有列表用户都可以
</Directory>
systemctl restart httpd



检测:
172.25.254.119
输入正确的用户和密码才可以访问成功

apache支持的语言

html语言
php语言
1.访问文件index.php

cd /var/www/html/
vim index.php
<?php
phpinfo();
?>

2.安装php

yum install php -y
cd /etc/httpd/conf.d



测试:172.25.254.119/index.php

CGI

CGI 通用网关接口是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据库API 与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。
功能:绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能。
1.cgi发布文件

mkdir /var/www/html/cgi
vim /var/www/html/cgi/index.cgi  ##新建cgi默认发布文件
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date` ;


2.给cgi文件可执行的权限

./index.cgi


3.修改安全上下文

semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
##修改安全上下文,这是个执行的文件
restorecon -RvvF /var/www/html/cgi
##重新读取文件/var/www/html/cgi


4.修改子配置目录下的主配置文件

cd /etc/httpd/conf.d/
vim adefautl.conf
<VirtualHost _default_:80>
DocumentRoot /var/www/html
CustomLog logs/default.log combined
</VirtualHost>
<Directory “/var/www/html“>
Options +ExecCGI AddHandler cgi-script .cgi
</Directory>



测试
172.25.254.119/cgi/index.cgi

WSGI

1.安装mod_wsgi.x86_64

yum install mod_wsgi -y
vim /var/www/html/cgi/westos.wsgi
chmod +x westos.wsgi




编辑配置文件

vim /etc/httpd/conf.d/adefult.conf



测试172.25.254.119/WSGI

HTTPS

apache的加密访问
1.安装软件

yum install mod_ssl -y
yum install crypto-utils.x86_64 -y



2.生成加密文件

cd /etc/httpd/conf.d
genkey www.westos.com





vim /etc/httpd/conf.d/ssl.conf
100 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
107 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
systemctl restart httpd



测试:https://172.25.254.119



点击锁的标志—>More information


设定https虚拟主机并设定网页重写

cd /var/www/westos.com/
mkdir login
mkdir login/html
vim login/html/index.html


编辑配置文件

^(/.*)$ ##客户端在浏览器地址栏中输入的所有字符
https:// ##强制客户端加密访问
%{HTTP_HOST} ##客户端请求主机
$1 ##表示
^(/.*)$的值
[redirect=301] ##更改永久生效 302一次性生效

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: