☰
阿里云 SLB + Nginx + Tomcat 部署以及部署 Discuz---企业场景实战
2026/10/24 2:18:55 网站建设 项目流程

一、阿里云 SLB + Nginx + Tomcat 部署

1、项目需求

某企业需要部署 Web 网站,为保证网站能够正常访问,要求使用阿里云 SLB 负载均衡,实现流量分发和故障切换。

2、架构规划

| 服务器 | 数量 | 作用 |

| ------- | --- | --------- |

| 阿里云 SLB | 1 | 公网入口、负载均衡 |

| Nginx | 2 台 | 反向代理 |

| Tomcat | 2 台 | 部署 Web 应用 |

3、验收标准

- 网站能够通过 SLB 公网地址访问。

- 两台 Nginx 均能正常接收请求。

- 两台 Tomcat 均能正常提供页面。

- 单台后端故障时,网站仍能通过健康节点提供服务。

- 能够查看日志并排查常见故障。

4、实施任务

1. 创建 2台 ECS,部署两台 Nginx、Tomcat。
①新用户免费试用

②两台直接都下载nginx和tomcat

③配置第一台172.20.168.69

<!DOCTYPE html>

<html lang="zh-CN">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>我的测试网站</title>

<style>

* { box-sizing: border-box; }

body {

margin: 0;

font-family: Arial, "Microsoft YaHei", sans-serif;

background: #f3f6fb;

color: #263247;

min-height: 100vh;

display: flex;

align-items: center;

justify-content: center;

}

.card {

width: min(90%, 520px);

padding: 36px;

background: white;

border-radius: 16px;

box-shadow: 0 10px 30px rgba(30, 60, 100, .12);

text-align: center;

}

h1 { color: #1769aa; margin-top: 0; }

p { line-height: 1.8; color: #5b6678; }

.server {

margin: 22px 0;

padding: 12px;

background: #eef6ff;

border-radius: 8px;

color: #1769aa;

}

button {

border: 0;

border-radius: 8px;

padding: 11px 22px;

color: white;

background: #1769aa;

font-size: 15px;

cursor: pointer;

}

button:hover { background: #0f5288; }

#message { min-height: 24px; margin-bottom: 0; }

</style>

</head>

<body>

<main class="card">

<h1>欢迎访问我的网站!</h1>

<p>这是一个简单的 HTML 测试页面。</p>

<div class="server">服务状态:运行正常</div>

<button onclick="showMessage()">点击测试</button>

<p id="message"></p>

</main>

<script>

function showMessage() {

document.getElementById("message").textContent = "页面访问成功!";

}

</script>

</body>

</html>

④配置第二台172.17.174.148

2. 创建 SLB,配置公网监听 80 端口。

或者

3. 将两台 Nginx 添加到 SLB 后端服务器组。

4. 配置 Nginx 反向代理,将请求转发到两台 Tomcat。
①配置第一台172.20.168.69

②配置第二台172.17.174.148

5. 两台 Tomcat 部署不同标识的测试页面。
①配置第一台172.20.168.69

②配置第二台172.17.174.148

6. 通过 SLB 公网地址访问网站,验证流量分发。

7. 停止一台 Nginx 或 Tomcat,测试故障切换。
①停止一台nginx(172.17.174.148)

②停止一台tomcat(172.17.174.148)

二、部署 Discuz!社区论坛 Web 应用

1、 根据文档进行部署

文档内容:

【安装 Nginx 服务】

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

1、安装依赖包

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

2、创建运行用户

useradd -M -s /sbin/nologin nginx

3、编译安装

cd /opt

tar zxvf nginx-1.12.0.tar.gz -C /opt/''.6hvcf

cd nginx-1.12.0/

./configure \

--prefix=/usr/local/nginx \

--user=nginx \

--group=nginx \

--with-http_stub_status_module

make && make install

4、优化路径

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin

5、添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

chmod 754 /lib/systemd/system/nginx.service

systemctl start nginx.service

systemctl enable nginx.service

【安装 MySQL 服务】

一、编译安装

==================================================================================================

1、安装Mysql环境依赖包

yum -y install \

ncurses \

ncurses-devel \

bison \

cmake

2、创建运行用户

useradd -M -s /sbin/nologin mysql

3、编译安装

cd /opt

tar zxvf mysql-boost-5.7.20.tar.gz

cd /opt/mysql-5.7.20/

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

-DSYSCONFDIR=/etc \

-DSYSTEMD_PID_DIR=/usr/local/mysql \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DWITH_BOOST=boost \

-DWITH_SYSTEMD=1

make && make install

4、修改mysql 配置文件

vim /etc/my.cnf

[client]

port = 3306

socket=/usr/local/mysql/mysql.sock

[mysqld]

user = mysql

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

port = 3306

character-set-server=utf8

pid-file = /usr/local/mysql/mysqld.pid

socket=/usr/local/mysql/mysql.sock

bind-address = 0.0.0.0

skip-name-resolve

max_connections=2048

default-storage-engine=INNODB

max_allowed_packet=16M

server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

5、更改mysql安装目录和配置文件的属主属组

chown -R mysql:mysql /usr/local/mysql/

chown mysql:mysql /etc/my.cnf

6、设置路径环境变量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile

source /etc/profile

7、初始化数据库

cd /usr/local/mysql/bin/

./mysqld \

--initialize-insecure \

--user=mysql \

--basedir=/usr/local/mysql \

--datadir=/usr/local/mysql/data

8、添加mysqld系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

systemctl daemon-reload

systemctl start mysqld.service

systemctl enable mysqld

9、修改mysql 的登录密码

mysqladmin -u root -p password "abc123"

10、授权远程登录

mysql -u root -p

=========================================================================

二、yum安装

1、添加 MySQL 官方 Yum 源

1.1 下载 MySQL 5.7 的 Yum 源安装包

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

1.2 安装这个源,将其添加到系统的仓库列表中

sudo rpm -ivh mysql57-community-release-el7-8.noarch.rpm

#执行完这一步后,你会在 `/etc/yum.repos.d/` 目录下看到 `mysql-community.repo` 文件,它就是我们的仓库配置文件。

2. 检查并确认 MySQL 5.7 源已启用

yum repolist enabled | grep mysql

#如果列表里出现了 `mysql57-community`,就说明源配置正确。

如果不放心,也可以手动编辑配置文件确认:

vim /etc/yum.repos.d/mysql-community.repo

#在文件中找到 `[mysql57-community]` 这一节,确保 `enabled=1`。如果系统预装了其他版本的 MySQL(比如 MariaDB),建议先在文件中将其对应的源禁用(`enabled=0`),以避免冲突。

[mysql57-community]

name=MySQL 5.7 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/

enabled=1

gpgcheck=0 #这个要设置不验证

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

3.安装 MySQL 5.7.20 服务器

sudo yum install mysql-community-server #安装过程中,系统会提示你确认下载,输入 `y` 并回车即可。

4. 启动 MySQL 并设置开机自启

# 启动 MySQL 服务

sudo systemctl start mysqld

# 设置 MySQL 服务开机自启动

sudo systemctl enable mysqld

5. 获取初始密码并登录

#对于 MySQL 5.7,安装后的第一次启动会为 `root` 用户生成一个临时密码,我们需要在日志文件中找到它。

sudo grep 'temporary password' /var/log/mysqld.log

#命令执行后会返回类似下面的信息,其中 `MkarQyrS6v/U` 就是临时密码。

A temporary password is generated for root@localhost: MkarQyrS6v/U

接下来,使用这个临时密码登录 MySQL:

mysql -u root -p #系统提示输入密码时,粘贴刚才查到的临时密码即可。

6. 修改 Root 密码

出于安全策略,首次登录后 MySQL 会强制要求你修改 root 密码。在 MySQL 命令行中执行:

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

ALTER USER 'root'@'localhost' IDENTIFIED BY '1qaz@WSX' PASSWORD EXPIRE NEVER;

#MySQL 5.7 有默认的密码强度要求(需包含大小写字母、数字和特殊字符),如果不想设置复杂密码,可以先调整密码验证策略,再执行修改命令。

-------------------------

#查看当前的密码策略(可选)

SHOW VARIABLES LIKE 'validate_password%';

-- 关闭对大小写字母的要求

SET GLOBAL validate_password_mixed_case_count = 0;

-- 关闭对数字的要求

SET GLOBAL validate_password_number_count = 0;

-- 关闭对特殊字符的要求

SET GLOBAL validate_password_special_char_count = 0;

-------------------------------------------------

#如果你只关心密码长度,不关心复杂度,可以执行:

SET GLOBAL validate_password_policy = 'LOW';

#密码仍然必须满足最小长度要求(默认是 8 位),如果你想设置更短的密码 如下

SET GLOBAL validate_password_length = 6;

========================================================================

【安装配置 PHP 解析环境】

1、安装环境依赖包

yum -y install gd \

libjpeg libjpeg-devel \

libpng libpng-devel \

freetype freetype-devel \

libxml2 libxml2-devel \

zlib zlib-devel \

curl curl-devel \

openssl openssl-devel

2、编译安装

cd /opt

tar jxvf php-7.1.10.tar.bz2

cd php-7.1.10

./configure \

--prefix=/usr/local/php \

--with-mysql-sock=/usr/local/mysql/mysql.sock \

--with-mysqli \

--with-zlib \

--with-curl \

--with-gd \

--with-jpeg-dir \

--with-png-dir \

--with-freetype-dir \

--with-openssl \

--enable-fpm \

--enable-mbstring \

--enable-xml \

--enable-session \

--enable-ftp \

--enable-pdo \

--enable-tokenizer \

--enable-zip

make && make install

3、路径优化

ln -s /usr/local/php/bin/* /usr/local/bin/

ln -s /usr/local/php/sbin/* /usr/local/sbin/

4、调整PHP配置文件

php有三个配置文件:

php.ini 主配置文件

php-fpm.conf 进程服务配置文件

www.conf 扩展配置文件

#调整主配置文件:

cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini

vim /usr/local/php/lib/php.ini

--1170行--修改

mysqli.default_socket = /usr/local/mysql/mysql.sock

--939行--取消注释,修改

date.timezone = Asia/Shanghai

php -m #验证安装的模块

#调整进程服务配置文件:

cd /usr/local/php/etc/

cp php-fpm.conf.default php-fpm.conf

vim php-fpm.conf

--17行--去掉";"注释

pid = run/php-fpm.pid

#调整扩展配置文件:

cd /usr/local/php/etc/php-fpm.d/

cp www.conf.default www.conf

5、启动php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini

netstat -anpt | grep 9000

#PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。

cd /opt/php-7.1.10/sapi/fpm

cp php-fpm.service /usr/lib/systemd/system/php-fpm.service

systemctl restart php-fpm.service

6、配置 Nginx 支持 PHP 解析

vim /usr/local/nginx/conf/nginx.conf

--65行--取消注释,修改

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; #将 /scripts 修改为nginx的工作目录

#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #$document_root 代表当前请求在root指令中指定的值

include fastcgi_params;

}

systemctl restart nginx.service

7、验证PHP 测试页

vim /usr/local/nginx/html/index.php

<?php

phpinfo();

?>

浏览器访问

http://192.168.80.10/index.php

8、验证数据库工作是否正常

mysql -u root -p

CREATE DATABASE bbs;

GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';

GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';

flush privileges;

vim /usr/local/nginx/html/index.php #替换原来的测试页内容

<?php

$link=mysqli_connect('192.168.80.10','bbsuser','admin123');

if($link) echo "<h1>Success!!</h1>";

else echo "Fail!!";

?>

浏览器访问

http://192.168.80.10/index.php

【部署 Discuz!社区论坛 Web 应用】

cd /opt

unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis

cd /opt/dis/dir_SC_UTF8/

cp -r upload/ /usr/local/nginx/html/bbs/

调整论坛目录的权限:

cd /usr/local/nginx/html/bbs/

chown -R nginx ./config/

chown -R nginx ./data/

chown -R nginx ./uc_client/

chown -R nginx ./uc_server/

或

chmod -R 777 ./config/

chmod -R 777 ./data/

chmod -R 777 ./uc_client/

chmod -R 777 ./uc_server/

论坛页面访问

http://192.168.80.10/bbs/install/index.php

----------------------------------------------------------------------------------------------------------

数据库服务器:localhost ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号

数据库名字:bbs

数据库用户名:bbsuser

数据库密码:admin123

管理员账号:admin

管理员密码:admin123

----------------------------------------------------------------------------------------------------------

访问论坛页面:

http://192.168.80.10/bbs/index.php

http://192.168.80.10/bbs/admin.php

----------------fpm参数优化-------------------

vim /usr/local/php/etc/php-fpm.conf

pid = run/php-fpm.pid

vim /usr/local/php/etc/php-fpm.d/www.conf

--96行--

pm = dynamic #fpm进程启动方式,动态的

--107行--

pm.max_children=20 #fpm进程启动的最大进程数

--112行--

pm.start_servers = 5 #动态方式下启动时默认开启的进程数,在最小和最大之间

--117行--

pm.min_spare_servers = 2 #动态方式下最小空闲进程数

--122行--

pm.max_spare_servers = 8 #动态方式下最大空闲进程数

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` #重启php-fpm

netstat -anpt | grep 9000

ps -elf | grep php-fpm

截图:

nginx已提前安装部署好,以下从MYSQL开始

【安装 MySQL 服务】
1.安装Mysql环境依赖包

2.创建运行用户

3.编译安装

4.修改mysql 配置文件

5.更改mysql安装目录和配置文件的属主属组

6.设置路径环境变量

7.初始化数据库

8.添加mysqld系统服务

9.修改mysql 的登录密码

10.授权远程登录

【安装配置 PHP 解析环境】
1.安装环境依赖包

2.编译安装

3.路径优化

4.调整PHP配置文件

调整主配置文件

调整进程服务配置文件

调整扩展配置文件

5.启动php-fpm

6.配置 Nginx 支持 PHP 解析

7.验证PHP 测试页

8.验证数据库工作是否正常

9.浏览器访问

【部署 Discuz!社区论坛 Web 应用】
编译安装

调整论坛目录的权限

2、提交方式登录论坛 并且创建自己账号

(比如root)发一条论坛

3、截图 自己账号发一条论坛内容

(例如:老师下次多布置点作业,我们太闲了)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询