【linux进阶4】apache的服务使用(图文巨详细解释apache的正向和反向代理)
apache的使用
- 一、apache的基本介绍
- (1)Apache的作用
- (2)Apache的安装和启用
- (3)Apache的基本信息
- (4)基本查看
- 二、更改访问apache默认访问
- (1)Apache的访问端口进行修改
- (2)Apache的默认发布文件进行修改
- (3)默认发布目录更改
- 三 、Apache的访问控制
- (1) 实验环境
- (2)创建网页访问黑名单
- (3)创建ip黑名单
- (4)创建用户认证
- 四、单主机发布多个网页 (虚拟机)
- 五、apache支持的语言格式
- (1)创建php格式
- (2)创建cig格式(cgi通用网关接口)
- (3)创建wsgi文件(支持python语言)
- 六、网站加密认证(用https访问)
- (1)认证的意义
- (2)安装认证
- (3)对用户访问信息强制加密
- 七、squid 正向代理
- 八、squid反向代理
一、apache的基本介绍
(1)Apache的作用
我们在访问web服务器时通常使用的是http://方式,即超文本传输协议,提供这一协议服务的软件主要有Apache、nginx、stgw、jfe、Tengine等,比如百度web服务器使用的是Apache,淘宝web服务器使用的是Tengine。Linux发行的各个版本的系统绝大多数都使用的是Apache (Apache HTTP服务器),因此在这里我们主要对Apache的管理及web优化进行说明。
(2)Apache的安装和启用
本文用的虚拟机:
ip为172.25.42.100
1.、 虚拟机安装apchae
dnf install httpd.x86_64 -y
2.、开启火墙设置
vim /etc/sysconfig/selinux ##将其关闭为disabled,然后重启
systemctl enable --now httpd ##开启服务并设定服务位开机启动
firewall-cmd --list-all##查看火墙信息
firewall-cmd --permanent --add-service=http ##在火墙中永久开启http访问
firewall-cmd --permanent --add-service=https ##在火墙中永久开启https访问
firewall-cmd --reload ##刷新火墙使设定生效
(3)Apache的基本信息
服务名称 | httpd |
---|---|
/etc/httpd/conf/httpd.conf | 主配置文件 |
/etc/httpd/conf.d/*.conf | 子配置文件 |
默认发布目录 | /var/www/html |
默认发布文件 | index.html |
默认端口 | 80 |
加密端口 | 443 |
用户 | apache |
日志地址 | /etc/httpd/logs |
查看日志的方式 | cat /etc/httpd/logs/ |
(4)基本查看
开启apache后可以查看到基础网页,说明apache服务开启
二、更改访问apache默认访问
(1)Apache的访问端口进行修改
1、 进入配置文件
vim /etc/httpd/conf/httpd.conf
用/Listen搜索并修改端口为8080
2、建立发布文件
touch /var/www/html/index.htmlhelo 文件内容
/
2、更改防火墙设置(虚拟机)
systemctl start firewalld.service
firewall-cmd --permanent --add-port=8080/tcp 将8080通道打开
firewall-cmd --reload
systemctl restart httpdnetstat -antlp 查看端口8080是否打开
3、访问8080端口,修改访问地址
http://172.25.254.100:8080
(2)Apache的默认发布文件进行修改
1、 在/var/www/html下新建立一个westos.html文件,内容如下
2、在配置文件下更改默认发布目录
vim /etc/httpd/conf/httpd.conf
3、重启httpd服务
systemctl restart httpd.service
完成默认发布地址的更改
(3)默认发布目录更改
新建的默认发布目录不在/var/www/下,一定要给予授权
1、建立目录
mkdir /var/www/westos/html -pvim /var/www/westos/html/index.html
2、vim /etc/httpd/conf/httpd.conf 进入配置文件,修改默认发布地址并授权
3、 重启httpd服务
systemctl restart httpd.service
发现修改了在/var/www/westos/html/index.html文件
完成默认发布目录的修改
三 、Apache的访问控制
(1) 实验环境
1、创建文件
mkdir /var/www/html/westos
vim /var/www/html/westos/index.html
2、输入以下内容
4、效果
(2)创建网页访问黑名单
1、 进入配置文件
vim /etc/httpd/conf/httpd.conf
2、 创建黑白名单
任意位置设置即可
先后顺序为先允许白名单,再允许黑名单(故ip40的地址不能访问)
3. 重启httpd服务
systemctl restart httpd.service
curl 172.25.42.100/westos/index.html 进行访问
4、结果为除了ip为172.25.254.40的地址不能访问,其他都能访问
172.25.42.100主机能正常访问
172.25.42.2不能访问
(3)创建ip黑名单
基本同上白名单一样,配置内容改为如下即可
<Directory "/var/www/html/westos">Order Allow,DenyAllow from AllDeny from 192.168.0.10
</Directory>
(4)创建用户认证
1、 创建认证用户
在/etc/httpd目录下,生成用户认证文件apacheauth,这里用户认证文件中包含admin、lee两个用户的认证信息
cd /etc/httpd/
htpasswd -cm apacheauth admin
注意-cm是创建新用户的意思,如果重复-cm则会覆盖原来的用户。因此存在一个用户了用-m添加另一个用户即可
2、 进入文件进行配置,创建用户认证
3、 重启httpd服务
systemctl restart httpd.service
再次访问地址时会出现如下界面,需要输入密码
4、 注意如果有两个以上的用户,则配置文件改为如下
四、单主机发布多个网页 (虚拟机)
我们在www.baidu.com的主页面中可以点击进入不同的网站,其本质是在访问百度的web服务器时通过不同的域名进入了不同的网站,这一功能可以通过 Apache虚拟主机来实现。
Apache虚拟主机的作用就是让一个apache为多个域名服务,在访问不同的域名的时候跳转到不同的网页。
具体操作如下:
1、 在/var/www的虚拟主机vhost下分别建立三个网页,分别如下所示
[root@ansible ~] mkdir /var/www/vhost/{java,linux,python} -p
[root@ansible ~] echo java‘page > /var/www/vhost/java/index.html
[root@ansible ~] echo pyhon‘page > /var/www/vhost/python/index.html
[root@ansible ~] echo linux‘page > /var/www/vhost/linux/index.html
2、 进入子配置文件,建立虚拟主机
[root@westoslinux www] cd /etc/httpd/conf.d
[root@westoslinux conf.d] vim vhost.conf///
<VirtualHost _default_:80>DocumentRoot /var/www/htmlCustomLog logs/default.log combined
</VirtualHost><VirtualHost *:80>ServerName linux.westos.orgDocumentRoot /var/www/vhost/linuxCustomLog logs/linux.log combined
</VirtualHost><VirtualHost *:80>ServerName java.westos.orgDocumentRoot /var/www/vhost/javaCustomLog logs/java.log combined
</VirtualHost><VirtualHost *:80>ServerName python.westos.orgDocumentRoot /var/www/vhost/pythonCustomLog logs/python.log combined
</VirtualHost>
3、重启httpd服务
systemctl restart httpd.service
4、 真机做地址解析
vim /etc/hosts
5、进入浏览器访问
五、apache支持的语言格式
(1)创建php格式
PHP 是一种 HTML 嵌入式的脚本语言。php文件以.php结尾。它的很多语法来自 C,Java 和 Perl,并具有几个 PHP 独有的特点。该语言的主要目标是让 Web 开发人员快速地书写动态生成的网页
注意php里面内容一定严格按照格式要求对齐
1、创建文件
[root@westoslinux conf.d] cd /var/www/html/
[root@westoslinux html] vim index.php
2、结果发现空白
因为这个需要php软件提供支持,所以需要下载php服务软件。
3、安装php服务
dnf install php
systemctl restart httpd.service
ls /etc/httpd/conf.d/ 查看配置文件
4、结果
发现apache服务里面有了php的服务配置文件,apache可以结合php一起服务
在浏览器所在真实主机中再次访问该index.php文件,出现了php测试页面,index.php文件中的代码成功执行,此时Apache支持php语言
(2)创建cig格式(cgi通用网关接口)
我们知道,cgi通用网关接口中主要使用的是perl语言。其实CGI其实是一个接口规范或协议,按照CGI接口规范开发的程序都可以叫做CGI程序。几乎所有的语言都可以通过实现CGI或者fastcgi协议编写一个web应用 。如C、Java、PHP、Perl、Asp、.Net
1、创建新的位置,生成配置文件
mkdir /var/www/html/cgidir
vim /var/www/html/cgidir/index.cgi
2、要让里面的cgi里面的东西执行则需要在http的子文件进行配置
vim /etc/httpd/conf.d/vhost.conf
3、给执行权限,并重启httpd
chmod +x index.cgi
systemctl restart httpd.service
4、 结果如下
(3)创建wsgi文件(支持python语言)
wsgi与cgi的功能类似,其主要使用的是python语言。wsgi指定了web服务器和Python web应用或web框架之间的标准接口,以提高web应用在一系列web服务器间的移植性。
1、 创建wsgi目录及其下属文件
cd /var/www/html/
mkdir wsig
cd wsig
vim index.wsgi
2、 为了能够执行内容,需要下载python文件,,重启服务
dnf install python2.x86_64
systemctl restart httpd.service
3、 python执行要求高,在子配置文件里面设定引导位置文件
4、 重启httpd服务即可
六、网站加密认证(用https访问)
通常我们在访问浏览器如www.taobao.com时,页面会自动跳转以https方式进行访问,https服务相比于http多了加密功能,其服务页面基本都具有登录入口。一般来说,用户用浏览器访问服务器时,会在自己的客户主机中输入用户名和密码,输入完成后通过网络传输给服务器进行验证。为了保证用户名和密码的安全性,在传输前浏览器会对用户名和密码等传输数据使用一些技术手段进行加密,同时为了保证传输数据的不可伪造性,还会生成相应的证书;当服务器接收到客户主机传输来的数据后会先对用户证书进行校验,校验通过后使用服务器内部存储的私钥对用户的加密数据进行解密,进行用户验证
(1)认证的意义
浏览器会集成锁和证书,对用户的账户和密码等信息加密上锁,厂商会用证书校验锁是否为自己的锁,然后对锁进行解密。
(2)安装认证
1、下载加密插件(下载后系统支持加密,但是还未经过认证)
dnf install mod_ssl -y
2、 http文件里面查看证书的设置地址
cd /etc/httpd/conf.d/ls
在http的配置文件里面找到了ssl认证加密模块
3、 开启火墙等服务
systemctl start firewalld.service
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
systemctl restart httpd
4、 访问https://172.25.254.100效果如下
浏览器警告该网页证书未通过CA机构验证,接受风险继续访问,查看该网页默认证书的详细信息,可以看到证书中多处信息未知
5、 生成证书和文件
我们需要通过以下命令重新生成密钥和证书:发送请求,新建密钥文件并使用rsa对其进行加密,输出密钥文件到/etc/httpd/westos.org.key;生成证书文件,其格式为x509,证书有效期为365天,输出证书文件到/etc/httpd/westos.org.crt
openssl req -newkey rsa:2048 -nodes -sha256 -keyout /etc/httpd/westos.org.key -x509 -days 365 -out /etc/httpd/westos.org.crt
6、查看生成的证书和钥匙
ls /etc/httpd/
7、在http服务中重新读取证书和服务,并重启http
vim /etc/httpd/conf.d/ssl.conf
systemctl restart httpd
8、删掉旧证书
在浏览器所在真实主机中再次访问https://172.25.254.133,查看该网页证书的详细信息,可以看到该网页证书已更新成我们所生成的证书,证书详细信息完善,只要将该证书发送给CA机构进行验证,验证后证书合法,网页就不会出现安全警告
证书认证完成
(3)对用户访问信息强制加密
1、 建立素材
mkdir /var/www/login
vim /var/www/login/index.html
2、 做虚拟主机导向,再重启http
vim /etc/httpd/conf.d/vhosts.conf
systemctl restart httpd
结果为输入login.westos.org地址也会强制走加密地址访问
七、squid 正向代理
实验环境:
单网卡主机设定ip不能上网
双网卡主机设定ip1可以连接单网卡主机,设定ip2可以上网
实验效果
让单网卡主机不能上网但浏览器可以访问互联网页
1、让真实主机变为路由器(先连wift)
systemctl start firewalld.service
firewall-cmd --add-masquerade
2、 对双卡主机设置网关,使其能上网
vim /etc/sysconfig/network-scripts/ifcfg-ens3
nmclic connection reload
nmclic connection up System\ens3
2、 对真机检验
ping主机ip和ping百度都可以,真机可以上网
3、对单网卡主机进行配置
nmclic connection reload
nmclic connection up System\ens3
4、 检验:ping主机ip可以ping通
5、 单网卡主机下载firefox
此时firefox不能连接百度,因为没有联网
6、 双网卡主机中安装代理软件
dnf install squid -y
vim /etc/squid/squid.conf
7、重启系统,开启squid服务
systemctl restart squid
systemctl start firewall.service
firewall-cmd --permanent --add-service=squid
firewall-cmd --reload
在单网卡主机中对浏览器进行更改
实验结果:单网卡主机ping不了百度,但是可以上网
八、squid反向代理
企业反向设置的代理,加速客户访问速度(cdw加速)
1、 在双网卡主机中(安装过squid代理的虚拟机中)
vim /etc/squid/squid.conf
2、双网卡主机(代理服务器)重启squid和火墙等服务
systemctl restart squid
firewall-cmd --permanent --add-sevice=http
firewall-cmd -reload
3、 单网卡主机(总服务器)
发布页面,关闭selinux,设置防火墙永久允许http,重启防火墙,开启http服务
4、访问代理服务器时,显示总代理(单网卡的虚拟机的发布信息)
【linux进阶4】apache的服务使用(图文巨详细解释apache的正向和反向代理)相关推荐
- linux进阶-网络安全系统网站服务
网络安全系统网站服务 1)网站服务概念介绍 2)网站服务部署过程 静态方式 nginx (静态*),apache 2) nginx程序: 3) 网站服务目录结构: 4) 网站服务配置介绍: 5)网站服 ...
- squid服务配置(正向、反向代理)
代理: 就是代理网络用户去取得网络信息. Squid是一种用来缓冲Internet数据的软件.安装Squid服务实现代理缓存服务器功能. 正向代理:意思是一个位于客户端和原始服务器之间的服务器,为了从 ...
- linux 配置 mysql_linux下mysql配置文件my.cnf最详细解释
MySQL配置文件在Windows下叫my.ini,在MySQL的安装根目录下:在Linux下叫my.cnf,该文件位于/etc/my.cnf. 可以查找下:find / -name my.cnf m ...
- Apache部署PHP项目(最完整详细的Apache+PHP项目根目录部署)
目录 下载Apache和PHP 配置Apache 配置PHP 配置环境变量 使用Apache部署php项目 启动Apache服务 下载Apache和PHP 下载Apache,地址:http://www ...
- Linux下的用户、组和权限的详细解释
前言:在linux中一切都是文件(文件夹和硬件设备是特殊的文件),如果有可能尽量使用文本文件.文本文件是人和机器能理解的文件,也成为人和机器进行交流的最好途径.由于所有的配置文件都是文 ...
- 详细分析 apache httpd 反向代理的用法
代理方式有两种:正向代理和反向代理. 正向代理是为客户端转发请求,各客户端将请求交给正向代理服务器,正向代理服务器再负责转发给服务端,响应时服务端先响应给正向代理服务器,正向代理服务器再转发给对应的客 ...
- 反向代理-- WEB服务的加速器[转]
反向代理-- WEB服务的加速器[转] Posted on 2009-05-17 16:48 chen eric 阅读(230) 评论(0) 编辑 收藏 昨天j.L问我http cache怎么设置 ...
- Ubuntu下Apache反向代理设置
Apache可通过mod_proxy*.so系列模块很好的实现正向.反向代理功能,亦可通过反向代理实现负载均衡,本文将讲述基于Apache反向代理实现负载均衡的配置方法. 1.环境配置说明: 代理服务 ...
- 【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)
apache的使用 一.apache的基本介绍 (1)Apache的作用 (2)Apache的安装和启用 (3)Apache的基本信息 (4)基本查看 二.更改访问apache默认访问 (1)Apac ...
最新文章
- 第六十三期:微软与阿里云合作推出“开放应用模型(OAM)”
- [转载] Java之继承
- IBM发布32纳米芯片技术 明年下半年量产
- 一个简单的动态web服务器
- flex 左右布局_移动端开发常用布局:前端弹性布局总结
- jdk的安装及环境变量的配置
- HTML5期末大作业:餐饮甜品网站设计——美食蛋糕店(48页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web前端开发技术 web课程设计 网页规划与设计
- c语言课程设计酒店管理系统实验报告 免费下载,C语言酒店管理系统设计
- 得洲奥斯汀研究生计算机专业排名,德克萨斯大学奥斯汀分校世界排名及专业排名汇总(QS世界大学排名版)...
- python中return返回值怎么累加_Python学习笔记函数之返回值和return语句
- java seo优化_JavaWeb 项目如果从技术选型的角度来做 Seo 优化
- 悲伤时唱首歌:《暗恋桃花源》剧评
- 微信气泡主题设置_微信要怎么设置气泡?华为手机怎样改微信的气泡和主题方法介绍...
- unity小技巧收集总结--自用(三)
- 解决viewer.js预览PDF文件 无法展示PDF水印的问题
- css实现圆形进度条加载动画
- “逛吃逛吃”中的眼动研究 ——旅游与眼动
- Oracle 查看 SQL执行计划
- 基于Teager-Kaiser能量算子和深度置信网络的往复式压缩机阀门故障诊断方法
- 史上最杯具应用: 城门下的池鱼——餐厅店长助手-食神摇摇