Nginx 全场景实战:从基础部署到高级代理功能实现
总目录
-
Nginx配置结构与流量访问逻辑过程
-
Nginx二进制安装与多OS软件包安装实操
-
Nginx HTTPS配置、防盗链、重定向实操
-
Nginx虚拟主机配置(IP/多端口/多域名)
-
Nginx反向代理与动静分离实操
-
Nginx四层代理实操(代理MySQL、Redis)
1. Nginx配置结构与流量访问逻辑过程
1.1 Nginx核心配置文件结构
Nginx主配置文件 nginx.conf 采用分块层级配置,整体分为四大核心模块,层级自上而下生效,分别为全局块、events块、http块、server块、location块,是Nginx运行和处理请求的核心依据。
|
配置模块 |
层级位置 |
核心作用详解 |
|---|---|---|
|
全局块 |
配置文件最顶部 |
作用于Nginx全局进程,主要配置用户、工作进程数、PID文件路径、错误日志路径等全局基础参数,控制Nginx整体运行权限和进程状态。 |
|
events块 |
全局块下方 |
专门配置Nginx网络连接相关参数,包含最大连接数、事件驱动模型、是否开启多进程连接复用等,决定Nginx并发处理能力。 |
|
http块 |
events块下方,核心大模块 |
承载所有HTTP网站服务配置,可包含日志格式、请求超时时间、文件上传大小、gzip压缩、虚拟主机引入等全局HTTP通用配置。 |
|
server块 |
http块内部,可配置多个 |
对应单个虚拟主机,通过监听端口、绑定域名/IP区分不同网站服务,每个server块独立配置一套网站运行规则。 |
|
location块 |
server块内部,可配置多个 |
匹配客户端具体URL请求路径,实现请求拦截、重定向、代理、动静分离、权限控制等精细化请求处理规则。 |
nginx.conf完整配置文件结构截图(标注各模块分区)
bash
grep -Env "#|^$" /etc/nginx/nginx.conf

nginx站点文件配置结构
bash
grep -Env "#|^$" /etc/nginx/sites-enabled/default

1.2 Nginx流量访问逻辑全过程
客户端访问Nginx网站,遵循 客户端→TCP连接→Nginx匹配规则→资源响应 的完整流程,逐级匹配、逐级生效,逻辑闭环无遗漏。
-
建立TCP连接:客户端通过浏览器发起HTTP/HTTPS请求,与Nginx服务器80/443端口建立TCP三次握手,完成网络连接。
-
读取请求报文:Nginx接收客户端请求,解析请求头、请求方式、访问域名、URL路径等信息。
-
匹配Server虚拟主机:Nginx根据请求的IP、域名、端口,从上到下匹配对应的server块,命中唯一虚拟主机。
-
匹配Location路由:在命中的server块内,根据URL路径优先级匹配location规则(精准匹配>前缀匹配>通用匹配)。
-
执行模块规则:根据location配置,执行对应的资源读取、重定向、反向代理、防盗链、压缩等操作。
-
返回响应数据:Nginx封装响应报文(状态码、响应头、资源数据),返回给客户端。
-
断开连接:根据Keep-Alive配置,判断是否复用连接,否则四次挥手断开TCP连接。
2. Nginx二进制安装与多OS软件包安装实操
2.1 安装方式区别概述
Nginx主流安装分为 软件包安装(yum/apt) 和 二进制源码编译安装,适配不同系统环境和生产需求,各有优劣。
|
安装方式 |
适配系统 |
特点说明 |
|---|---|---|
|
Yum软件包安装 |
Rocky/CentOS |
一键安装、简单快捷、默认配置完善,适合快速部署测试环境,无法自定义模块和编译参数。 |
|
Apt软件包安装 |
Ubuntu/Debian |
系统原生源安装,操作简单,自动适配系统依赖,适合Ubuntu系列快速部署。 |
|
二进制源码编译安装 |
全Linux系统通用 |
可自定义安装路径、新增模块(HTTPS、防盗链、四层代理)、优化性能参数,生产环境首选。 |
2.2 多OS软件包安装实操
|
操作系统 |
完整安装命令流程 |
验证方式 |
|---|---|---|
|
Rocky/CentOS |
1. yum install epel-release -y2. yum install nginx -y3. systemctl start nginx4. systemctl enable nginx |
nginx -v、systemctl status nginx、浏览器访问IP |
|
Ubuntu/Debian |
1. sudo apt update2. sudo apt install nginx -y3. sudo systemctl start nginx4. sudo systemctl enable nginx |
nginx -v、sudo systemctl status nginx、浏览器访问IP |
Rocky yum安装Nginx全过程截图
bash
dnf install nginx -y #安装nginx
systemctl enable --now nginx #启动并添加开机自启动
ps aux | grep nginx #根据进程检查服务状态
systemctl status nginx #全面的检查服务状态


浏览器验证

Ubuntu apt安装Nginx全过程截图
bash
apt install nginx -y #安装nginx
systemctl enable --now nginx #启动并添加开机自启动
systemctl status nginx #全面的检查服务状态

2.3 Nginx二进制源码编译安装实操(通用)
|
步骤 |
操作命令 |
步骤说明 |
|---|---|---|
|
1. 安装依赖 |
yum/apt install gcc pcre-devel zlib-devel openssl-devel -y |
安装编译、正则、压缩、HTTPS所需依赖包 |
|
2. 下载源码包 |
wget http://nginx.org/download/nginx-1.24.0.tar.gz |
下载稳定版Nginx源码,版本可自定义替换 |
|
3. 解压编译 |
tar -zxvf nginx-1.24.0.tar.gz && cd nginx-1.24.0 |
解压源码包,进入编译目录 |
|
4. 自定义编译参数 |
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream |
指定安装路径,开启HTTPS模块、四层stream代理模块 |
|
5. 编译安装 |
make && make install |
编译源码并安装到指定目录 |
|
6. 启动验证 |
/usr/local/nginx/sbin/nginx && nginx -v |
启动Nginx,验证安装成功 |
Nginx源码编译安装全过程截图(用ubantu 演示)
2.3.1 编译环境准备(安装依赖)
bash
apt install build-essential gcc g++ libc6 libc6-dev libpcre3 libpcre3-dev libssl-
dev libsystemd-dev zlib1g-dev
apt install libxml2 libxml2-dev libxslt1-dev php-gd libgd-dev geoipupdate libmaxminddb-dev -y
2.3.2 Ubuntu系统编译安装
创建并切换目录

http源码安装
bash
wget http://nginx.org/download/nginx-1.30.2.tar.gz

2.3.3 安装软件
2.3.3.1 定制配置
解压并切换目录
![]()
cd nginx-1.30.2 #解压完后切换到该目录
编译前配置
bash
./configure \
--prefix=/data/server/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
![]()
#结尾处看到这样说明配置成功
2.3.3.2 编译安装
bash
make && make install

# /data/下存在一个server目录说明定制配置编译成功
2.3.3.3 确认效果

2.3.3.4 创建nginx用户修改目录属主属组并查看
bash
useradd -r -s /sbin/nologin nginx #创建用户
chown -R nginx:nginx /data/server/nginx/ #修改主属
/data/server/nginx/sbin/nginx -t #测试nginx配置

2.3.4 启动软件
bash
/data/server/nginx/sbin/nginx #启动软件
ss -tupln | grep nginx #端口测试
curl 10.0.0.16:80 #命令行网页测试

2.3.5 定制服务管理文件(之后就可以用systemctl控制nginx服务)
2.3.5.1 定制专属管理
bash
mkdir /data/server/nginx/run #创建PID 目录
vim /usr/lib/systemd/system/nginx.service #修改配置文件,设置pid文件路径

bash
systemctl daemon-reload #重载系统配置
systemctl enable --now nginx #启动并添加自启动
systemctl is-active nginx #只检查运行状态
2.3.5.2 重载配置

3. Nginx HTTPS配置、防盗链、重定向实操
3.1 HTTPS加密配置实操
基于openssl生成自签名证书,配置Nginx 443端口HTTPS加密访问,实现HTTP自动跳转HTTPS。
|
步骤 |
核心配置/命令 |
说明 |
|---|---|---|
|
1. 生成SSL证书 |
openssl genrsa -out nginx.key 2048openssl req -new -key nginx.key -out nginx.csropenssl x509 -req -days 3650 -in nginx.csr -signkey nginx.key -out nginx.crt |
生成有效期10年的自签名密钥和证书文件 |
|
2. 配置HTTPS服务 |
listen 443 ssl;ssl_certificate /证书路径/nginx.crt;ssl_certificate_key /证书路径/nginx.key; |
开启443端口SSL加密,加载证书和密钥 |
|
3. HTTP跳转HTTPS |
return 301 https://$host$request_uri; |
访问80端口自动永久重定向至HTTPS |
3.1.1 秘钥环境准备
bash
apt install easy-rsa -y #安装密钥工具
cd /usr/share/easy-rsa/ #切换到该目录
./easyrsa init-pki #创建密钥
tree pki/ #查看密钥目录树

