轻松搭建AWS Linux 2023上的WordPress:详尽安装指南(二)

本文旨在指导读者在AWS Linux 2023环境下安装WordPress,包括Nginx的安装、配置、PHP的设置以及WordPress的安装过程。

3.4.2 服务器块的配置

要添加额外的服务器块(在Apache中对应虚拟主机),可以通过在/etc/nginx/conf.d目录下新建一个以.conf结尾的配置文件。在启动Nginx时,会加载此目录中的所有配置文件。

3.4.3 Nginx的全局配置

Nginx的主要配置文件位于/etc/nginx/nginx.conf。您可以在此文件中修改一些设置,例如运行Nginx的用户以及工作进程的数量等。

注意事项#1:在修改配置文件之前,务必备份原有配置文件,例如:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

未进行备份而导致的配置损坏或无法正常工作所引发的后果,请自行承担

注意事项#2:在修改Nginx配置文件后,务必先进行验证再启用,切勿直接加载配置文件,验证命令如下(假设nginx命令在/usr/sbin/nginx):

sudo /usr/sbin/nginx -t -c /etc/nginx/nginx.conf

当验证结果显示没有错误后,才能进行后续操作,生产环境操作需谨慎,切勿掉以轻心。

配置信息如下:

worker_processes 2;
error_log /var/log/nginx/error.log info;
pid /run/nginx.pid;
worker_rlimit_nofile 65535;

参数

参数说明

worker_processes 2;

工作进程数量:依据操作系统的CPU数量进行设置

error_log /data/nginx/logs/error.log info;

错误日志记录

pid /etc/nginx/logs/nginx.pid;

进程ID文件的路径

worker_rlimit_nofile 65535;

限制可打开的文件数量

ulimit -Hn

ulimit -Sn

编辑/etc/security/limits.conf文件,添加以下内容:

* soft noproc 65535

* hard noproc 65535

* soft nofile 65535

* hard nofile 65535

3.4.4 Nginx事件配置

参考的配置信息如下:

events {
use epoll;
worker_connections 8192;
}

参数

参数说明

use epoll;

采用epoll I/O模型

worker_connections 8192;

单个工作进程允许的最大连接数,总的并发连接数是worker_processes和worker_connections的乘积

3.4.5 Nginx日志配置

日志文件的位置可以通过配置来设置,默认日志目录在nginx/logs下。

日志轮转配置如下:

vi /etc/logrotate.d/nginx

文件内容示例如下:

/usr/local/nginx/logs/*.log {
# 日志轮转周期,选项包括:daily/weekly/yearly
daily
# 新创建日志文件的权限
create 0664 work work
# 轮转次数,最多保留7个归档日志,最旧的将被删除,生产环境建议设为90天
rotate 14
# 使用当前日期作为文件名的一部分
dateext
# 轮转结束后,归档日志使用gzip压缩
compress
# 与compress结合使用,最近一次归档不进行压缩
delaycompress
# 忽略缺失文件的错误
missingok
# 如果日志文件为空,则不执行轮转
notifempty
# 当日志文件超过指定大小时,才进行轮转,单位可以是bytes(默认)/k/M/G
size = 100M
# 轮转后执行的命令,以endscript结尾,命令需单独成行
postrotate
# 重启nginx日志服务,写入新的文件,否则会继续写入重命名后的文件中
/bin/kill -USR1 `cat /usr/local/nginx/logs/nginx.pid 2> /dev/null` 2> /dev/null || true
# 默认logrotate会以root身份运行,如果需要以其他身份执行命令,可以使用如下方式:
#su - work -c '/home/work/odp/webserver/loadnginx.sh restart'
endscript
}

接下来,检查logrotate文件的配置是否正确:

logrotate -d -f /etc/logrotate.d/nginx

若输出结果如下,则表示配置正确:

手动执行命令:

logrotate -f /etc/logrotate.d/nginx

3.4.6 Nginx 安全配置

为了保障Nginx服务器的安全性,必须采取以下配置措施:

(1)、禁用server标识

若server_tokens被启用,Nginx的版本信息将被公开。为验证其状态,可执行以下命令:

curl -I http://<NGINX_URL>

以下是未启用的示例:

启用状态

结果检查:

(2)、自定义缓存设置

通过设置自定义缓存,可以有效限制缓冲区溢出攻击。以下是nginx.conf的相关配置:

http{
... ...
server{
	... ...
	client_body_buffer_size 1K;
	client_header_buffer_size 1k;
	client_max_body_size 10m;
	large_client_header_buffers 2 1k;
  ... ...
}

(3)、设置超时时间

将timeout时间设置得较低可以有效抵御DOS攻击,nginx.conf的配置如下:

http {
	... ...
	client_body_timeout 10;
	client_header_timeout 30;
	keepalive_timeout 30 30;
	send_timeout 10;
  ... ...
}

验证结果:

(4)、限制访问方法

在当今的应用系统中,通常使用POST、GET和PUT方法,其余请求方式应被拒绝。以下是nginx.conf的配置示例:

server{
... ...
if($request_method !~ ^(GET|HEAD|PUT|POST)$) {
return 404;
}
... ...

(5)、配置SSL证书及加密套件

Nginx的默认设置允许使用不安全的旧版TLS协议(根据官方文档:ssl_protocol TLSv1 TLSv1.1 TLSv1.2)。这可能导致诸如野兽攻击的安全隐患。因此,务必禁用旧版TLS协议,确保配置仅支持更新的安全TLS版本。

server{
... ...
 
ssl_certificate /etc/nginx/cert/ssl.pem;
 
ssl_certificate_key /etc/nginx/cert/ssl.key;
 
ssl_session_cache shared:SSL:1m;
 
ssl_session_timeout 5m;
 
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:!NULL:!aNULL:!MD5:!ADH:!RC4';
  
ssl_protocols TLSv1.2 TLSv1.3;
 
ssl_prefer_server_ciphers on;
 
... ...

(6)、配置HTTP头部信息

为了进一步提升nginx web服务器的安全性,可以添加多个不同的HTTP头部。以下是一些推荐的选项。

X-Frame-Options

X-Frame-Options HTTP响应头的使用能有效指示浏览器是否允许在<Frame>或<iframe>中展示特定页面,这一措施旨在抵御点击劫持的风险。

为实现该目的,请在nginx的服务器配置文件中加入以下内容:

add_header X-Frame-Options "SAMEORIGIN";

CSP与X-XSS-Protection

内容安全策略(CSP)旨在保护您的网页服务器免受某些攻击,尤其是跨站脚本(XSS)和数据注入等类型的威胁。

通过增加内容安全策略头,可以实现这一保护措施:

add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;

对于IE和Safari浏览器而言,它们支持HTTP X-XSS-Protection头。为了防止在旧版本浏览器(尚不支持CSP)的情况下发生XSS攻击,您应在服务器配置部分添加X-XSS保护头:

add_header X-XSS-Protection "1; mode=block";

3.4.7 Nginx用户配置

在AWS Linux环境下,您需要将nginx用户添加到Ec2-User组中:

sudo usermod -a -G apache ec2-user

执行该命令后,您将看到以下结果:

3.4.8 PHP组件配置

为了安装Nginx所需的PHP组件,您可以执行以下命令:

sudo dnf install php-opcache php-gd php-xml php-mbstring
安装WordPress

3.1 项目目标

本项目采用WordPress进行应用开发,为了部署前端代码,必须先安装WordPress。

在完成操作系统的升级后,方可进行这一步骤。

3.2 下载并解压WordPress

在AWS Linux上,首先需获取WordPress的最新版本:

wget https://wordpress.org/latest.tar.gz

接着,将其解压缩到本地:

tar -xzf latest.tar.gz

执行完毕后,您将看到以下结果:

接下来,您需要配置WordPress数据库。

请参阅《AWSLinux86- MariaDB数据库安装指南》以完成MariaDB的安装及初始化设置。

3.3 WordPress的初始化

WordPress安装目录中包含一个名为wp-config-sample.php的示例配置文件。在这一过程中,您需要将该文件复制并进行相应的编辑,以满足具体的配置需求。

将wp-config-sample.php复制并重命名为wp-config.php,以创建新的配置文件,并保留原始文件作为备份。

cp wordpress/wp-config-sample.php wordpress/wp-config.php

接着,使用常用的文本编辑器(如nano或vim)打开wp-config.php文件,并填入所需的安装参数。

vi wordpress/wp-config.php

随后,替换数据库名及相应的用户名和密码:

找到“身份验证唯一密钥和盐”部分,这些密钥和盐值为WordPress在用户浏览器中存储的Cookie提供了加密保护。简而言之,添加长随机值将显著增强网站的安全性。

访问
https://api.wordpress.org/secret-key/1.1/salt/ 以生成一组随机密钥,然后将其复制并粘贴到wp-config.php文件中。

将这些值输入wp-config.php后,保存并关闭该文件。

3.4 将WordPress文件复制到Nginx目录

在前面的步骤中,您已成功解压安装文件夹,创建了MySQL数据库和用户,并完成了WordPress的配置,现在可以将安装文件复制到Web服务器的文档根目录,以便运行安装脚本并完成安装。

WordPress安装目录的内容(切勿复制目录本身),如下所示:WordPress安装文件夹中包含一个名为wp-config-sample.php的示例配置文件,您需要将其复制并进行编辑以适应具体的需求。

将wp-config-sample.php复制并命名为wp-config.php,以创建一个新的配置文件,同时保留原始文件作为备份。

cp wordpress/wp-config-sample.php wordpress/wp-config.php

最后,访问http://<your-ip>:80,即可进入WordPress的初步配置页面

#安装指南##Linux##AWS##wordpress网站建设#

本文标题:轻松搭建AWS Linux 2023上的WordPress:详尽安装指南(二)
网址:https://www.2090ai.com/2025/09/10/tutorial/61217.html



本站所有文章由wordpress极光ai post插件通过chatgpt写作修改后发布,并不代表本站的观点;如果无意间侵犯了你的权益,请联系我们进行删除处理。
如需转载,请务必注明文章来源和链接,谢谢您的支持与鼓励!