Ubuntu下搭建WEB服务器(基于Apache HTTP Server)
技术忍者 2024-07-19 14:07:05 阅读 95
1 前言
大家好,我是小何,前几天自己尝试了一下在Ubuntu搭建一个基于Apache HTTP Server的WEB服务器,并设计了一个简单的网页,最后通过内网穿透将网站发布出去,进行了简单的测试,现在将学习记录下来,供大家参考,如有问题请多多指正。
2 环境条件
1、主机:Ubuntu 22.04.3 LTS
2、web服务器:Apache
3、内网穿透软件:cpolar
3 WEB服务器搭建
3.1 Apache服务器介绍
常见的web服务器有Apache、Ngnix、IIS,Apache音译为阿帕奇,是全世界最受欢迎的web服务器,因其快速、可靠并且可通过简单的API扩充,能将Python\Perl等解释器部署在其上面等优势,受到广泛的关注与使用。
Apache HTTP Server(简称Apache)是一款非常有名的应用软件。它是世界上使用最广泛的Web服务器应用程序,在商业Web服务器市场中占有超过50%的份额。
3.2 安装Apache服务
这里使用Apache服务,在Ubuntu安装命令如下:
sudo apt install apache2 -y
// -y 是为了同意安装过程中的yes/no
安装完毕,查看apache2版本号并检查是否启动服务器:
apache2 -v
sudo service apache2 status
// -v 命令是查看版本
显示active(runing),则表示服务器正在运行。
3.2.1 Apache常用命令
sudo service apache2 status //检查是否启动apache2服务器
sudo systemctl status apache2 //查systemdinit系统apache2服务
sudo service apache2 start //启动服务
sudo service apache2 stop //结束服务
sudo service apache2 restart //重启服务
sudo systemctl restart apache2 //重启Apache服务
3.3 调整防火墙
检查可用的ufw应用程序配置
sudo ufw app list
让我们启用最严格的配置文件,它仍然允许您配置的流量,允许端口80上的流量(正常,未加密的网络流量):
sudo ufw allow ‘Apache’
验证更改:
sudo ufw status
3.4 检查Web服务器
通过以下命令检查systemdinit系统以确保服务正在运行:
sudo systemctl status apache2
安装 w3m:
sudo apt-get install w3m
查看主机Ubuntu的IP:
ifconfig
例如本机IP为192.168.81.128。
在Ubuntu上用浏览器访问http://192.168.81.128,可以看到默认的Apache网页,到此已经基本完成了web服务器的安装。
3.5 发布网页并设置虚拟主机
使用Apache Web服务器时,可以使用虚拟主机(类似于Nginx中的服务器块)来封装配置详细信息并从单个服务器托管多个域。也就是说,可以将自己Ubuntu设置成虚拟主机,把设计的网页存放在虚拟主机上部署发布。
3.5.1 简单网页测试
网页存放路径在/var/www,因此我们可以将设计好的网页存放在该路径下,当别人访问内网IP时便可以看到发布的内容。
首先,在该路径下创建目录,文件名mytest666.com可以自己设置:
sudo mkdir -p /var/www/mytest666.com/html
分配目录的所有权:
sudo chmod -R 755 /var/www/mytest666.com
先做一个简单的网页进行测试,用编辑器nano(也可以使用其他编辑器,后续写网页代码可以使用vscode)创建网页index.html:
nano /var/www/mytest666.com/html/index.html
添加以下示例HTML:
<html>
<head>
<title>hello world</title>
</head>
<body>
<h1>hello world</h1>
</body>
</html>
Ctri+x是退出并保存,按y然后Enter键进行保存,完成后保存并关闭文件。其他编辑器例如vi、gedit操作不同。
3.5.2 配置虚拟主机
在/etc/apache2/sites-available/mytest666.com.conf中创建新的虚拟主机文件:
sudo nano /etc/apache2/sites-available/mytest666.com.conf
粘贴在以下配置块中,针对我们的新目录和域名进行更新:
<VirtualHost *:80> #此处要配置端口号
ServerAdmin admin@mytest666.com
ServerName mytest666.com
ServerAlias www.mytest666.com
DocumentRoot /var/www/mytest666.com/html #网页存放路径
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
完成后保存并关闭文件。
启用a2ensite文件:
sudo a2ensite mytest666.com.conf
禁用在000-default.conf中定义的默认站点:
sudo a2dissite 000-default.conf
测试配置错误:
sudo apache2ctl configtest
应该看到以下输出:Syntax OK,表示配置成功。
重启Apache以实现更改:
sudo systemctl restart apache2
在Ubuntu上用浏览器访问http://192.168.81.128:80,可以看到设计好的测试界面,服务器搭建完成。
3.5.3 Apache添加端口(基于端口)
有时需要配置多个网页对应不同的端口,因此需要在Apache添加多个端口号,端口号的配置在/etc/Apache2 路径下的ports.conf文件中。
首先用编辑器打开/etc/Apache2 路径下ports.conf文件:
sudo nano /etc/Apache2/ports.conf
在主配置文件添加监听端口,例如添加端口号8080:
Listen 8080
然后在/etc/apache2/sites-available/mytest666.com.conf中配置虚拟主机文件,添加8080的端口虚拟配置:
<VirtualHost *:8080> #此处要配置端口号
ServerAdmin admin@mytest666.com
ServerName mytest666.com
ServerAlias www.mytest666.com
DocumentRoot /var/www/mytest666.com/testb #网页存放路径
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
完成后保存并关闭文件。
启用a2ensite文件:
sudo a2ensite mytest666.com.conf
禁用在000-default.conf中定义的默认站点:
sudo a2dissite 000-default.conf
测试配置错误:
sudo apache2ctl configtest
应该看到以下输出:Syntax OK,表示配置成功。
重启Apache以实现更改:
sudo systemctl restart apache2
在Ubuntu上用浏览器访问http://192.168.81.128:8080,可以看到设计好的测试界面。
3.6 内网穿透公网访问
当我们在本地搭建了服务器Ubuntu系统和web网站后,只能在局域网或内网上访问网站,那没有公网IP,我们如何将网站发布到公网上呢?
可以使用路由器进行转发,路由器的转发作用:在局域网中,连接到同一路由器的各个设备可以通过路由器访问公网。这是因为路由器在局域网和公网之间起到了中继的作用,它具有连接局域网和公网的能力,同时提供网络地址转换(NAT)和端口转发等功能。
也可以通过cpolar做内网穿透把它发布到公网上访问。Cpolar作为一款体积小巧却功能强大的内网穿透软件,不仅能够在多种环境和应用场景中发挥巨大作用,还能适应多种操作系统,应用最为广泛的Windows、macOS系统自不必多说,稍显小众的Linux、树莓派、群晖等也在支持之列,真正做到了广泛适用性。从这篇介绍开始,我们将会为大家详细介绍,cpolar在Linux系统下的各种应用类型。
Linux系统在桌面级应用范围较小,但却广泛应用于服务器级系统中。当然,为了保证服务器硬件资源都集中于数据交换和处理上,服务器级的Linux系统很少带有图形化界面,但基于Linux开发的Ubuntu系统,却拥有较为美观的图形化界面及与Windows相似的操作方式,是我们熟悉Linux系统的较好平台。
正如前面所说,Ubuntu系统虽然操作方法与Windows类似,都是以图形化为主,但在细节上还是有一定差别,其中就包括软件的安装方式。
首先,进入cpolar网站:www.cpolar.com ,在Ubuntu上打开终端,执行命令。
首先,我们需要安装curl:
sudo apt-get install curl | sudo bash
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
正常显示版本号即安装成功
cpolar version
登录cpolar官网后台,邮箱注册后,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里
可以看到有正常生成相应的公网地址,测试穿透本地8080端口成功,按Ctrl+C返回。
4 参考资料及链接
1、ubuntu20.04服务器搭建自己的个人网站_ubuntu搭建个人网站-CSDN博客
2、在乌班图(ubuntu)上安装web服务器详解_ubuntu安装web服务器-CSDN博客
3、Linux:apache配置与应用_linux配置apache服务器使用域名访问-CSDN博客
4、Apache添加端口的三种方法(基于ip、端口、域名)_httpd 配置端口-CSDN博客
5、Cpolar快速入门教程:Ubuntu系列 - cpolar 极点云官网
6、【在Ubuntu上搭建web站点,通过内网穿透即可公网访问】https://www.bilibili.com/video/BV1jk4y1G7Dq?vd_source=2c178927fd78879d66b3542502bcb442
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。