3.1.2 实现自签证书
bash
./easyrsa build-ca nopass #生成CA机构证书,不使用密码

3.1.3 网站的签名请求
bash
./easyrsa gen-req www.wjj.com nopass #生成私钥和证书申请文件
./easyrsa sign-req server www.wjj.com #签发证书


3.1.4 合并证书
bash
cat pki/issued/www.wjj.com.crt pki/ca.crt > pki/www.wjj.com.pem #合并服务器证书,签发机构证书为一个文件
chmod +r pki/private/www.wjj.com.key #给私钥加读权限
tree pki

3.1.5 定制nginx的ssl配置
bash
vim /etc/nginx/conf.d/vhost.conf
cat /etc/nginx/conf.d/vhost.conf

3.1.6 本地 curl 测试效果
bash
curl 10.0.0.16 -I #访问http则提示301跳转
curl https://10.0.0.1 -I #访问https提示证书不安全
curl https://10.0.0.16 6-k #使用不安全方式测试

3.2 Nginx防盗链配置实操
通过匹配请求头Referer字段,禁止第三方网站盗用本站图片、静态资源,保护服务器带宽资源。
|
配置项 |
核心配置代码 |
作用说明 |
|---|---|---|
|
防盗链规则 |
valid_referers none blocked localhost 127.0.0.1 *.test.com;if ($invalid_referer) { return 403; } |
仅允许本机和指定域名访问静态资源,非法盗链返回403禁止访问 |
3.2.1 盗链演示实践
3.2.1.1 定制访问页面

3.2.1.2 定制配置文件

systemctl restrat nginx
3.2.1.3 访问测试
我们这里设web1:81为资源所属者

web2:80也可以使用图片资源,说明盗链成功

3.2.2 利用 valid_referers 指令实现防盗链
3.2.2.1 定制配置文件

重启服务
systemctl restart nginx
3.2.2.2 浏览器演示
浏览器再次测试效果,单独访问 http://10.0.0.13:81/static/picture.png 是可以正常访问的

81:web1就是属主浏览器访问

80:web2盗链者资源浏览器访问

valid_referers 指令允许的82:web3浏览器访问

3.3 Nginx重定向配置实操
实现域名跳转、页面迁移、URL规范统一,分为临时重定向(302)和永久重定向(301)。
|
重定向类型 |
配置命令 |
场景说明 |
|---|---|---|
|
永久重定向301 |
return 301 https://www.xxx.com; |
域名永久迁移,浏览器缓存跳转地址,SEO友好 |
|
临时重定向302 |
return 302 https://www.xxx.com; |
临时页面调整,不缓存跳转,适合临时维护场景 |
3.3.1 服务器重定向实践
准备工作

定制配置文件

重启服务
bash
systemctl restart nginx
测试效果
bash
curl 10.0.0.13/1.html #访问1跳转到2,访问2跳转到3,访问3跳转到b
curl 10.0.0.13/2.html #访问2跳转到a
curl 10.0.0.13/3.html #访问3跳转到b
curl 10.0.0.13/c.html #无限循环,最终返回 500 服务器内部错误

3.3.2 break & last 重定向实践
定制配置文件
bash
vim /etc/nginx/conf.d/vhost.conf #编辑文件
配置
server {
listen 80 default_server;
root /data/server/nginx/web1;
location /1.html {
rewrite /1.html /a.html break;
rewrite /a.html /3.html;
}
location /2.html {
rewrite /2.html /a.html last;
rewrite /a.html /3.html;
}
location /a.html {
rewrite /a.html /b.html;
}
}

重启服务

测试结果

#break终止当前匹配,所以直接跳转到a.html,不在匹配其他location
#last终止当前location的匹配,不影响其他location的匹配,因此最终匹配到b.html
3.3.3 redirect & permanent 重定向
#redirect:临时重定向
#permanent :永久重定向
定制配置文件
配置
server {
listen 80 default_server;
root /data/server/nginx/web1;
location /1.html {
rewrite /1.html /c.html redirect;
}
location /a.html {
rewrite /a.html /b.html permanent;
}
}

