Linux——搭建Apache(httpd)服务器

x33g5p2x  于2021-11-22 转载在 Linux  
字(4.9k)|赞(0)|评价(0)|浏览(489)

如何搭建Apache服务器?1、搭建一个简单的httpd服务;2、搭建基于用户的个人网站;3、搭建基于域名访问的虚拟主机;4、搭建基于端口访问的虚拟主机;5、搭建基于TLS加密的虚拟主机。

一、什么是Apache?

Apache(或httpd)服务,通俗讲就是一个用于搭建网站的服务。

有两个版本:

  • http:超文本传输协议,通过线路以明文形式发送,默认使用80端口/TCP
  • https:经TLS/SSL安全加密的超文本传输协议,默认使用443端口/TCP协

二、Apache的配置文件

1、配置文件的位置

配置文件的名称存放位置
服务目录/etc/httpd
主配置文件/etc/httpd/conf/httpd.conf
虚拟主机的配置文件/etc/httpd/conf.d
日志文件/etc/httpd/logs
默认的网站数据目录/var/www/html

2、主配置文件的重要参数

[root@server ~]# vim /etc/httpd/conf/httpd.conf
	ServerRoot	#服务目录
	Listen          #监听的IP地址与端口号
	User	        #运行服务的用户
	Group	        #运行服务的用户组
	ServerAdmin	#管理员邮箱
	ServerName	#网站服务器的域名
	DocumentRoot	#默认网站数据目录
	Directory	#文件目录的权限
	DirectoryIndex	#默认的索引页页面
	ErrorLog	#错误日志文件

三、如何搭建Apache服务器

首先准备:主机名、网络、yum源

参考以前的文章

(一)搭建一个简单的httpd服务

Server端配置:

1、安装httpd服务

[root@server ~]# yum -y install httpd

2、开启服务并设为开机自启

[root@server ~]# systemctl restart httpd
[root@server ~]# systemctl enable httpd

3、配置防火墙

[root@server ~]# firewall-cmd --permanent --add-service=http
[root@server ~]# firewall-cmd --reload

Client端测试:

[root@client ~]# firefox http://IP地址	#有图形化
或者
[root@client ~]# curl http://IP地址	#没有图形化

(二)搭建基于用户的个人网站

Server端配置:

1、新建一个用户(网站基于该用户)

[root@server ~]# useradd wzg

2、创建个人网页文件

[root@server ~]# mkdir /home/wzg/public_html
[root@server ~]# cd /home/wzg/public_html
[root@server public_html]# echo "this is wzg's web">>index.html

3、修改访问权限(使其他用户具有读取和执行的权限)

[root@server ~]# chmod -R 705 /home/wzg

4、修改基于用户的httpd配置文件

[root@server ~]# vim /etc/httpd/conf.d/userdir.conf
修改:	UserDir enabled		#开启,表示让httpd服务程序开启个人用户主页功能
	UserDir public_html	#去注释,表示网站数据在用户家目录中的保存目录名称

5、配置防火墙(同上)

[root@server ~]# firewall-cmd --permanent --add-service=http
[root@server ~]# firewall-cmd --reload

6、修改selinux权限

[root@server ~]# getsebool -a | grep home
[root@server ~]# setsebool httpd_enable_homedirs on

7、重启服务

[root@server ~]# systemctl restart httpd

Client端测试:

[root@client ~]# firefox http://IP地址/~username
或者
[root@client ~]# curl http://IP地址/~username

(三)搭建基于域名访问的虚拟主机

Server端配置:

1、创建虚拟主机的网页文件

[root@server ~]# mkdir /www/one /www/two
[root@server ~]# cd  /www/one
[root@server ~]# echo "this is a web for virtual host one">>index.html
[root@server ~]# cd /www/two
[root@server ~]# echo "this is a web for virtual host two">>index.html

2、修改访问权限(使其他用户具有可执行权限)

[root@server ~]# chmod o+x /www

3、配置虚拟主机的网页文件

[root@server ~]# cd /etc/httpd/conf.d
[root@server conf.d]# vim one.conf
	<Directory /www/one>		#设置网站目录权限
		Require all granted	#开启所有客户机访问权限
	</Directory>
	<VirtualHost 192.168.100.10>	#虚拟主机对应的IP
		ServerName www.one.com  #定义域名
		DocumentRoot /www/one/	#网站主页文件的数据目录
	</VirtualHost>
