介绍
此检查点旨在帮助您评估您从我们的 web 服务器的介绍文章中学到的内容,在那里我们引入了实用实施方法和常用的配置选项,您可以使用此检查点来测试您对这些主题的知识,查看关键术语和命令,并找到继续学习的资源。
网页服务器作为请求(如您输入浏览器的URL)和请求的响应(如链接到特定URL的网页)之间的中间人。
在这个检查点中,你会发现三个部分,合成介绍文章的核心想法:定义什么是网页服务器,使用Linux命令来配置和修改你的网页服务器,并了解网络协议。
资源
- Introduction to Web Servers.
- How To Install Apache.
- How To Install Nginx.
- Apache vs Nginx: Practical Considerations.
- How To Secure Apache with Let's Encrypt.
- How To Secure Nginx with Let's Encrypt.
什么是Web服务器?
一个 _web服务器_通过HTTP和HTTPS协议在您的浏览器中渲染 _web应用程序_所需的文件。Web应用程序是可以通过浏览器访问的软件,最终用户可以与之交互。
<$>[info] [label Check Yourself] 评估 Web 服务器解决方案时应该考虑哪些功能和共同目标?
[详细信息 使用下载功能获取答案。
- 具有稳定使用和快速加载的高运行时间
- 同时由多个用户访问
- 随着受众和用户群增长的可扩展性
- 直前和可重复的安装和安装
- 清晰的文档
- 开发人员支持,包括短期补丁和长期软件更新
- 社区支持和软件采用
] <$>
要了解Web服务器,重要的是熟悉几个关键(计算和网络)(https://andsky.com/tech/tutorials/an-introduction-to-networking-terminology-interfaces-and-protocols)术语。
<$>[info] [label Terms To Know] 定义下列每个术语,然后使用下载功能来检查您的工作。
[详细信息 端口 一个 port 是一个单一机器上的地址,可以连接到特定软件。 它不是一个物理接口或位置,但它允许您的服务器使用多个应用程序进行通信。
协议 是一个规则和标准的集合,它定义了设备可以使用的语言来通信。
一些低级别的协议包括 TCP、UDP、IP 和 ICMP. 一些熟悉的应用层协议,建立在这些低级别的协议,是 HTTP(访问网页内容),SSH,TLS/SSL和FTP。
防火墙 防火墙是一个系统,通过基于一组用户定义的规则来过滤输入和输出网络流量来提供网络安全。
常用的防火墙包括 Iptables、UFW 和 Fail2Ban. 有关防火墙如何工作的更多信息,您可以查看 什么是防火墙和它如何工作?。
[DNS DNS,或 domain name system,是一个连接域名(如自定义URL)与特定IP地址的应用层协议。
详细信息 HTTP 和 HTTPS 服务器 一个 HTTP 服务器是使用 Hypertext Transfer Protocol (HTTP) 来促进计算机网络上的通信的 Web 服务器。
HTTPS 指的是 Hypertext Protocol Transfer Secure,它加密了与 Transfer Layer Security (TLS) 或 Secure Sockets Layer (SSL) 的通信。为了启用 HTTPS 服务器和 SSL/TLS 加密,您需要通过证书授权机构(如 Let's Encrypt)生成并提供 SSL 证书。
作为一个额外的通过层,proxy server 作为客户端和服务器之间的互联网的网关,将 HTTP 请求流量路由到其背后的 Web 服务器。
Nginx 被设计为反向代理服务器,Apache 也可以作为反向代理服务器使用。 有关使用 Nginx 作为反向代理服务器的更多信息,请阅读 理解 Nginx HTTP 代理、负载平衡、缓存和缓存。
关于代理商的更多信息,请参阅我们的 介绍代理商。 ] <$>
安装 Web 服务器来为您的 Web 应用程序服务文件在构建应用程序时至关重要。 Web 服务器可以处理静态和动态内容,特别是在响应呼叫网站域名的 HTTP 请求时。
使用命令行来配置您的 Web 服务器
通过安装和配置 Apache 和 Nginx 等 Web 服务器,您继续通过修改 config 文件、为 Web 页面编写文件、运行启动脚本来导航命令行。
您现在可以使用以下命令配置和更新您的 Web 服务器:
chown
以更改文件所有权.chmod
以设置或更改访问文件的权限curl
以传输指定位置的数据(URL)。hostname
以设置或显示主机名和域名systemctl
以控制systemd
服务
您还使用了systemd
,这是在启动 Linux 系统时运行的初始过程(init)的选项。 有关使用systemd
命令的更多信息,请参阅How To Use Systemctl to Manage Systemd Services and Units
(https://andsky.com/tech/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units)。 系统启动脚本通常存储在/etc/init.d
目录中,需要root
或sudo
访问,并可以在/var/log
中找到日志。
您还使用了 Certbot与 --standalone
选项来处理您的域的 Let's Encrypt的认证。
配置您的服务器文件
Config files 提供 Web 服务器的设置,可定制以满足您的需求。
<$>[info] [label Check Yourself] 您在哪里可以找到系统的配置文件? 使用下载功能获取答案。
[详细信息 Config 文件通常在...
Config 文件通常在 /etc
目录中找到,并可以在命令行中编辑,例如 nano
或 vim
.
]
[细节 作为网页服务的网页文件通常位于...
作为网页服务的网页文件通常位于 /var/www
,可以使用命令行编辑器或使用集成开发环境(IDE)进行更新。
您已在您的远程服务器上安装并配置了常见的开源 Web 服务器 Apache或 Nginx,它们共占所有 Web 流量的约 50%。
Ubuntu 的默认防火墙是 uncomplicated firewall或 ufw
,它管理了 iptables
防火墙。你可以阅读更多关于 什么是防火墙和 如何选择有效的防火墙政策,知道Apache 和 Nginx 为常用的端口提供这些配置文件:
<$>[info] [详细介绍了在安装时使用防火墙打开Apache和Nginx注册表,每个注册表都有三种配置文件,适合常见的端口。
Port | Apache Profile | Nginx Profile |
---|---|---|
To open only port 80 | Apache | Nginx HTTP |
To open both port 80 and port 443 | Apache Full | Nginx Full |
To open only port 443 | Apache Secure | Nginx HTTPS |
] | ||
<$> |
使用Apache
Apache使用.htaccess 文件进行分散配置设置,这意味着您可以在目录级别进行配置更改。
您可以在下面的互动组件中检查您对Apache的其他方面的知识。
<$>[info] [label Check Yourself] 使用下载功能获取答案。
[详细信息 您可以在哪里找到 Apache 的主要配置文件?
Apache 的配置文件存储在 /etc/apache2
目录中。
[细节 您将在哪里找到其他关键的Apache文件,如虚拟主机和访问日志?
Apache的每个站点的虚拟主机位于 /etc/apache2/sites-available/
,并且可以链接到 /etc/apache2/sites-enabled/
。
与虚拟主机无关的配置片段存储在 /etc/apache2/conf-available/
中,并链接到 /etc/apache2/conf-enabled/
。
存取日志存储在 /var/log/apache2/access.log
中,并且错误消息被记录在 /var/log/apache2/error.log
中,基于 LogLevel
指令在 /etc/apache2/apache2.conf
全球配置文件中。
Apache 使用特定的术语来支持其系统设置,用 Apache 术语来评估您的知识:
<$>[info] [label Apache Terms to Know] 定义下列每个术语,然后使用下载功能来检查您的工作。
[详细信息 虚拟主机 每一个 virtual host 描述了一个单独的网站或域,可以独立定制和配置,允许您为不同的访问者提供不同的内容。
有关虚拟主机的更多信息,请遵循如何设置Apache虚拟主机
(https://andsky.com/tech/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-20-04)。
[详细信息 Multi-Processing Modules Apache的 Multi-Processing Modules(MPMs)处理客户端请求,尽管一次只能在服务器上加载一个MPM。
模块存储在 /etc/apache2/mods-available/
和 /etc/apache2/mods-enabled/
目录中。
使用 Nginx
Nginx 使用集中统一资源标识符(URI)匹配模式为其配置文件. 统一资源标识符是一个独特的字符序列来区分资源。
您可以在下面的互动组件中检查您对 Nginx 的其他方面知识。
<$>[info] [label Check Yourself] 使用下载功能获取答案。
[详细信息 您在哪里可以找到 Nginx 的配置板?
配置文件存储在 /etc/nginx
目录中。 每个站点的服务器块位于 /etc/nginx/sites-available
中,并链接到 /etc/nginx/sites-enabled
目录中。
[细节 您将在哪里找到其他关键的 Nginx 文件,如访问日志和错误消息?
访问日志和错误消息都位于 /var/log/nginx
目录中。
访问日志位于 /var/log/nginx/access.log
,错误消息被记录在 /var/log/nginx/error.log
]
Nginx 使用特定的术语来支持其系统设置,用 Nginx 术语来评估您的知识:
<$>[info] [label Nginx Terms to Know] 定义下列每个术语,然后使用下载功能来检查您的工作。
服务器块 _服务器块_是可以用来从单个服务器托管多个域的配置细节。
通常,服务器块配置将保存在etc/nginx/sites-available
目录中,尽管在Ubuntu 22.04 上默认启用的服务器块可以在/var/www/html
目录中找到
[detils Symlinks Symlinks,或符号链接,功能像是指向机器上的另一个文件或文件夹的捷径。
在/etc/nginx/sites-enabled
目录中的文件在/etc/nginx/sites-available
目录中以符号方式链接到其对象。
Nginx 使用 worker processes 通过事件循环处理客户端请求。 与 Apache 的多线程系统不同,工人流程是单线程的,连接在循环中被非同步管理。
了解网络通信和安全协议
网络通信协议通常可以分层,一个常见的组合是使用加密技术在TCP和UDP协议上。TCP是指 transmission control protocol,TCP通过三向握手处理数据传输通信。
TLS,或 transport layer security(及其前身 secure sockets layer,或SSL)是一个加密协议,将正常的流量放置在受保护的加密包装中。
<$>[info] [label Check Yourself] 使用下载键获取答案。
TCP 和 UDP 如何不同? TCP 使用手动协议来验证两端是否认可请求 UDP 不会在将数据发送到主机时完成此验证步骤,该步骤更快但更不可靠。
TCP 和 UDP 也可以影响 如何选择有效的防火墙策略。
TCP 和 HTTP 是如何相互关联的? hypertext transfer protocol (HTTP) 是一个应用层协议,运行在 transmission control protocol (TCP) 的顶部。
有关网络和流程间通信的更多信息,您可以查看 什么是接口?和 理解接口。
在本节的资源教程中,您已在使用 Certbot 客户端的 Apache 和 Nginx Web 服务器上启用了使用 Let's Encrypt 的 TLS 加密。
虽然您已经使用Certbot为您的域配置了Let's Encrypt的SSL证书,但您还可以生成一个自签名的证书来加密您的服务器和任何客户端之间的通信,使用以下教程为您选择的Web服务器:
<$>[info] [label Check Yourself] 使用自签证有什么问题?
[细节 使用下载键获取答案 自签证书不是由任何一个受信任的证书授权机构签署的,包括网络浏览器和操作系统,因此用户无法使用该证书自动验证您的服务器的身份。
您可以查看 OpenSSL Essentials 作为快速参考以处理 SSL 证书、私钥和证书签名请求。
什么是下一步?
有了您的 Web 服务器,您现在可以根据需要创建额外的服务器块或虚拟主机,修改配置文件以满足您的 Web 应用程序的需求。
要建立您对防火墙的理解或重新配置您的 Web 服务器的防火墙设置,请尝试这些教程:
- 什么是防火墙,它是如何工作的?
- 如何选择有效的防火墙政策来保护您的服务器
- 如何在Ubuntu 22.04上设置使用UFW的防火墙
- 如何在Ubuntu 20.04上使用Iptables实施基本防火墙模板
- 如何在Ubuntu 22.04上使用Iptables防火墙工作
- 如何在Linux服务器上使用Fail2Ban来保护服务器的安全措施( *) [如何在U
您还可以考虑设置一组常用于服务 Web 应用程序的开源软件,例如 LAMP、LEMP 或 LOMP 堆栈:
- LAMP Stack 教程集
- [如何在 Ubuntu 20.04 上安装 Linux, Nginx, MySQL, PHP (LEMP 堆栈)(https://andsky.com/tech/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-20-04)
- 如何在 Ubuntu 20.04 上安装 Linux, OpenLiteSpeed, MariaDB, PHP (LOMP 堆栈)
要开始构建您的Web应用程序,请尝试遵循我们的How To Code系列,包括: