当前位置: 首页 > news >正文

CentOS 7 编译安装Nginx 1.27.5完整指南及负载均衡配置

一、环境准备与依赖安装

1. 关闭防火墙和SELinux(仅限测试环境)

systemctl stop firewalld      # 停止防火墙
systemctl disable firewalld   # 禁用防火墙开机启动
setenforce 0                  # 临时关闭SELinux

2. 安装编译依赖

yum -y install gcc pcre-devel zlib-devel

3. 下载并解压Nginx源码

wget https://nginx.org/download/nginx-1.27.5.tar.gz
tar -zxvf nginx-1.27.5.tar.gz
cd nginx-1.27.5/

二、编译安装Nginx

1. 配置编译选项

./configure --prefix=/usr/local/nginx

2. 编译并安装

make -j4        # 使用4核并行编译加速
make install

三、Nginx服务管理

1. 创建systemd服务文件

vim /etc/systemd/system/nginx.service

2. 添加以下内容:

[Unit]
Description=nginx server
After=network.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true[Install]
WantedBy=multi-user.target

3. 重新加载systemd配置

systemctl daemon-reload

4. 常用命令

命令描述
systemctl start nginx启动Nginx服务
systemctl stop nginx停止Nginx服务
systemctl restart nginx重启Nginx服务
systemctl status nginx查看服务状态
nginx -s reload重载配置文件
nginx -t测试配置文件语法

四、验证安装与端口检查

1. 验证端口监听

# 方法1:使用netstat
netstat -ntlp | grep nginx# 方法2:使用lsof
lsof -i :80# 方法3:使用ss
ss -tunlp | grep :80

2. 访问测试

浏览器访问服务器IP地址,应看到Nginx欢迎页面


五、负载均衡配置实战

1. 配置上游服务器组

编辑Nginx配置文件:

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

2. 在http块中添加负载均衡配置

upstream tomcatCluster {server localhost:8080 weight=2;  # 权重2server localhost:8081 weight=2;  # 权重2server localhost:8082 weight=6;  # 权重6
}

3. 配置反向代理规则

server {listen  80;server_name  localhost;# 静态资源服务location / {root   /usr/local/nginx/html/;index  index.html index.htm;}# API请求代理location ~^/api/ {rewrite ^/api/(.*)$ /$1 break;  # URL重写proxy_pass  http://tomcatCluster;  # 转发到服务器组proxy_redirect default;# 可选:添加代理头信息proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}

4. 重启Nginx使配置生效

systemctl restart nginx

六、后端服务器准备(Tomcat示例)

1. 创建多个Tomcat实例

cd /usr/local/tomcat
cp -r t1 t2  # 复制实例
cp -r t1 t3  # 复制实例

2. 修改各实例端口

# 编辑server.xml修改以下端口
vim t1/conf/server.xml  # 修改8005, 8080, 8009
vim t2/conf/server.xml  # 修改8006, 8081, 8010
vim t3/conf/server.xml  # 修改8007, 8082, 8011

3. 创建区分页面

# 在t1实例中:
echo '<h1 style="color:red">T1 Instance</h1>' > t1/webapps/ROOT/index.jsp# 在t2实例中:
echo '<h1 style="color:blue">T2 Instance</h1>' > t2/webapps/ROOT/index.jsp# 在t3实例中:
echo '<h1 style="color:green">T3 Instance</h1>' > t3/webapps/ROOT/index.jsp

七、验证负载均衡效果

  1. 启动所有Tomcat实例

  2. 访问 http://your-server-ip/api/

  3. 多次刷新页面,观察不同Tomcat实例的响应

  4. 查看响应头中的 X-Backend-Server 确认请求分发情况


性能优化建议

# 在http块中添加以下优化参数
http {# 连接优化keepalive_timeout  65;keepalive_requests 1000;# 缓冲优化client_body_buffer_size 10K;client_header_buffer_size 1k;client_max_body_size 8m;large_client_header_buffers 4 4k;# 超时设置client_body_timeout 12;client_header_timeout 12;send_timeout 10;# 开启Gzip压缩gzip on;gzip_types text/plain text/css application/json;
}

生产环境注意事项

  1. 保持防火墙开启状态,仅开放必要端口

  2. 配置SELinux策略而非完全禁用

  3. 定期更新Nginx版本修复安全漏洞

  4. 使用非root用户运行Nginx进程

​​​

http://www.lryc.cn/news/574466.html

相关文章:

  • MinIO中视频转换为HLS协议并进行AES加密
  • Python Polars库详解:高性能数据处理的新标杆
  • pyqt多界面
  • LangChain网页自动化PlayWrightBrowserToolkit
  • gRPC 静态库链接到 DLL 的风险与潜在问题
  • 鸿蒙开发深入解析:Service Ability(后台任务)全面指南
  • 深度解析|智能汽车操作系统技术突破:从架构演进到产业重构
  • 比翼双飞,影像的迁徙之旅
  • 基于目标驱动的分布式敏捷开发
  • GPPT(Graph Pre-training and Prompt Tuning)项目复现
  • 生成FUCK代币,并用程序进行转账的过程
  • C++字符串的行输入
  • 查询sqlserver数据库中,数据占的空间和索引占的空间
  • 鸿蒙HarmonyOS 5 开发实践:LazyForEach在通讯录应用中的高效渲染(附:代码)
  • 前端vue2每三十秒被动接受后端服务器发送过来得数据
  • 前端react使用 UmiJS 构建框架 在每次打包时候记录打包时间并在指定页面显示
  • Linux 启动过程流程图
  • PDF全能转换工具,支持图片转PDF,多图合并转PDF,word转PDF,PDF转WORD,PDF转图片
  • TouchDIVER Pro触觉手套:虚拟现实中的多模态交互新选择
  • Flask(五) 表单处理 request.form
  • 鸿蒙开发深入解析:Data Ability 数据共享机制全面指南
  • Java并发编程中高效缓存设计的哲学
  • 【格与代数系统】示例2
  • PyTorch 实现的 GlobalPMFSBlock_AP_Separate:嵌套注意力机制在多尺度特征聚合中的应用
  • 关于 pdd:anti_content参数分析与逆向
  • C#图书管理系统笔记(残缺版)
  • 【数据标注师】词性标注2
  • 【AI News | 20250623】每日AI进展
  • 基于 SpringBoot+JSP 的医疗预约与诊断系统设计与实现
  • 华为OD机试_2025 B卷_矩形相交的面积(Python,100分)(附详细解题思路)