重启服务

redirect 客户端重定向测试
bash
curl 10.0.0.13/1.html -I #-I参数是指仅拿响应头
curl 10.0.0.13/1.html -L #-L是指跟随重定向

permanent 客户端重定向测试
bash
curl 10.0.0.13/a.html -I #-I参数是指仅拿响应头
curl 10.0.0.13/a.html -L #-L是指跟随重定向

4. Nginx虚拟主机配置(IP/多端口/多域名)
Nginx虚拟主机可实现单服务器部署多个独立网站,三种核心模式:IP虚拟主机、多端口虚拟主机、多域名虚拟主机。
|
虚拟主机类型 |
核心配置方式 |
适用场景 |
|---|---|---|
|
多IP虚拟主机 |
服务器绑定多个网卡IP,每个server监听独立IP:80 |
不同业务需要独立IP访问,隔离性强 |
|
多端口虚拟主机 |
同一IP,不同server监听 80、81、82 等不同端口 |
测试环境、内部业务站点,无需域名 |
|
多域名虚拟主机 |
同一IP同一端口,通过server_name匹配不同域名 |
生产环境主流,多个域名共用一台服务器 |
4.1 多IP虚拟主机
4.1.1 基于IP地址实现多server
4.1.1.1 添加3个新的ip地址
bash
ip a a 10.0.0.131/24 dev ens33 #第一个a是指address地址,第二个指add添加
ip a a 10.0.0.134/24 dev ens33
ip a a 10.0.0.152/24 dev ens33
hostname -I #检查网卡新添加的Ip

4.1.1.2 定制配置文件
配置文件
server {
listen 10.0.0.131;
root /data/server/nginx/web1;
}
server {
listen 10.0.0.134;
root /data/server/nginx/web2;
}
server {
listen 10.0.0.152;
root /data/server/nginx/web3;
}

4.1.2 重启服务后检测效果
4.1.2.1 重启服务

4.1.2.2 检测效果

4.2 基于端口的站点实践
4.2.1 基于端口号实现多server
4.2.1.1 定制配置文件
配置文件
server {
listen 80 default_server; #不添加default_server会导致进入nginx欢迎页面
root /data/server/nginx/web1;
}
server {
listen 81;
root /data/server/nginx/web2;
}
server {
listen 82;
root /data/server/nginx/web3;
}

4.2.2 重启服务后检测效果
4.2.2.1 重启服务

4.2.2.2 检测效果

4.3 基于域名的站点实践
4.3.1 基于域名实现多server
4.3.1.1 定制配置文件
配置文件
server {
listen 80 default_server;
server_name www.a.com;
root /data/server/nginx/web1;
}
server {
listen 80;
server_name www.b.com;
root /data/server/nginx/web2;
}
server {
listen 80;
server_name www.c.com;
root /data/server/nginx/web3;
}

4.3.2 重启服务后检测效果
4.3.2.1 重启服务

4.3.2.2 检测效果
bash
curl -H "Host: www.a.com" 10.0.0.13
curl -H "Host: www.b.com" 10.0.0.13
curl -H "Host: www.c.com" 10.0.0.13
curl -H "Host: www.d.com" 10.0.0.13 #注意,配置里没有域名d ,因此会返回default_server默认的server

#注意,配置里没有域名d ,因此会返回default_server默认的server:nginx web1
5. Nginx反向代理与动静分离实操
5.1 Nginx反向代理
反向代理是客户端访问Nginx,Nginx转发请求至后端业务服务器,隐藏后端真实IP,实现负载分发、安全防护。
|
核心参数 |
配置代码 |
作用 |
|---|---|---|
|
反向代理核心 |
proxy_pass http://后端服务器IP:端口; |
将客户端请求转发至后端真实业务服务 |
|
头部信息透传 |
proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr; |
向后端传递真实客户端域名和IP,避免代理丢失用户信息 |
5.1.1 反向代理实践
5.1.1.1 定制配置文件
配置
server {
listen 80 default_server;
root /data/server/nginx/web1;
location / {
proxy_pass http://10.0.0.13:81; # 交给后端的81端口服务
proxy_connect_timeout 2s; # 设置连接超时时间为2s
}
location /1 {
proxy_pass http://10.0.0.13:85; # 交给后端的85端口服务
}
}
server {
listen 81 default_server;
root /data/server/nginx/web2;
access_log /var/log/nginx/access_client.log;
}
重启服务

