Linux上web服务器搭建(Apache、Nginx) linuxweb服务器搭建教程

Linux上web服务器搭建(Apache、Nginx)第五章 web服务器
第一节
DNS:对域名进行解析,查询对应的地址
1.1 web服务器简介
www是world wide web的缩写&#xff

第五章 web服务器

第一节

DNS:解析域名并查询对应的地址。

1.1 web服务器简介

www代表万维网,指的是信息在全球范围内的传播。

1.2.网址及HTTP简介

Web服务器提供的大部分数据都是文件,因此您必须首先在服务器端创建一个数据文件并将其放置在一个特殊的目录中。在redhat中,这个目录成为整个网站的主页。是/var/www/html。浏览器通过在地址栏中键入所需的URL 来检索此目录的数据。

URL:统一资源定位符是对在何处以及如何访问Internet 上可用资源的简明表示,是Internet 上标准资源的地址。

URL格式:协议://主机或主机名[:端口]/目录资源、路径

浏览器通常支持的协议包括http、https和ftp。

主机地址或主机名:主机地址是Internet 上服务器的IP 地址。对于主机名,需要进行域名解析。

端口号(port):http 为80,https 为443(IANA:互联网号码分配机构)

0到1023:如您所知,固定应用程序,永久分配给特权端口(只有管理员有权启用进程监听)

1024-41951:也是注册端口,但要求不是特别严格。分配给您在应用程序中注册使用的程序:3306/TCP。

41952-60000:客户端程序使用的随机、动态或专用端口

1.3.http请求方法:

在HTTP 通信中,每个HTTP 请求消息都包含一个方法,该方法告诉Web 服务器需要采取的具体操作。这些操作包括检索指定的网页、向服务器发送内容以及删除服务器上的资源文件。

状态码:由3位数字组成,第一位定义响应类别,有5个可能的值。

状态码范围功能说明

100-199 用于指定客户端的具体操作。

200-299用于表示请求成功。

300-399 用于移动的文件,通常包含在位置标头信息中以指定新的地址系统信息。

400-499 用于指示客户端错误

500-599 用于指示服务器端错误。

1.4.常见状态代码、状态描述的说明如下:

200 OK:客户端请求成功

我收到了数据,但数据有问题

400 Bad Request:客户端请求有语法错误,服务器无法理解。

401 Unauthorized:请求未经授权。此状态代码必须与WWW-Authenticate 标头字段一起使用。

403 Forbidden:服务器收到请求但拒绝为其提供服务。

404 Not Found:请求的资源不存在。示例:输入了错误的URL。

服务器内部的问题

500 内部服务器错误:服务器遇到意外错误

503 Server Unavailable:服务器当前无法服务客户端请求,可能在一段时间后恢复正常。

1.5.http协议请求工作流程

HTTP 默认端口80 和8080

(1)最终客户在零售网络浏览器的地址栏中输入访问地址的域名。

(2) Web浏览器请求DNS服务器将域名www.ceshi.com解析为Web服务器的IP地址。

(3) 网络浏览器从访问地址(URL)中分析端口号(默认为80)。

(4) Web浏览器通过解析出的IP地址和端口号与Web服务器建立TCP连接。

(5) 建立TCP连接后,Web浏览器向Web服务器发送HTTP请求消息。

(6) Web服务器读取浏览器请求信息并返回HTTP响应消息。

(7) Web服务器关闭HTTP连接并关闭TCP连接。您的网络浏览器会在屏幕上显示您访问的网站的内容。

第二节 web服务器的类型

2.1 静态页面和动态网页

静态页面:

静态页面是具有固定内容的网页。其内容以HTML 文件的形式驻留在服务器上。当用户请求访问时,服务器将预先保存的HTML 文件直接发送到用户的浏览器进行显示。

例如,一个简单的个人简历网页,其文字、照片、布局等创建后不会发生变化,这就是静态页面。