[root@server conf.d]# vim two.conf
	<Directory /www/two>
		Require all granted
	</Directory>
	<VirtualHost 192.168.100.10>
		ServerName www.two.com
		DocumentRoot /www/two/
	</VirtualHost>

4、做域名解析文件
Server端和Client端:

[root@server ~]# vim /etc/hosts
加入:	192.168.100.10 www.one.com
	192.168.100.10 www.two.com

5、配置防火墙(同上)

[root@server ~]# firewall-cmd --permanent --add-service=http
[root@server ~]# firewall-cmd --reload

6、修改虚拟主机网页文件的selinux上下文类型

[root@server ~]# ll -dz /www  #查看目录下文件的上下文类型
[root@server ~]# semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'
        #设置文件的上下文类型与默认的网站数据目录一致,包括/www下面的子文件
[root@server ~]# restorecon -RFv /www  #以可视化模式强制递归刷新

7、重启服务

[root@server ~]# systemctl restart httpd

Client端使用浏览器访问:

http://www.one.com
http://www.two.com

(四)搭建基于端口访问的虚拟主机

Server端配置:

1、新建虚拟主机的网页文件

[root@server ~]# mkdir /www/8088
[root@server ~]# echo "this is a web for port 8088 ">>index.html
[root@server ~]# mkdir /www/8089
[root@server ~]# echo "this is a web for port 8089 ">>index.html

2、修改访问权限

[root@server ~]# chmod o+x /www

3、配置虚拟主机的文件

[root@server ~]# cd /etc/httpd/conf.d
[root@server ~]# vim 8088.conf
	<Directory /www/8088/>
		Require all granted
	</Directory>
	<virtualHost 192.168.100.10:8088>
		DocumentRoot /www/8088/
	</virtualHost>
[root@server ~]# vim 8089.conf
	<Directory /www/8089/>
		Require all granted
	</Directory>
	<virtualHost 192.168.100.10:8089>
		DocumentRoot /www/8089/
	</virtualHost>
[root@server ~]# cd /etc/httpd/conf/
[root@server ~]# vim httpd.conf
在Listen 80后添加:
	Listen 8088
	Listen 8089

4、配置防火墙

[root@server ~]# firewall-cmd --permanent --zone=public --add-port=8089/tcp
[root@server ~]# firewall-cmd --permanent --zone=public --add-port=8088/tcp
[root@server ~]# firewall-cmd --reload

5、将端口加入httpd服务端口类型

semanage port -a 8088 -t http_port_t -p tcp
semanage port -a 8089 -t http_port_t -p tcp
semanage port -l | grep  http

6、重启服务

[root@server ~]# systemctl restart httpd

Client端使用浏览器访问:

http://192.168.100.10:8088
http://192.168.100.10:8089

(五)搭建基于TLS加密的虚拟主机

**注意:**经TLS/SSL安全加密的超文本传输协议,默认情况下使用端口443/TCP

Server端配置:

1、安装TLS加密软件,网站内容不用明文传输

[root@server ~]# yum -y install mod_ssl

2、生成密钥

[root@server ~]# openssl genrsa >tlsweb.key

3、生成证书请求文件

[root@server ~]# openssl req -new -key tlsweb.key > tlsweb.csr

4、生成证书文件

[root@server ~]# openssl req -x509 -days 365 -key tlsweb.key -in tlsweb.csr >tlsweb.crt

5、修改ssl.conf配置文件

[root@server ~]# vim /etc/httpd/conf.d/ssl.conf
	SSLCertificateFile /etc/pki/tls/certs/tlsweb.crt
	SSLCertificateKeyFile /etc/pki/tls/private/tlsweb.key

6、把证书文件拷贝到ssl.conf配置文件里的对应路径下面

[root@server ~]# cp tlsweb.crt /etc/pki/tls/certs/

7、把秘钥文件拷贝到ssl.conf配置文件里的对应路径下面

[root@server ~]# cp tlsweb.key /etc/pki/tls/private/

8、重启服务

[root@server ~]# systemctl restart httpd

Client端使用浏览器访问:

https://192.168.100.10

相关文章