5.1.1.2 测试效果

#由于没有85端口对应的服务,所以报错502
5.1.1.3 添加防火墙规则 - 禁止10.0.0.13 向 81端口发送请求
bash
iptables -A INPUT -p tcp --dport 81 -s 10.0.0.13 -j DROP #添加一条防火墙规则,意思是来自10.0.0.13并访问81端口的包都被丢弃
iptables -vnL #查看防火墙规则

5.1.1.4 再次测试

5.2 Nginx动静分离
核心原理:Nginx直接处理静态资源(图片、js、css、html),动态请求(php、接口)转发至后端服务器,减轻后端压力,提升访问速度。
|
资源类型 |
匹配规则配置 |
处理逻辑 |
|---|---|---|
|
静态资源 |
location ~* \.(jpg|png|js|css|html)$ { root /静态目录; } |
Nginx本地直接返回静态文件,不转发后端 |
|
动态资源 |
location ~ \.php$ { proxy_pass http://后端动态服务; } |
动态接口请求转发至后端程序处理 |
环境准备
| 角色 | IP | 系统 |
|---|---|---|
| Client | 10.0.0.12 | Rocky 9-12 |
| Proxy Server | 10.0.0.13 | Ubuntu24-13 |
| API Server | 10.0.0.16 | Ubuntu24 Server-16 |
| Static Server | 10.0.0.15 | Rocky 9-15 |
5.2.1 Rocky 9-15 实现静态服务配置
5.2.1.1 配置nginx环境
bash
echo "Static Web Server" > /usr/share/nginx/html/index.html
vim /etc/nginx/default.d/simple.conf
配置
location / {
add_header X-Host $host;
}
启动nginx并测试

5.2.2 Ubuntu24-16实现 apiserver的配置
5.2.2.1 定制python的web服务
python
from http.server import BaseHTTPRequestHandler, HTTPServer
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
# 获取请求的URL路径
url_path = self.path
# 获取请求头中的Host信息
host = self.headers.get('Host')
# 设置响应状态码
self.send_response(200)
# 设置响应头
self.send_header('Content-type', 'text/plain')
self.end_headers()
# 准备响应内容,包含换行信息
response_content = f"API Server: {url_path}, Host Header: {host}\n"
# 发送响应内容:请求的URL路径
self.wfile.write(url_path.encode('utf-8'))
self.wfile.write(response_content.encode('utf-8'))
def run(server_class=HTTPServer, handler_class=SimpleHTTPRequestHandler,port=8080):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print(f'starting http server on port {port}')
httpd.serve_forever()
if __name__ == '__main__':
run(port=8080)

5.2.2.2 重启服务并做本地测试
bash
nginx -t #检查配置
systemctl reload nginx #重载配置
python3 simple_http_server.py >/dev/null 2>&1 & #后台运行这个python文件
curl 10.0.0.16:8080/nihao #测试效果

5.2.3 ubuntu24-13实现代理配置
配置
server {
listen 80 default_server;
server_name www.wjj.com;
root /data/server/nginx/web1;
location /api {
proxy_pass http://10.0.0.16:8080;
proxy_set_header Host "api.wjj.com";
}
location /static {
rewrite ^/static(.*)$ /index.html break; # 重写url
proxy_pass http://10.0.0.15;
proxy_set_header Host "static.wjj.com";
}
location /static1/ {
# /static1/index.html 转发给后端 /index.html
proxy_pass http://10.0.0.15/; # 以/为结尾
proxy_set_header Host "static.wjj.com";
}
}

重启服务

测试效果

6. Nginx四层代理实操(代理MySQL、Redis)
Nginx开启stream四层模块,基于TCP协议转发流量,不解析HTTP报文,可代理数据库、缓存类TCP服务,实现MySQL、Redis端口转发和访问代理。
6.1 四层代理核心说明
四层代理工作在传输层,监听TCP端口,直接转发数据流,适用于非HTTP协议的服务代理,本次实操代理MySQL(3306)、Redis(6379)。
6.2 完整配置与实操
|
代理服务 |
Stream四层配置 |
测试方式 |
|---|---|---|
|
MySQL代理3306 |
stream {server {listen 3306;proxy_pass 后端MySQLIP:3306;}} |
客户端连接Nginx服务器3306端口,可正常登录MySQL数据库 |
|
Redis代理6379 |
stream {server {listen 6379;proxy_pass 后端RedisIP:6379;}} |
客户端连接Nginx服务器6379端口,可正常读写Redis数据 |
6.2.1 实现TCP协议的反向代理的准备
| 角色 | IP | 系统 |
| Client | 10.0.0.12 | Rocky 9-12 |
| Proxy Server | 10.0.0.13 | Ubuntu24-13 |
| Mysql Server | 10.0.0.16 | Ubuntu24 Server-16 |
| Redis Server | 10.0.0.15 | Rocky 9-15 |
6.3 stream模块环境准备
6.3.1 编辑nginx的全局配置文件(apt安装的nginx)
bash
apt install nginx-core -y #包含nginx的相关模块
ls /etc/nginx/modules-enabled/ #查看安装的模块
cat /etc/nginx/modules-enabled/50-mod-stream.conf #查看四层代理所需的模块


6.4 准备Mysql环境(Ubuntu24 Server-16)
6.4.1 安装mysql
bash
apt install mysql-server -y #安装MySQL服务
6.4.2 开启mysql的外连能力并重启服务
修改配置,注释掉这两行
bash
vim /etc/mysql/mysql.conf.d/mysqld.cnf
配置
......
#bind-address = 127.0.0.1
#mysqlx-bind-address = 127.0.0.1
#添加此行,跳过主机名反解
skip-name-resolve
......

重启服务
bash
systemctl restart mysql
6.4.3 创建对应的用户
登陆MySQL
bash
mysql -u root -p #用root用户登录, -u是指user用户,-p是指密码(password)登录
创建用户
mysql
#注意:mysql> 是自带的输入界面
mysql> create user proxyer@'10.0.0.%' identified by '123456';
mysql> flush privileges;


6.4.4 检测服务

#mysql服务的默认端口是3306
6.5 准备redis环境(Rocky 9-15)
6.5.1 安装redis环境
bash
dnf install redis -y

6.5.2 修改配置
bash
vim /etc/redis/redis.conf

6.5.3 启动redis并检测端口监听
重启服务
bash
systemctl restart redis
端口监听
ss -tupln | grep 6379

#注意:redis服务的默认监听端口是6379,圈红就是上一步操作修改配置里面,注释了127.0.0.1,这样才能允许任何位置访问
6.6 客户端准备工具(Rocky 9-12)
6.6.1 客户端安装mysql和redis的客户端命令
bash
dnf install mysql redis -y #安装MySQL和redis

6.6.2 数据库连接测试
bash
mysql -h 10.0.0.16 -uproxyer -p123456 -e "select version();"

6.6.3 redis连接测试
bash
redis-cli -h 10.0.0.15 -p 6379 info server

6.7 定制代理配置
6.7.1 nginx配置加载steam配置
bash
vim /etc/nginx/nginx.conf
nginx -t
sysytemctl reload nginx
配置段
stream {
include /etc/nginx/conf.d/stream_configs/*.conf;
}
#注意:该路径目录在这一步之前并没有,需要后面手动创建


创建目录
[root@ubantu-desktop-24-13 ~ ]$ mkdir -p /etc/nginx/conf.d/stream_configs
6.7.2 定制nginx的四层代理配置
bash
vim /etc/nginx/conf.d/stream_configs/tcp.conf
cat /etc/nginx/conf.d/stream_configs/tcp.conf

6.7.3 重启服务
6.7.3.1 如果之前代理机(10.0.0.13)安装过MySQL和redis服务,需要停掉服务
bash
systemctl stop mysql
systemctl stop redis-server
ss -tupln | grep 3306
ss -tupln | grep 6379

6.7.3.2 重启服务

6.8 客户端(10.0.0.12)测试
6.8.1 测试mysql和redis效果
bash
#之前在客户端12主机可直接远程登录MySQL后端主机16是因为处于同一网段
#这次使用13主机反向代理
mysql -h 10.0.0.13 -uproxyer -p'123456' -e "select version();"
#之前在客户端12主机可直接远程登录redis后端主机15是因为处于同一网段
#这次使用13主机反向代理
redis-cli -h 10.0.0.13 -p 6379 info server

#之前在客户端12主机可直接远程登录MySQL后端主机16是因为处于同一网段,这次使用13主机反向代理
#之前在客户端12主机可直接远程登录redis后端主机15是因为处于同一网段,这次使用13主机反向代理
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)