静态页面的优点包括加载速度更快,因为不需要服务器进行复杂的处理,对服务器的资源要求较低,并且更容易维护和部署。

但更新或修改内容并不容易;每次修改HTML文件都必须重新编辑;缺乏交互性,无法实时响应用户操作动态显示不同的内容。缺点也很明显。

动态页面:

动态页面则不同。内容不是固定的,是根据用户请求、数据库中的数据以及具体的程序逻辑在服务器端实时生成的。

例如,在电商网站的商品列表页面,如果数据库中的商品信息发生变化,可以在页面上实时显示最新的商品信息。

动态页面的优点在于它们具有高度交互性和灵活性,允许您根据用户交互和各种条件来显示个性化内容,无需手动修改每个页面,并使内容管理和更新变得更加容易。

但动态页面也有一些缺点,比如由于服务器必须进行计算和处理,加载速度相对较慢,开发和维护成本相对较高。

2.2静态页面资源特征

静态页面资源具有以下特点:

1. 内容修改: – 创建后,显示的文本、图像、布局和其他元素不会自动更改。 – 例如,描述历史事件的静态网页将始终显示相同的内容和演示,无论您何时访问它。

2. 快速加载: – 预先准备好的HTML 文件直接发送到您的浏览器,无需服务器进行额外的计算或处理。 – 例如,只有一些简单文本和一些图像的静态博客页面通常加载速度很快。

3、服务器资源消耗少: – 服务器只需响应请求而传输文件,对服务器的CPU、内存等资源消耗较少。 – 即使很多用户同时访问静态页面,服务器的负载也比较小。

4.更容易缓存: – 浏览器和代理服务器可以更有效地缓存静态页面。 – 下次用户再次访问同一页面时,可以直接从本地缓存中检索,加载速度更快。

5. 易于维护: – 主要直接编辑HTML、CSS和JavaScript文件。 – 例如,如果您想更改页面的颜色或字体或添加新图像,只需更改相应的文件即可。

6.安全性高: – 与服务器没有动态交互,减少了潜在的安全漏洞。 – 降低SQL 注入等攻击的风险。

7. 可预测性强: – 每次访问的结果都是相同的,使测试和质量保证变得更加容易。 – 开发人员确切地知道页面在不同情况下的行为方式。

2.4 nginx的搭建方式:

灯,LNMP

以下是使用Nginx 构建LAMP(Linux + Apache + MySQL + PHP)和LNMP(Linux + Nginx + MySQL + PHP)环境的一般步骤。

设置LAMP环境:

1.安装Linux操作系统(CentOS、Ubuntu等)。

2.安装Apache服务器。

– 在CentOS 上,可以使用“yum install httpd”命令安装。

– 在Ubuntu 上,可以使用“apt-get install apache2”命令安装。

3.安装MySQL数据库。

– CentOS:`yum install mysql-server`

– Ubuntu:`apt-get install mysql-server`

4.安装PHP。

– CentOS:`yum 安装php`

– Ubuntu:`apt-get install php`

5.配置Apache以支持PHP。

– 将PHP 支持模块添加到Apache 配置文件(例如httpd.conf)。

设置LNMP环境:

1.首先还要安装Linux操作系统。

2.安装Nginx服务器。

– CentOS:`yum 安装nginx`

– Ubuntu:`apt-get install nginx`

3. 安装MySQL数据库(与LAMP相同步骤)。

4.安装PHP。

– 要使用Nginx,您还必须安装PHP-FPM(FastCGI 进程管理器)。

5.配置Nginx以支持PHP。

– 在Nginx 配置文件(例如nginx.conf)中,配置PHP 处理规则,将PHP 请求转发给PHP-FPM 进行处理。

请注意,实际构建过程中可能会出现各种依赖问题和配置错误,必须按照具体的错误提示来解决。

