服务器其它

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 服务器其它 > Linux搭建web服务器

如何使用Linux搭建web服务器

作者:网络给个机会

web 服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页,在 redhat 中,这个目录默认在/var/www/html,这篇文章主要介绍了如何使用Linux搭建web服务器,需要的朋友可以参考下

搭建web服务器 

www 简介

网址及 HTTP 简介

web 服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页,在 redhat 中,这个目录默认在/var/www/html。浏览器是通过你在地址栏中输入你所需要的网址来取得这个目录的数据的

HTTP 协议请求的工作流程

(1)终端客户在 web 浏览器地址栏输入访问地址http://www.ceshi.com:80/index.html

(2)web 浏览器请求 DNS 服务器把域名 www.ceshi.com 解析成 web 服务器的 IP地址

(3)web 浏览器将端口号(默认是 80)从访问地址(URL)中解析出来

(4)web 浏览器通过解析后的 ip 地址及端口号与 web 服务器之间建立一条 TCP连接

(5)建立 TCP 连接后,web 浏览器向 web 服务器发送一条 HTTP 请求报文

(6)web 服务器响应并读取浏览器的请求信息,然后返回一条 HTTP 响应报文。

(7)web 服务器关闭 HTTP 连接,关闭 TCP 连接,web 浏览器显示访问的网站内容到屏幕上。

www 服务器的基本配置

使用yum命令查找httpd服务yum search httpd

下载安装httpd服务yum install httpd.x86_64 -y

启动httpd服务,并查看httpd服务状态情况

systemctl start httpd
systemctl status httpd

在我们的物理机上做访问WEB网页的实验 首先要保证物理机与虚拟机在同一个网段,而且能够ping通

之后开启防火墙的80端口

[root@localhost redhat]# firewall-cmd --permanent --add-port=80/tcp
success
[root@localhost redhat]# firewall-cmd --permanent --add-service=http
success
[root@localhost redhat]# firewall-cmd --reload
success
[root@localhost redhat]# 

此时已经可以在物理机的浏览器输入虚拟机IP地址查看到HTTP的首页
如果发现超时那就是因为防火墙的问题,检查一下自己的虚拟机防火墙端口和服务都开放了么
如果都开放了还提示:HTTP/1.1 Forbidden被拒绝,意思是权限不够,可以关闭物理机的防火墙试试

下面就可以开始编辑配置文件来搭建个人网页了

[root@x1 redhat]# cd /etc/httpd/conf
[root@x1 conf]# ls
httpd.conf  httpd.conf.bak  magic
[root@x1 conf]# vim httpd.conf

补充:命令模式下:set nu可以显示文件行数
配置所有的访问请求都授权了

在httpd.conf这个配置文件中配置浏览器访问的网页根目录:可以自定义更改

开放访问/var/www目录的权限

Options Indexes FollowSymLinks语句:如果该虚拟目录下没有 index.html,浏览器会显示该虚拟目录的目录结构,列出该虚拟目录下的文件和子目录。

AllowOverride None: 完全忽略.htaccess 文件(超文本文件)

设置浏览器默认访问的网页为index.html

创建一个简单的测试网页

[root@x2 ~]# cd /etc/httpd/conf
[root@x2 conf]# ls
httpd.conf  magic
[root@x2 conf]# vim httpd.conf 
[root@x2 conf]# cd /var/www/html
[root@x2 html]# mkdir stu
[root@x2 html]# cd stu/
[root@x2 stu]# echo "this student score web">index.html
[root@x2 stu]# cat index.html 
this student score web

实验

实验一

搭建一个 web 服务器,访问该服务器时显示“hello world”欢迎界面。

[root@x2 ~]# echo hello world > /var/www/html/index.html
[root@x2 ~]# curl 192.168.80.130
hello world

实验二、基于多个虚拟主机IP、基于多个虚拟端口、基于个人Web站点的Web网站

1.搭建基于IP地址的虚拟主机

[root@localhost redhat]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls 
ifcfg-ens160
[root@localhost network-scripts]# vim ifcfg-ens160

在文件中的IP地址字段下面添加两个IP地址

重启网络服务,查看虚拟机的IP地址,发现确实多了两个IP地址

[root@localhost network-scripts]# ifup ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@localhost network-scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:6b:46:66 brd ff:ff:ff:ff:ff:ff
    inet 192.168.80.129/24 brd 192.168.80.255 scope global dynamic noprefixroute ens160
       valid_lft 1796sec preferred_lft 1796sec
    inet 192.168.80.100/24 brd 192.168.80.255 scope global secondary noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet 192.168.80.200/24 brd 192.168.80.255 scope global secondary noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe6b:4666/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

尝试用物理机ping虚拟机新加的地址

配置虚拟主机IP地址的网页访问主目录和网页index.html文件

[root@localhost network-scripts]# cd /var/www/
[root@localhost www]# mkdir 100 200
[root@localhost www]# echo 192.168.80.100 test website > 100/index.html 
[root@localhost www]# echo 192.168.80.200 test website > 200/index.html 

配置虚拟主机ip地址的httpd配置文件
回到配置文件的目录下面,创建一个vhost目录,里面专门存放虚拟IP地址的配置文件,然后在httpd服务的主配置文件中引用这个目录

[root@localhost 100]# cd /var/www/200/
[root@localhost 200]# vim index.html 
[root@localhost 200]# cd /etc/httpd/conf
[root@localhost conf]# cd ..
[root@localhost httpd]# ls
conf  conf.d  conf.modules.d  logs  modules  run  state
[root@localhost httpd]# mkdir vhost
[root@localhost httpd]# cd vhost/
[root@localhost vhost]#  touch 100.conf 200.conf
[root@localhost vhost]# ls
100.conf  200.conf

配置虚拟主机IP的配置文件

[root@localhost vhost]# vi 100.conf 
[root@localhost vhost]# cat 100.conf 
<VirtualHost 192.168.80.100>
	DocumentRoot "/var/www/100"
	DirectoryIndex index.html
	<Directory "/var/www/100">
		Options Indexes FollowSymLinks
		AllowOverride None
		Require all granted
	</Directory>
</VirtualHost>
[root@localhost vhost]# vi 200.conf 
[root@localhost vhost]# cat 200.conf 
<VirtualHost 192.168.80.200>
	DocumentRoot "/var/www/200"
	DirectoryIndex index.html
	<Directory "/var/www/200">
		Options Indexes FollowSymLinks
		AllowOverride None
		Require all granted
	</Directory>
</VirtualHost>
[root@localhost vhost]# 

配置/etc/httpd/conf/httpd.conf主配置文件引用vhost目录里的虚拟主机IP的.conf配置文件
补充:快捷键Shift+g可以直接到达文件最后一行
在主配置文件的末尾加上

重启httpd服务,在物理机浏览器查看虚拟主机IP的网页配置

[root@localhost vhost]# systemctl restart httpd

2.搭建基于端口号的虚拟主机

首先创建网页文件html

[root@localhost redhat]# cd /var/www/
[root@localhost www]# mkdir 8081 8082
[root@localhost www]# ls
100  200  8081  8082  cgi-bin  html
[root@localhost www]# echo 8081 port test web > 8081/index.html
[root@localhost www]# echo 8082 port test web > 8082/index.html

然后在vhost目录下配置这两个虚拟端口的配置文件

[root@localhost www]# cd /etc/httpd/
[root@localhost httpd]# 
[root@localhost httpd]# cd vhost/
[root@localhost vhost]# cp 100.conf 8081.conf
[root@localhost vhost]# cp 100.conf 8082.conf
[root@localhost vhost]# ls
100.conf  200.conf  8081.conf  8082.conf
[root@localhost vhost]# vi 8081.conf
[root@localhost vhost]# vi 8082.conf
[root@localhost vhost]# cat 8081.conf
<VirtualHost 192.168.80.129:8081>
	DocumentRoot "/var/www/8081"
	DirectoryIndex index.html
	<Directory "/var/www/8081">
		Options Indexes FollowSymLinks
		AllowOverride None
		Require all granted
	</Directory>
</VirtualHost>
[root@localhost vhost]# cat 8082.conf
<VirtualHost 192.168.80.129:8082>
	DocumentRoot "/var/www/8082"
	DirectoryIndex index.html
	<Directory "/var/www/8082">
		Options Indexes FollowSymLinks
		AllowOverride None
		Require all granted
	</Directory>
</VirtualHost>

配置/etc/httpd/conf/httpd.conf主配置文件引用vhost目录里的虚拟主机IP的.conf配置文件,上面已经写了这一步了,然后还要配置端口号

[root@localhost vhost]# vi ../conf/httpd.conf

在监听端口低下添加监听8081与8082端口

配置完成保存退出,防火墙运行端口8081和8082通过,重启httpd服务,测试虚拟端口是否可用

[root@localhost vhost]# firewall-cmd --permanent  --add-port=8081/tcp
success
[root@localhost vhost]# firewall-cmd --permanent  --add-port=8082/tcp
success
[root@localhost vhost]# firewall-cmd --reload 
success
[root@localhost vhost]# setenforce 0
[root@localhost vhost]# getenforce 
Permissive
[root@localhost vhost]# systemctl restart httpd

3.个人Web站点的发布

[root@localhost vhost]# cd /etc/httpd/conf.d
[root@localhost conf.d]# ls
autoindex.conf  README  userdir.conf  welcome.conf
[root@localhost conf.d]#  cp userdir.conf  userdir.conf.bak
[root@localhost conf.d]# vi userdir.conf

进入文件目录中修改一些配置

配置完成,重启httpd服务

[root@localhost conf.d]# systemctl restart httpd

使用用户user1访问个人网站
新增用户user1,并设置密码

[root@localhost conf.d]# useradd user1
[root@localhost conf.d]# passwd user1
Changing password for user user1.
New password: 
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password: 
passwd: all authentication tokens updated successfully.

创建个人站点网页文件

[root@localhost conf.d]# su - user1
[user1@localhost ~]$ cd ..
[user1@localhost home]$ chmod -Rf 711 user1
[user1@localhost home]$  mkdir -p user1/public_html/
[user1@localhost home]$ echo user1 test website > user1/public_html/index.html

测试:

到此这篇关于如何使用Linux搭建web服务器的文章就介绍到这了,更多相关Linux搭建web服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文