如何使用Linux搭建web服务器

 更新时间:2023年12月21日 11:16:38   作者:网络给个机会  
web 服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页,在 redhat 中,这个目录默认在/var/www/html,这篇文章主要介绍了如何使用Linux搭建web服务器,需要的朋友可以参考下

搭建web服务器 

www 简介

网址及 HTTP 简介

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

  • URL:Uniform Resource Locator,统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
  • 网址格式:<协议>://<主机或主机名>[:port]/<目录资源,路径>
    • 浏览器常支持的协议有:http、https、ftp 等
    • 主机地址或者主机名:主机地址就是服务器在因特网所在的 IP 地址。如果是主机名的话,那么就需要域名解析了
    • 端口号(port):http 为 80,https 为 443 (IANA:互联网数字分配机构)
    • 0-1023:众所周知,永久地分配给固定的应用程序使用,特权端口(只有管理员有权限启用并让进程监听)
    • 1024-41951:亦为注册端口,但要求不是特别严格,分配给程序注册为某应用使用:3306/TCP
    • 41952-60000:客户端程序随机使用的端口,动态端口,或私有端口
  • http 请求方法:在 http 通信中,每个 http 请求报文都包含一个方法,用以告诉 web 服务器端需要执行哪些具体的动作,这些动作包括:获取指定 web 页面、提交内容到服务器、删除服务器上资源文件等。
  • 状态代码:由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
    • 1xx:指示信息 —— 表示请求已接收,继续处理
    • 2xx:成功 —— 表示请求已被成功接收、理解、接受
    • 3xx:重定向 —— 要完成请求必须进行更进一步的操作
    • 4xx:客户端错误 —— 请求有语法错误或请求无法实现
    • 5xx:服务器端错误 —— 服务器未能实现合法的请求
    • 常见状态代码、状态描述的说明如下:
    • 200 OK:客户端请求成功
    • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解
    • 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate 报头域一起使用
    • 403 Forbidden:服务器收到请求,但是拒绝提供服务
    • 404 Not Found:请求资源不存在,举个例子:输入了错误的URL
    • 500 Internal Server Error:服务器发生不可预期的错误
    • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
  • HTTP 报文:http 报文中有很多行内容,这些行的字段内容都是由一些 ASCII码串组成,但各个字段的长度是不同的。http 报文可分为两种,一种是从web 客户端发往 web 服务器的 http 报文,称为请求报文。另外一种是从 web服务器发往 web 客户端的报文,称为响应报文

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服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 银河麒麟V10服务器版安装达梦DM8数据库的详细过程

    银河麒麟V10服务器版安装达梦DM8数据库的详细过程

    这篇文章主要介绍了银河麒麟V10服务器版安装达梦DM8数据库的详细过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-03-03
  • 服务器配置禁止IP直接访问只允许域名访问的实现步骤

    服务器配置禁止IP直接访问只允许域名访问的实现步骤

    联网信息系统需设置只允许通过域名访问,禁止使用IP地址直接访问,建议同时采用云防护技术隐藏系统真实IP地址且只允许云防护节点IP访问服务器,提升网络安全防护能力,这篇文章主要介绍了服务器配置禁止IP直接访问只允许域名访问,需要的朋友可以参考下
    2024-03-03
  • 网站解决和优化Server is too busy的一些方法

    网站解决和优化Server is too busy的一些方法

    有时候我们在访问网站的时候提示Server is too busy,一般情况都是因为服务器iis或web服务器资源不足引起的,一般情况下都有限制
    2014-04-04
  • 分享几款linux下常见的vps控制面板

    分享几款linux下常见的vps控制面板

    VPS主机控制面板主要是用来控制和管理VPS服务器的,一般来说如果想要将VPS主机共享出来给多个人使用的话,我们就会采用类似于Cpanel、Virtualmin等主机控制面板。如果VPS主机只是一个人使用的话部落建议还是不要使用主机控制面板,以免带来不必要的安全隐患
    2017-07-07
  • 服务器安装什么系统好 服务器系统详细介绍与选择推荐

    服务器安装什么系统好 服务器系统详细介绍与选择推荐

    有时候我们购买了服务器或云主机,服务器对于操作系统的选择就是一个问题,当然肯定选择一个你懂的能把安全做的差不多的,要不就找相关的技术人员帮你配置与推荐
    2017-08-08
  • 便宜vps多是哪些技术架构方式(VPS分割架构是怎么超售的)

    便宜vps多是哪些技术架构方式(VPS分割架构是怎么超售的)

    对于vps服务器租用,一些人们可能比较注重vps服务器价格,那么,了解和清楚哪一类vps服务器比较便宜是有必要的,这样我们就有针对的去选用购买自己需要的便宜vps服务器
    2015-09-09
  • Ubuntu18.04本地化部署Rustdesk服务器的详细过程

    Ubuntu18.04本地化部署Rustdesk服务器的详细过程

    如果你是想数据留在本地,那么Rustdesk这个工具可以考虑,它是开源的,部署起来也简单,下面通过本文给大家分享Ubuntu18.04本地化部署Rustdesk服务器的详细过程,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • Apache Hudi的多版本清理服务彻底讲解

    Apache Hudi的多版本清理服务彻底讲解

    这篇文章主要为大家详细彻底的介绍了Apache Hudi的多版本清理服务,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • 服务器并发量估算公式和计算方法

    服务器并发量估算公式和计算方法

    本文详细讲解了服务器并发量估算公式和计算方法,对大家的学习或工作具有一定的参考借鉴价值。需要的朋友可以收藏下,方便下次浏览观看
    2021-12-12
  • ubuntu20.04部署ntp服务器ntpd(ntpdate )的详细过程

    ubuntu20.04部署ntp服务器ntpd(ntpdate )的详细过程

    这篇文章主要介绍了ubuntu20.04部署ntp服务器ntpd(ntpdate )的详细过程,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09

最新评论