Apache服务器部署(1)
apache(web服务器)简介:
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务中。
主配置目录:/etc/httpd/conf
主配置文件:/etc/httpd/conf/httpd.conf
子配置目录:/etc/httpd/conf.d
子配置文件:/etc/httpd/conf.d/*.conf默认发布目录:/var/www/html
默认发布文件:index.html
默认端口:80
默认安全上下文:httpd_sys_content_t
程序开启默认用户:apache
apache 日志:/etc/httpd/logs/
环境:
rhel7.5 server1:172.25.1.1
关闭防火墙及selinux
apache服务器部署
1、配置yum源,安装apache数据包
[root@server1 ~]# yum install -y httpd
2、关闭防火墙及selinux,开启http服务
[root@server1 ~ ]# setenforce 0 //临时关闭selinux
[root@server1 ~]# getenforce
3、查看监听端口: //默认端口为80
4、简单编写一个网页
[root@server1 ~]# cd /var/www/html/ //切换到默认发布页面
[root@server1 html]# vim index.html
去网页输入主机ip进行浏览
此时 ,可以看到刚才默认发布页面中所写的html网页;这里因为默认端口为80,所以访问时ip后面可以不用写端口80
将发布端口修改为8080
[root@server1 html]# vim /etc/httpd/conf/httpd.conf
[root@server1 html]# systemctl restart httpd //重起服务
[root@server1 html]# netstat -antlp | grep httpd //此时其端口已经被修改为8080
这时去网页输入主机ip进行浏览
发现不可访问,但加上端口即可
默认发布目录的更改
情况一:让其显示/westos/html下的html网页
[root@server1 ~]# mkdir /westos/html -p //连续创建目录,即想要发布目录
[root@server1 ~]# cd /westos/html/
[root@server1 html]# ls
[root@server1 html]# vim index.html //在其目录下写发布页面
[root@server1 html]# vim /etc/httpd/conf/httpd.conf //修改配置文件,更改默认发布目录及发布文件
#DocumentRoot "/var/www/html" //注释掉原本的默认发布目录
DocumentRoot "/westos/html" //重新设置发布目录
# Relax access to content within /var/www.
<Directory "/westos">
AllowOverride None
# Allow open access:
Require all granted
DirectoryIndex index //将发布文件由原来的index.html设置为index
</Directory>
[root@server1 html]# systemctl restart httpd
去172.25.1.250主机输入该主机ip及端口8080进行浏览:
总结:可以看出此时显示的并不是/var/www/html下的index.html网页,而是/westos/html下的html网页。
情况二:让其显示/westos/html/cxx下的index.html网页
[root@server1 html]# pwd
/westos/html
[root@server1 html]# mkdir cxx //创建需要发布的目录,该目录必须存在
[root@server1 ~]# vim /etc/httpd/conf/httpd.conf
分别修改120、124、128行
[root@server1 html]# systemctl restart httpd
[root@server1 cxx]# vim index.html
此时在172.25.1.250主机网页进行访问:
访问控制
基于ip的访问控制
此时的默认发布路径为/var/www/html 端口为80
防火墙与selinux关闭
server1的ip: 172.25.1.1
server2的ip:172.25.1.2
foundation的ip: 172.25.1.250
[root@server1 ~]# cd /var/www/html/
[root@server1 html]# ls
index.html
[root@server1 html]# cat index.html //默认发布文件
<h1>172.25.1.1</h1>
[root@server1 html]# mkdir xx //创建目录
[root@server1 html]# cd xx/
[root@server1 xx]# vim index.html
[root@server1 xx]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html" //默认发布目录
<Directory "/var/www/html/xx">
Order deny,Allow //设置为先禁止后允许
Deny from All //拒绝所有
Allow from 172.25.1.250 //允许白名单172.25.1.250主机访问,其他都不允许
DirectoryIndex index.html //默认发布页面
</Directory>
//先访问禁止ip再访问允许名单,读的先后顺序根据Order所在的行来定,最终结果由Order下的最后一个来定
[root@server1 xx]# systemctl restart httpd
浏览器访问或者curl命令访问:
在主机访问:
在server2上访问:
访问172.25.1.1/xx 时显示 403 Forbidden,说明server2不可访问
Order Allow,Deny Order Allow,Deny Order Deny,Allow Order Deny,Allow
Allow from All Allow from 172.25.1.250 Deny from 172.25.1.250 Deny from All
Deny from 172.25.1.250 Deny from All Allow from All Allow from 172.25.1.250
//除了250其他均可访问 // 所有用户均不可访问 //所有用户均可访问 //仅250可访问,其他均不可
基于主机的访问控制
[root@server1 html]# cd /etc/httpd
[root@server1 httpd]# ls
[root@server1 httpd]# htpasswd -cm apacheuser user1 //创建apache用户user1,生成用户user1的密码文件
注释:
参数: -c :建立文件,m: 表示建立,当已经有创建好的apache用户时不可以再加-c,否则会覆盖文件的内容,例如出现下列情况:
[root@server1 httpd]# htpasswd -m apacheuser user2
[root@server1 httpd]# cat apacheuser //查看文件apahceuser中的所有用户
[root@server1 httpd]# vim /etc/httpd/conf/httpd.conf
125行: AuthUserFile /etc/httpd/apacheuser //认证的用户文件
126行:Authname "Please input user and password!" //访问时显示的信息内容
127行:AuthType basic //指定认证类型:基础类型
128行:Require user user1 //设置只允许user1进行访问
[root@server1 httpd]# systemctl restart httpd
注释:如果添加 Require valid-user 表示允许文件apahceuser中的所有用户访问
此时,在浏览器进行访问:
输入用户名及密码,可得到下面的网页内容
若输入有误,则显示禁止访问:
指定域名解析
在浏览器所在主机进行域名解析:
我用的是foundation,
[root@foundation1 ~]# vim /etc/hosts
//地址解析,即将www.westos.com news.westos.com music.westos.com都解析到172.25.1.1主机
[root@server1 ~ ]# mkdir /var/www/virtual/westos.com/news -p //创建news的专属发布目录
[root@server1 ~ ]# mkdir /var/www/virtual/westos.com/music -p //创建music的专属发布目录
[root@server1 ~ ]# cd /var/www/virtual/westos.com/news/
[root@server1 news]# vim index.html //编辑news的专属网页
[root@server1 news]# cd ..
[root@server1 westos.com]# cd music/
[root@server1 music]# vim index.html //编辑music的专属网页
[root@server1 music]# cd /etc/httpd/conf.d //虚拟配置目录为/etc/httpd/conf.d下创建目录
[root@server1 conf.d]# vim default.conf //编写默认情况下的配置文件
<VirtualHost _default_:80>
DocumentRoot /var/www/html
Customlog "logs/default.log" combined
</VirtualHost>
[root@server1 conf.d]# vim news.conf //编辑news的配置文件
<VirtualHost *:80>
ServerName news.westos.com
DocumentRoot "/var/www/virtual/westos.com/news/"
CustomLog "logs/default.log" combined
</VirtualHost>
<Directory "/var/www/virtual/westos.com/news/">
Require all granted
</Directory>
[root@server1 conf.d]# cp news.conf music.conf
[root@server1 conf.d]# vim music.conf //编辑music的配置文件
<VirtualHost *:80>
ServerName music.westos.com
DocumentRoot "/var/www/virtual/westos.com/music/"
CustomLog "logs/default.log" combined
</VirtualHost>
<Directory "/var/www/virtual/westos.com/music/">
Require all granted
</Directory>
[root@server1 conf.d]# systemctl restart httpd
此时在主机浏览器进行访问:
直接访问westos.com
访问news.westos.com
访问music.westos.com
相关文章:

JavaScript关键字this指向
在js中this始终指向一个调用函数的那个对象 var a有种你干掉我啊; //纯粹调用函数 function test(){ console.log(this.a);//默认指向全局对象 } //test();//>windows.test() //作为对象的方法被调用 Function.prototype.logfunction(){ console.log(this.a); } //此时t为一…

项目开发过程中的收获与思考
2013年7月,我正式毕业了,到公司入职,也就正式成为了一名菜鸟程序员。到今天,2014年1月3日,目前主要的工作是公司一个项目中的一个功能模块,到我进入项目组算起,已经过了四个月了。因此ÿ…
【仿汽车之家】价格区间选择控件
仿照汽车之家iOS客户端“找车”栏目的价格区间选择控件,最终实现效果如下: 一、界面实现 *根据屏幕大小以及刻度的大小,宏定义需要用到的一些值 #define SCREENW [UIScreen mainScreen].bounds.size.width #define SCREENH [UIScreen mainScr…

Apache服务器部署(2)
签名CA证书 环境:server1:172.25.1.1 重置虚拟机 挂载yum源 [rootserver1 ~]# yum install mod_ssl -y //下载ssl模块 [rootserver1 ~]# yum install crypto-utils -y //安装加密软件 [rootserver1 ~]# genkey …

ASCII、Unicode、GBK和UTF-8字符编码的区别联系
一直对编码这块晕晕乎乎,今天终于看到一篇写的很清楚也很风趣的文章,转过来mark一下。 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的&…
【iOS】快速集成轮播控件
自己写的一个轮播控件,初始化后只要实现两个数据源方法,几行代码就能快速集成,支持本地图片和网络图片,支持点击事件,可定制播放速度、指示器颜色/位置、默认加载图等,效果: 1.下载地址…

Hibernate中get方法和load方法的区别
一、get和load方法都是根据id去获得对应数据的,但是获得机制不同:如果使用get方法,hibernate会去确认该id对应的数据是否存在,它首先会去session中去查询(session缓存其实就hibernate的一级缓存),如果没有,…

DNS高速缓存
DNS相关资料: 1.什么是DNS DNS(Domain Name System域名系统) 是互联网上存储域名和ip映射关系的一个分布式数据库,它负责把域名转换成ip地址,或ip地址转换为域名。DNS运行于TCP/UDP的53端口上。 2.什么是高速…

将时间改为显示:几天前,几小时前,或者几分钟前
(原博客地址:http://blog.csdn.net/kenhins/article/details/38010811) 方法一: 个人做法是保存时间戳,然后在前端用jq插件做转换,比如 smart-time-ago ----------------------------------------------- 方…
支持placeholder和自适配高度的TextView控件
一.应用于项目的效果如下: 二.使用方法: 1.导入JXTextView.h头文件 2.初始化,并添加到view中: JXTextView *textView [[JXTextView alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];textView.placeholder "请输入内容";tex…

ZOJ 3735 dp
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode3735 好久没做DP题了,一开始没理解题目里的C(M,3)是干什么,原来就是组合,C M 取3,就等于n*(n-1)*(n-2)/6;题目里还有…

haproxy实现高可用及负载均衡
Haproxy简介: Haproxy是一个使用c语言编写的自由开发源代码软件,它提供高可用性、负载均衡、以及基于http和tcp的应用程序代理。Haproxy特别使用于那些负载特别大的web站点。Haproxy运行在当前的硬件上,完全可以支持数以万计的并发连接&#…

Apache转发到Tomcat
#vi /etc/httpd/conf/httpd.conf 添加下面配置 NameVirtualHost *:80 <VirtualHost *:80>ProxyPreserveHost OnServerName www.域名.comProxyPass / http://www.域名.com:8080/system/ErrorLog logs/error_logCustomLog logs/access_log common</VirtualHost> 作者…

.net基础问题
string sqlstr "select BranchCode,BranchName from t_sys_Branch where Jglx_DataDm{0} and IsVisible1"; sqlstr string.Format(sqlstr, departType); 上述代码运行之后 sqlstr"select BranchCode,BranchName from t_sys_Branch where Jglx_DataDmdepartTyp…
【iOS】NSDate分类,获得中国农历
1.说明: 参考网上代码写的一个分类,只需一句代码就可得到NSDate对象所对应的中国农历、星期。 2.使用方法: (1)导入分类头文件: #import "NSDateChineseDate.h"(2)NSDat…

LVS_NAT实现负载均衡
简介: 基于NAT机制实现。当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址,同时将报文的目标端口也改成选定的realserver的相应端口,最后将报文请求发送到指定的realserver;…
自定义Push和Pop过渡动画
一、效果和源码 本文介绍如何实现一个NavigationController的自定义Push和Pop过渡动画,运行效果如下: 源码:https://github.com/dolacmeng/TransitionDemo 或http://download.csdn.net/detail/dolacmeng/9572384二、准备工作 首先࿰…

centos 安装 mysql 5.7
一,wget http://dev.mysql.com/get/mysql57-community-release-el6-8.noarch.rpm 二,yum localinstall mysql57-community-release-el6-8.noarch.rpm 三,yum install mysql-server 四,mysqld --initialize --usermysql 五…

c语言:婚礼上的谎言
/* 三对新人参加婚礼,三位新郎A,B,C,三位新娘X,Y,Z。 有人想知道谁与谁结婚,于是就问他们: A说他将和X结婚; X说他的未婚夫是C; C说他将和Z结婚。 这人时候知道他们都在说谎。编程求谁与谁结婚! */ /* 思路…

redis主从复制、高可用和集群
redis简介: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型);这些数据类型都支持push/pop、…

对学习编译原理的看法
我认为编译原理这本书是一门与代码做斗争的课程,学习编译原理能够追寻程序设计语言的本质,了解计算机各种语言编译的原理。学习了编译原理能够更加深入的了解计算机各种高级语言使用的原理,能使自己更加容易更加好的学习好程序语言࿰…
iOS提示气泡,带动画
1.效果如图: 从项目中抠出来的,做了简单的封装。 2.用法: //顶部提示HYNoticeView *noticeTop [[HYNoticeView alloc] initWithFrame:CGRectMake(50, 66, 250, 40) text:"这里可以查询全城婚礼人的档期哦!" position:…

GIt/Github常用命令
1)git init:初始化本地仓库 2)创建文件:touch read.txt 3)当操作本地的文件时,使用常用的命令,如(mv,ls。。)就可以操作,当操作暂存区的文件时需要在命令前家…

python练习题(python之“求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数” 等)
实验环境:python2.7 题目1:python之“求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数”程序: import math def factorial(n): #定义一个函数,返回一个数的阶乘 if n0: return 1 else: sumn*factorial(n-…
【动画1】UIView动画
讲一下动画。将分为以下5篇博客。 一)UIView动画 二)Layer动画 三)3D动画 四)转场动画 五)第三方动画框架 相关代码:https://github.com/dolacmeng/AnimationDemo 参考资料:iOS Animation…

【python】解压文件
参考:http://essen.iteye.com/blog/1941489 tarfile模块 具体使用方法: https://docs.python.org/2/library/tarfile.html 例子:一次性解压所有文件 import tarfilet tarfile.open("abc.tgz", "r:gz")t.extractall(path…

JS设计模式——3.封装与信息隐藏
封装、信息隐藏与接口的关系 信息隐藏是目的,封装是手段。 接口提供了一份记载着可供公共访问的方法的契约。它定义了两个对象间可以具有的关系。只要接口不变,这个关系的双方都是可以替换的。 一个理想的软件系统应该为所有类定义接口。 创建对象的基本…

nginx源码编译、负载均衡及模块的扩展
1、nginx源码编译 实验环境: iptables和selinux关闭 redhat6.5 nginx:test1: 172.25.1.11 [roottest1 ~]# ls nginx-1.14.0.tar.gz [roottest1 ~]# tar zxf nginx-1.14.0.tar.gz [roottest1 ~]# useradd -s /sbin/nologin nginx [roottest1 ~]# i…

LinkedHashMap and LinkedHashSet
LinkedHashMap实现了Map接口,是HashMap的直接子类,它同时满足HashMap和linked list的某些特性。可将LinkedHashMap看作采用linked list增强的HashMap。 LinkedHashMap在HashMap的基础上,采用双向链表(doubly-linked listÿ…

Windows Phone开发(19):三维透视效果
Windows Phone开发(19):三维透视效果 原文:Windows Phone开发(19):三维透视效果 三维效果也可以叫透视效果,所以,我干脆叫三维透视效果。理论知识少讲,直接用例开场吧&am…