例如,当您安装MySQL时,可能会提示您设置root密码,您需要记住该密码以供以后使用。配置Nginx时,您可能需要根据您服务器的实际IP地址和域名进行相应的更改。

2.5 web服务器基本配置

nginx 服务器:

主配置文件:/etc/nginx/nginx.conf

子配置文件:/etc/nginx/conf.d/*.conf

请求目录文件位置:/var/share/nginx/html

阿帕奇服务器:

主配置文件:/etc/httpd/conf/httpd.conf

子配置文件:/etc/httpd/conf.d/

请求的文件位置:/var/www/html

配置防火墙并关闭selinux(安全增强型Linux)防火墙。

systemctl 停止firewalld并setenforce 0

最后检查一下你的防火墙是否关闭

systemctl 状态防火墙

systemctl stop firewalld ##关闭防火墙

systemctl禁用firewalld##关闭防火墙并开机启动

systemctl statusfirewalld##检查防火墙是否关闭

setenforce 0 ##暂时关闭selinux

vim /etc/selinux/config

SELINUX=已禁用##永久关闭

1.下载nginx

[root@server]# yum install nginx -y

2.启动服务

[root@server]# systemctl 启动nginx

3.找到uginx配置文件。

[root@server]# rpm -ql nginx (搜索.conf)

Tree /etc/nginx#显示树目录

4.编辑

[root@server]# vim /etc/nginx/nginx.conf

#nginx服务配置文件nginx.conf的结构

############全局配置(不带{} 标志)############

user nginx #进程所属用户

work_processes auto; #线程数和CPU核心数(双核4线程,可配置为4)

error_log /var/log/nginx/error.log; #错误日志文件路径

pid /run/nginx.pid #nginx pid文件位置

include /usr/share/nginx/modules/*.conf; #导入功能模块配置文件。

############################################## ## ##

##################性能配置(带{}符号)############

事件{

#worker连接1024;

}

############################################## ## ## # #

##################http模块配置(带{}符号)############

http { #http 起始块

log_format main \’$remote_addr – $remote_user [$time_local] \’$request\’ \’

\’$status $body_bytes_sent \’$http_referer\’ \’

\’\’$http_user_agent\’ \’$http_x_forwarded_for\’;

#日志显示格式定义

access_log /var/log/nginx/access.log main #访问日志文件位置

(以下几点无需担心)

sendfile on #启用高效的文件传输

tcp_nopush on #性能优化参数

tcp_nolay on #性能优化参数

keepalive_timeout 65; #持续连接或超时时间

type_hash_max_size 4096; #性能优化参数

包括/etc/nginx/mime.types。 #可解析的静态资源类型

默认类型应用程序/八位字节流;

包括/etc/nginx/conf.d/*.conf。 #加载子配置文件。

server { #server块已启动,对应一个虚拟主机

听80。

请听[:]:80;

服务器名称_;#服务名称

root /usr/share/nginx/html; #主页存放路径

include /etc/nginx/default.d/*.conf; #子配置文件路径

error_page 404 /404.html; #404错误返回页面

location=/404.html { #location定义用户请求的URI,返回对应的资源文件

}

error_page 500 502 503 504 /50x.html 返回#5xx 状态的页面

位置=/50x.html {

}

}

}

补货:

检查nginx是否正在运行

[root@server]# ps -aux grep nginx |

摘要: 要终止进程,请停止该进程或rm 进程文件。

(以nginx.pid为例)

[root@server]#kill -9 1991or

[root@server]# rm /run/nginx.pid

Index.html是默认的,所以不用写。

第三节 案例(Nginx)

案例一:多ip访问多网站

网站IP地址的主机位为100,目录主页设置为/www/ip/100,网页内容如下:This is 100

网站IP地址的主机位为200,目录主页设置为/www/ip/200,网页内容如下:This is 200

ip -a 显示网卡信息

route -n /ip Route show ##显示网关等信息

1.添加IP地址

[root@localhost ~]# nmcli connection edit ens33 +ipv4.address 192.168.84.100/24 +ipv4.gateway 192.168.84.2 ipv4.dns 114.114.114.114 ipv4.method 手动自动连接是

[root@localhost ~]# nmcli 连接更改ens33 +ipv4.addresses 192.168.84.200/24

[root@localhost ~]# nmcli 连接ens33

2. 创建网页根目录并定义网页内容。

[root@localhost ~]# mkdir -pv /www/ip/{100,200}

[root@localhost ~]# echo 这是100 /www/ip/100/index.html

[root@localhost ~]# echo 这是200 /www/ip/200/index.html

3. 创建一个新文件并写入您的设置

[root@localhost ~]# vim /etc/nginx/conf.d/test1.conf

服务器{

收听192.168.84.100:80。

根/www/ip/100;

位置/{}

}

服务器{

收听192.168.84.200:80。

根/www/ip/200;

位置/{}

[root@localhost ~]# systemctl 重启nginx

4. 测试结果

[root@localhost ~]#curl 192.168.84.100

这是100

[root@localhost ~]#curl 192.168.84.200

这是200

案例二:基于不同端口访问网站

对于使用Web服务器默认端口的网站,将网站首页目录位置设置为/www/port/80,并设置网页内容如下:端口是80。

使用1000端口创建网站,并将网站首页目录位置设置为/www/port/1000。网页内容应如下所示:端口是1000。

1.添加IP地址

[root@localhost ~]# nmcli connection edit ens33 +ipv4.address 192.168.84.100/24 +ipv4.gateway 192.168.84.2 ipv4.dns 114.114.114.114 ipv4.method 手动自动连接是

[root@localhost ~]# nmcli 连接ens33

2. 创建网页根目录并定义网页内容。

[root@localhost ~]# mkdir -pv /www/port/{80,1000}

[root@localhost ~]# echo 端口为80 /www/port/80/index.html

[root@localhost ~]# echo 端口为1000 /www/port/1000/index.html

3. 创建一个新文件并写入您的设置

[root@localhost ~]# vim /etc/nginx/conf.d/test2.conf

服务器{

收听192.168.84.100:80。

根/www/端口/80;

位置/{}

}

服务器{

收听192.168.84.100:1000。

根/www/poort/1000;

位置/{}

[root@localhost ~]# systemctl 重启nginx

4. 测试结果

[root@localhost ~]#curl 192.168.84.100

端口是80

[root@localhost ~]#curl 192.168.84.100:1000

端口是1000

第四节 搭建静态网站基于https协议

1.简介

HTTP 协议以明文形式传输内容,不提供任何形式的数据加密。

为了克服HTTP协议的这个缺点,必须使用另一种协议,即安全套接字层超文本传输协议HTTPS。

HTTPS(正式名称:安全套接字层超文本传输协议或安全超文本传输协议)是一种用于安全目的的HTTP 通道。 HTTPS 不是一个新协议;它是HTTP+SSL(安全套接字层)(TLS)。本来,HTTP首先直接与TCP对话(假设传输层是TCP协议),但是添加SSL之后,HTTP先与SSL对话,然后SSL与TCP对话,现在我们可以互相通信了。这相当于在HTTP 和HTTP 之间嵌入了SSL。 TCP。

SSL 协议分为两层。

SSL记录协议:建立在可靠传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能。 SSL握手协议:建立在SSL记录协议之上,用于在实际数据传输开始之前通信双方之间进行身份验证、加密算法协商以及加密密钥交换。

SSL协议提供的服务:

1) 对用户和服务器进行身份验证,确保数据发送到正确的客户端和服务器。

2) 加密您的数据以防止其在途中被窃取

3)保持数据完整性,保证数据在传输过程中不被修改。

2.https协议加密所使用的算法

2.1 哈希算法常用于存储不可约密码、验证信息完整性等。

常见的HASH算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMACSHA1。

2.2 共享密钥密码术(对称密钥密码术):加密和解密使用同一个密钥。

对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6、AES。

2.3 公钥密码术(非对称密钥密码术):公钥密码术使用一组非对称密钥。一个称为私钥,另一个称为公钥。

常见的非对称加密算法:RSA、ECC(针对移动设备)、Diffie-Hellman、El Gamal、DSA(针对数字签名)。

3.TLS完整的通信流程

第一阶段:客户端用于建立https连接。

第2阶段:客户端和服务器检查加密版本和密码套件。

第三步,证书发送验证(客户端验证证书,检索公钥,并使用公钥密码学生成的对称私钥发送服务器通知发送加密信息进行更改)

第4阶段:服务接收消息,用私钥解密,验证对称密钥,并通知客户端SSL通道已建立。

第5 阶段:客户端和服务器可以开始通过加密通道通信数据

第6 阶段:客户端断开连接

#key是你的私钥文件

#crt 是由证书颁发机构(CA) 签名或由开发人员自签名的证书,其中包含有关证书所有者、所有者的公钥和签名者的签名的信息。

(第一种) [root@localhost certs]# make jiami.crt

(第二种类型)#openssl req -newkey rsa:40

96 -nodes -sha256 -keyout haha.key -x509 -days 365 -out haha.crt
[root@www certs]# openssl genrsa -aes128 2048 > openlab.key
(第三种) #openssl req -utf8 -new -key openlab.key -x509 -days 365 -out openlab.crt

4.静态https网站搭建

1. 配置网络接口与 IP 地址
– 使用 `nmcli connection modify ens33 +ipv4.addresses 192.168.84.110/24` 为网络接口 `ens33` 配置 IPv4 地址。
– 通过 `nmcli connection up ens33` 激活网络连接。
2. 创建网站目录与文件
– 使用 `mkdir -p /www/https` 创建网站的目录。
– 利用 `echo this is https > /www/https/index.html` 创建网站的默认页面文件 `index.html` 并写入内容。
3. 生成 SSL 证书和私钥
– 通过 `openssl genrsa -out https.key` 生成私钥 `https.key` 。
– 执行 `openssl req -utf8 -new -key https.key -x509 -days 100 -out https.crt` 基于私钥生成自签名的 SSL 证书 `https.crt` 。
4. 配置 Nginx 服务器
– 使用 `vim /etc/nginx/conf.d/test_https.conf` 编辑 Nginx 的配置文件。
– 在配置文件中设置服务器监听的 IP 地址和端口、网站根目录、SSL 证书和私钥的路径等。
5. 测试网站
– 使用 `curl -k https://192.168.84.110` 命令访问网站,验证配置是否成功。
这些步骤共同构成了创建基于 HTTPS 的静态网站的主要过程,确保网站能够通过安全的 HTTPS 协议正常访问,并提供指定的静态内容。

具体操作命令:

1、添加ip地址
[root@localhost ~]# nmcli connection modify ens33 +ipv4.addresses 192.168.84.110/24
[root@localhost ~]# nmcli connection up ens33
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
2、创建网页根目录,定义网页内容
[root@localhost ~]# mkdir -p /www/https
[root@localhost ~]# echo this is https > /www/https/index.html
3、生成lls证书和私钥
[root@localhost ~]# cd /etc/pki/tls/certs/
[root@localhost certs]# ls
ca-bundle.crt ca-bundle.trust.crt
[root@localhost certs]# openssl genrsa -out https.key #生成私钥https.key 使用 openssl 生成一个 RSA 私钥,并将其保存为 https.key 文件
[root@localhost certs]# openssl req -utf8 -new -key https.key -x509 -days 100 -out https.crt
#基于私钥生成LLS证书, 使用之前生成的私钥 https.key 创建一个自签名的 X.509 证书,有效期为 100 天,并将证书保存为 https.crt 文件。
[root@localhost certs]# ls
ca-bundle.crt ca-bundle.trust.crt https.crt https.key
4、配置nginx服务器
[root@localhost ~]# vim /etc/nginx/conf.d/test_https.conf
server {
listen 192.168.84.110:443 ssl; #表示监听 192.168.84.110 的 443 端口,并启用 SSL
root /www/https; #指定网站的根目录为 /www/https
ssl_certificate /etc/pki/tls/certs/https.crt; #指定了 SSL 证书位置。
ssl_certificate_key /etc/pki/tls/certs/https.key; #指定SSL 私钥位置
location / {}
}
5、测试网站
[root@localhost ~]# curl -k https://192.168.84.110
this is https

5.动态网站搭建

[root@localhost ~]# nmcli connection modify ens33 +ipv4.addresses 192.168.84.120/24
[root@localhost ~]# nmcli connection up ens33
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@localhost ~]# dnf install php php-fpm -y
输出 PHP 信息
[root@localhost ~]# echo \”<?php phpinfo(); ?>\” /usr/share/nginx/html/index.html
<?php phpinfo(); ?> /usr/share/nginx/html/index.html
重启服务
[root@localhost ~]# systemctl restart nginx
查看输出信息
[root@localhost ~]# curl -I 192.168.84.120
HTTP/1.1 200 OK
Server: nginx/1.21.5
Date: Fri, 28 Jun 2024 10:07:42 GMT
Content-Type: text/html
Content-Length: 3510
Last-Modified: Mon, 23 Oct 2023 15:48:29 GMT
Connection: keep-alive
ETag: \”653695cd-db6\”
Accept-Ranges: bytes

第五节 案例(Apache)

案例一:设置单实例Apache HTTP服务器

[root@localhost ~]# echo this is apache http > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# curl 192.168.84.160
this is apache http

案例二:配置基于不同端口的虚拟主机

cd /etc/httpd/conf.d/
[root@localhost conf.d]# mkdir -pv /www/{8080,9090}
mkdir: 已创建目录 \’/www\’
mkdir: 已创建目录 \’/www/8080\’
mkdir: 已创建目录 \’/www/9090\’
[root@localhost conf.d]# echo 8080 > /www/8080/index.html
[root@localhost conf.d]# echo 9090 > /www/9090/index.html
[root@localhost conf.d]#vim /etc/httpd/conf.d/port.conf
listen 8080
listen 9090
<directory /www>
allowoverride none
require all granted
</directory>
<virtualhost 192.168.84.160:8080>
servername 192.168.84.160
documentroot /www/8080
</virtualhost>
<virtualhost 192.168.84.160:9090>
servername 192.168.84.160
documentroot /www/9090
</virtualhost>
[root@localhost conf.d]# setenface 0
[root@localhost conf.d]# systemctl restart httpd
[root@localhost conf.d]# curl 192.168.84.160:8080
8080
[root@localhost conf.d]# curl 192.168.84.160:9090
9090

案例三:配置基于Apache的虚拟主机

基于多IP地址访问
[root@localhost conf.d]# cat way1.conf
<virtualhost 192.168.84.110:80>
documentroot /www/way1/a.com
servername a.com
</virtualhost>
<virtualhost 192.168.84.120:80>
documentroot /www/way1/b.com
servername b.com
</virtualhost>
root@localhost conf.d]# mkdir -p /www/way1/{a.com,b.com}
[root@localhost conf.d]# echo a.com > /www/way1/a.com/index.html
[root@localhost conf.d]# echo b.com > /www/way1/b.com/index.html
[root@localhost conf.d]# systemctl restart httpd
[root@localhost conf.d]# curl 192.168.84.110
a.com
[root@localhost conf.d]# curl 192.168.84.120
b.com

基于域名访问
root@localhost conf.d]# mkdir -p /www/way2/{abc.com,def.com}
[root@localhost conf.d]# echo abc.com > /www/way2/abc.com/index.html
[root@localhost conf.d]# echo def.com > /www/way2/def.com/index.html
[root@localhost conf.d]# cat way2.conf
<VirtualHost *:80>
ServerName a.com
DocumentRoot \”/www/a.com/\”
</VirtualHost>
<VirtualHost *:80>
ServerName b.com
DocumentRoot \”/www/b.com/\”
</VirtualHost>
修改物理主机hosts文件(C:\\Windows\\System32\\drivers\\etc),这里是因为物理机去访问Apache服务器
在hosts文件里面添加
192.168.81.136 a.com
192.168.81.136 b.com

案例四、在 Apache HTTP 服务器中添加 TLS 加 密

1. 安装必要的模块
首先,需要确保您的服务器已经安装了 `mod_ssl` 模块。如果未安装,可以使用您服务器的包管理工具进行安装。
dnf install mod_ssl
2. 生成证书和密钥
可以通过以下两种常见方式获取证书和密钥:
– 自签名证书:这适用于测试和开发环境。可以使用 `openssl` 命令来生成:
openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
– 从受信任的证书颁发机构(CA)获取:您需要向 CA 提交证书请求并完成相关验证流程,CA 将会颁发有效的证书。
3. 配置 Apache
打开 Apache 的配置文件 `httpd.conf` 或 `ssl.conf`(具体取决于您的系统配置),并进行以下关键配置:
– 启用 `mod_ssl` 模块:确保有类似 `LoadModule ssl_module modules/mod_ssl.so` 的行未被注释。
– 设置证书和密钥路径:
SSLCertificateFile /path/to/server.crt
SSLCertificateKeyFile /path/to/server.key
4. 配置虚拟主机(如果需要)
如果您为多个域名或子域名配置 SSL,需要在虚拟主机的配置中进行相应设置。
5. 重启 Apache 服务器
完成配置后,重启 Apache 服务器以使更改生效。
例如,如果您使用 `systemctl` 来管理服务,可以使用以下命令:
sudo systemctl restart apache2

1. 安装 `mod_ssl` 模块:
sudo dnf install mod_ssl
2. 生成自签名证书和密钥(在合适的目录下,例如 `/etc/httpd/ssl/` ):
sudo mkdir -p /etc/httpd/ssl
openssl req -new -newkey rsa:2048 -nodes -keyout /etc/httpd/ssl/server.key -out /etc/httpd/ssl/server.csr
openssl x509 -req -days 365 -in /etc/httpd/ssl/server.csr -signkey /etc/httpd/ssl/server.key -out /etc/httpd/ssl/server.crt
3. 打开 Apache 的配置文件 `/etc/httpd/conf/httpd.conf` :
sudo vim /etc/httpd/conf/httpd.conf
4. 在配置文件中进行以下配置:
– 启用 `mod_ssl` 模块:确保有类似 `LoadModule ssl_module modules/mod_ssl.so` 的行未被注释。
– 设置证书和密钥路径:
SSLCertificateFile /etc/httpd/ssl/server.crt
SSLCertificateKeyFile /etc/httpd/ssl/server.key
5. 如果需要配置虚拟主机,在 `/etc/httpd/conf.d/vhost.conf` 或类似的文件中进行设置(假设您要为 `example.com` 配置虚拟主机):
<VirtualHost *:443>
ServerName example.com
DocumentRoot \”/var/www/html/example\”
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/server.crt
SSLCertificateKeyFile /etc/httpd/ssl/server.key
</VirtualHost>
6. 重启 Apache 服务器:
sudo systemctl restart httpd

#以上关于Linux上web服务器搭建(Apache、Nginx)的相关内容来源网络仅供参考,相关信息请以官方公告为准!

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93238.html

Like (0)
CSDN的头像CSDN
Previous 2024年7月5日
Next 2024年7月5日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注