nginx(编译安装)-自定义安装路径
安装路径:/application/nginx-1.20.2
1.前期准备
安装编译需要的gcc和gcc-c++
yum install -y gcc gcc-c++
nginx依赖
pcre-devel、openssl-devel、zlib-devel
yum install -y pcre pcre-devel openssl openssl-devel zlib zlib-devel
yum -y install patch
创建用户nginx,以该用户的身份执行nginx
useradd -s /bin/false -M nginx
下载nginx源码包并解压到当前目录
mkdir /application
cd /application
CentOS7
--wget http://nginx.org/download/nginx-1.20.2.tar.gz
tar -zxf nginx-1.20.2.tar.gz
mv nginx-1.20.2 nginx_src
CentOS8
wget http://nginx.org/download/nginx-1.20.2.tar.gz
tar -zxf nginx-1.20.2.tar.gz
mv nginx-1.20.2 nginx_src
2.nginx编译安装
生成Makefile文件
cd nginx_src
./configure --user=nginx --group=nginx --prefix=/application/nginx/ --with-http_v2_module --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module
编译源代码并安装
make && make install
3.后期结尾
添加环境变量
创建nginx命令软链接到环境变量
ln -s /application/nginx/sbin/* /usr/local/sbin/
或
ln -s /application/nginx/sbin/* /usr/local/sbin/
4.配置nginx开启健康检查
下载模块
nginx -s stop
cd /application
mkdir nginx_patch
cd /applicaton/nginx_patch
wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master
unzip nginx_upstream_check_module-master.zip
cd /application/nginx_src/
打补丁
patch -p1 < /application/nginx_patch/nginx_upstream_check_module-master/check_1.20.1+.patch
预编译
cd /application/nginx_src
./configure --prefix=/application/nginx/ --with-http_v2_module --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --with-http_gzip_static_module --with-stream --with-pcre --user=nobody --group=nobody --add-module=/application/nginx_patch/nginx_upstream_check_module-master/
编译(注意只make)
make
cp /application/nginx_src/objs/nginx /application/nginx/sbin/nginx
nginx -t
配置文件
upstream xxxxxx
{
server 172.17.1.164:8080;
server 172.17.3.164:8080;
check interval=2000 rise=2 fall=2 timeout=1000 type=http;
# check_http_send "GET /HM/M_Main/Frame/Login HTTP/1.0\r\n\r\n";
}
其中参数的定义如下:
interval:检查的周期
fall:允许的检查失败次数,若失败次数超过该值,则后端被标记为"down"。
rise:检查的成功次数达到该值,则后端被标记为“up”。
timeout:检查的超时时间。
type:后端检查的协议类型。
开启后端存活状态页面,便于查看后端状态。
location /status {
check_status;
access_log off;
#allow IP;
#deny all
}
查看健康状态
http://xxx.xxx.xxx.xxx/status
5.常用命令
检查配置文件
nginx -t
指定其他配置文件启动nginx
nginx -c /application/nginx/conf/nginx.conf
启动nginx
nginx
停止nginx
nginx -s stop
重启nginx
nginx -s reload
参数解释
-s stop 快速停止nginx
-s quit 平滑停止nginx
-s reopen 重新打开日志文件
-s reload 平滑重载所有配置
6.目录介绍
[root@www nginx]# tree
.
├── conf #配置文件目录
│ ├── fastcgi.conf
│ ├── fastcgi.conf.default
│ ├── fastcgi_params
│ ├── fastcgi_params.default #fastcgi *配合php
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types #mime 媒体类型
│ ├── mime.types.default
│ ├── nginx.conf #nginx主配置文件
│ ├── nginx.conf.default
│ ├── scgi_params
│ ├── scgi_params.default
│ ├── uwsgi_params
│ ├── uwsgi_params.default
│ └── win-utf
├── html #默认站点目录
│ ├── 50x.html
│ └── index.html
├── logs #访问日志、错误日志、pid文件目录
│ ├── access.log #访问日志
│ ├── error.log #错误日志
│ └── nginx.pid #pid文件
└── sbin #命令目录
└── nginx #nginx命令文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下