NGINX源码安装详细配置文档[附常用Linux代码+健康检测模块+流量检测模块]

本文详细介绍了如何在Linux环境下安装Nginx源码,包括安装前的准备工作,依赖包安装,编译安装步骤,配置启动、停止、重启方法,以及系统优化和注意事项。
摘要由CSDN通过智能技术生成

NGINX源码安装详细配置文档

在这里插入图片描述
温馨提示:文档直接复制的时候,会出现csdn的版权保护提示,建议先复制到其他编辑器处理,再复制到shell工具。

一、基础Linux指令

查看nginx进程是否启动:ps -ef | grep nginx

关闭防火墙:systemctl stop firewalld

开放80端口:firewall-cmd --zone=public --add-port=80/tcp --permanent

关闭80端口:firewall-cmd --permanent --remove-port=80/tcp

查看80端口是否开启:firewall-cmd --query-port=80/tcp

重载防火墙:firewall-cmd --reload //修改端口状态后需要执行

查看已开放端口:firewall-cmd --list-ports

查看监听端口:netstat -tuln | grep 80

查看系统所有资源限制:ulimit -a

查看cpu核心数等信息:lscpu

只显示核心数:nproc

可打开最大文件描述符:cat /proc/sys/fs/file-max

系统 cpu 内存等使用情况:ps aux --sort=-%cpu | head

查看系统已用连接数:sudo netstat -anp | grep ESTABLISHED | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -k1 -nr

查看系统每个进程连接数:sudo lsof -i | awk ‘{print $2}’ | sort | uniq -c | sort -k1 -nr

实时监控系统信息:top (然后按不同数字会有不同信息:1看进程核心信息)

查看系统核心数:cat /proc/cpuinfo | grep “core id”

查看系统信息:

uname -a:显示系统内核版本、操作系统版本、主机名和系统架构等信息。

cat /etc/os-release:显示操作系统的名称、版本、ID和其他详细信息。

lsb_release -a:显示Linux发行版的版本和其他详细信息。

cat /etc/issue:显示操作系统版本和其他信息。

cat /proc/version:显示操作系统版本、编译日期和编译者等信息。

二、安装配置步骤

1.先安装nginx安装时所需要的依赖

使用安装包为:nginx-1.20.2版本

也可以官网下载最新包https://nginx.org/en/download.html

或者自行下载nginx依赖:

sudo yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

如果在内网或者离线环境安装,可以先在同样系统的有网环境下载依赖,导入到需要安装的系统中去。

centos7用以下指令:

sudo yum -y install --downloadonly --downloaddir=/download gcc zlib zlib-devel pcre-devel openssl openssl-devel 

centos8用以下指令:

sudo dnf -y install --downloadonly --downloaddir=/download gcc zlib zlib-devel pcre-devel openssl openssl-devel 

ubantu系列使用以下指令(会下载到/var/cache/apt/archives/目录下):

sudo apt-get download --download-only  gcc zlib zlib-devel pcre-devel openssl openssl-devel 
(1)将nginx所需依赖的包进行安装:

①将以下文件夹使用文件传输工具,传到linux系统;将文件夹放到linux系统指定路径(/usr/local)
在这里插入图片描述

请添加图片描述

②使用linux远程连接工具Xshell或者其他工具将依赖安装包安装

[root@localhost /]# cd /usr/local/nginx_require/

[root@localhost nginx_require]# rpm -ivh *.rpm --force --nodeps

在这里插入图片描述

(2)解压nginx文件夹下的依赖包

nginx_upstream_check_module-master.zip模块用于ustream健康检查,ngx_cache_purge模块,该模块用于清理nginx缓存。ngx_req_status-master.zip 该模块用于nginx请求量检测

①使用linux远程连接工具Xshell或者其他工具将依赖nginx_upstream_check_module-master.zip、ngx_req_status-master.zip文件进行解压

[root@localhost /]# cd /usr/local/nginx/

[root@localhost nginx]# ls

ngx_cache_purge-2.3.tar.gz  nginx-1.20.2.tar.gz  nginx_upstream_check_module-master.zip ngx_req_status-master.zip

[root@localhost nginx]# unzip nginx_upstream_check_module-master.zip

[root@localhost nginx]# unzip ngx_req_status-master.zip

在这里插入图片描述

②将依赖文件ngx_cache_purge-2.3.tar.gz进行解压。

[root@localhost ~]# cd /usr/local/nginx

[root@localhost nginx]# ls

nginx_upstream_check_module-master ngx_cache_purge-2.3.tar.gz  nginx-1.20.2.tar.gz  nginx_upstream_check_module-master.zip

[root@localhost nginx]# tar zxvf ngx_cache_purge-2.3.tar.gz

在这里插入图片描述

2.编译安装nginx

①解压

[root@localhost nginx]# cd /usr/localnginx

[root@localhost nginx]# tar -zxvf nginx-1.20.2.tar.gz

进入nginx-1.20.2文件夹

[root@localhost nginx]#  /usr/localnginx/nginx-1.20.2

②将nginx_upstream_check_m7odule-master打补丁到nginx

[root@localhost nginx-1.20.2]# sudo patch -p1 < ../nginx_upstream_check_module-master/check_1.16.1+.patch

③将 ngx_req_status-master.zip打补丁到nginx

[root@localhost nginx-1.20.2]# sudo patch -p1 < ../ngx_req_status-master/write_filter-1.7.11.patch

④编译

[root@localhost nginx-1.20.2]# sudo ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_sub_module --with-pcre --with-stream --add-module=../ngx_cache_purge-2.3/ --add-module=../nginx_upstream_check_module-master/ --add-module=../ngx_req_status-master

开始:

在这里插入图片描述

结束:
在这里插入图片描述

最终出现以上样式表示编译成功!

④安装

[root@localhost nginx-1.20.2]# cd /usr/local/nginx-1.20.2

[root@localhost nginx-1.20.2]# ls

build  bundle  configure  COPYRIGHT  Makefile  patches  README.markdown  README-windows.txt  util

[root@localhost nginx-1.20.2]# sudo make && sudo make install

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最终出现类似样式表示安装成功!

三、检查nginx是否安装成功

进入安装目录中,

nginx命令:cd /usr/local/nginx/sbin

启动,关闭,重启,命令:

./nginx 启动

./nginx -s stop 关闭

./nginx -s reload 重载配置 正式使用时用这个指令来重载配置

查看nginx是否启动:ps -ef | grep nginx

在这里插入图片描述

四、修改系统配置

1.安装成功,配置启动停用等指令

由于第三点中的命令无法开机自启动,并且启动比较麻烦,所以设置命令到systemctl中的系统命令去,比较方便。

**(1)**创建服务文件

[root@localhost sbin]# vim /lib/systemd/system/nginx.service

①将以下文档添加到页面中,先点击键盘I键进入输入模式

Nginx:

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

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

ExecReload=/usr/local/nginx/sbin/nginx restart

ExecStop=/usr/local/nginx/sbin/nginx stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

②按esc退出输入模式

③按 :wq 进行保存

**(2)**然后重新加载配置文档
[root@localhost sbin]# sudo systemctl daemon-reload
(3)将nginx设置为开机自启动
[root@localhost sbin]# systemctl enable nginx  //开机自启动

[root@localhost sbin]# systemctl status nginx //查看nginx状态

在这里插入图片描述

systemctl 指令合集:

[root@localhost sbin]# systemctl disable nginx  //关闭开机自启动

[root@localhost sbin]# systemctl start nginx //启动nginx服务

[root@localhost sbin]# systemctl restart nginx //重启nginx服务 正式使用时请误用

[root@localhost sbin]# systemctl enable nginx  //开机自启动

[root@localhost sbin]# systemctl status nginx //查看nginx状态
2.打开端口,并测试能否通过浏览器访问nginx
(1)打开80端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
(2)重载防火墙配置
[root@localhost ~]# firewall-cmd --reload
(3)检查80端口是否已打开
[root@localhost ~]# firewall-cmd --query-port=80/tcp
(4)使用浏览器访问:在同一网域内,输入安装了nginx的ip即可看到如下页面,即表示成功。

在这里插入图片描述

五、修改nginx.conf配置

在这里插入图片描述
本文只介绍安装步骤,nginx配置是一个复杂的过程,针对于不同服务架构配置也不同,可以根据实际情况进行搜索。
也可以查看我的文章来查看每个配置的作用:http://t.csdnimg.cn/OVftQ

六、linux内核优化与nginx优化

(一)系统内核优化

1.内核优化
sudo vim /etc/sysctl.conf

先按i进入编辑,在尾部添加:

net.ipv4.ip_local_port_range = 1024 65000

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_keepalive_time = 30

在这里插入图片描述

按esc退出编辑,按wq保存并退出。

然后执行:sudo sysctl -p 重载配置生效

2.修改连接数限制

ulimit -n查看每个进程最大连接数,默认为1024

进入limits.conf进行系统限制编辑:

sudo vim /etc/security/limits.conf

在尾部添加以下内容:

* soft nofile 65535
* hard nofile 65535

在这里插入图片描述

必须重启才生效:sudo reboot。这一步可以留到将所有配置好后执行。

(二)nginx优化

1.日志分割(防止无用日志占用存储空间)

创建配置文件:sudo vim /etc/logrotate.d/nginx

复制以下内容:

/usr/local/nginx/logs/*log

{

su root root

daily

dateext

missingok

rotate 30

notifempty

compress

create 644 nginx

sharedscripts

postrotate

[ -f /usr/local/nginx/logs/nginx.pid ] && kill -USR1 cat /usr/local/nginx/logs/nginx.pid

endscript

}

按esc退出编辑,按wq保存并退出。

在这里插入图片描述

对以上内容进行解释:

/usr/local/nginx/logs/*log # 这里也可以写明对具体哪几个文件进行切割

{

su root root # 赋root权限

daily # 每天切割

dateext # 日志文件添加日期

missingok # 忽略错误

rotate 30 # 最多保留多少个存档

notifempty # 日志为空就不切割

compress # 切割后且压缩

create 644 nginx # 文件权限

sharedscripts # 共享脚本,结果为空

postrotate # 收尾动作,重新生成nginx日志

​ [ -f /usr/local/nginx/logs/nginx.pid ] && kill -USR1 cat /usr/local/nginx/logs/nginx.pid

endscript

}

测试:sudo logrotate -f /etc/logrotate.d/nginx

原本没有日志就不会生成日志压缩包

出现错误1:没有nginx用户,创建即可

在这里插入图片描述

指令:sudo useradd nginx 然后重新执行测试代码。

效果如下:

在这里插入图片描述

2. nginx请求量监控ngx_req_status-master.zip模块
http {

  req_status_zone server_name $server_name 256k;
  req_status_zone server_addr $server_addr 256k;
  req_status server_name server_addr;

  server {
    location /req-status {
     req_status_show on;
   }
  }
}

在这里插入图片描述

Nginx请求信息解释:
在这里插入图片描述

八、注意事项-必看

1. 在nginx服务正式使用时,修改配置后,请勿使用systemctl restart nginx指令来重置配置,如果配置有误,nginx将会宕机。

进入安装目录中,

[root@localhost sbin]# cd /usr/local/nginx/sbin

[root@localhost sbin]# ./nginx -s reload
2.端口一键开放
sudo firewall-cmd --zone=public --add-port=112/tcp --permanent
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --zone=public --add-port=161/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5405/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8848/tcp --permanent
sudo firewall-cmd --reload
  • 30
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 以下是一些常用Nginx 模块及其安装方法: 1. ngx_http_ssl_module:提供 HTTPS 支持。 安装命令:`sudo apt-get install nginx-extras` 2. ngx_http_gzip_module:开启 gzip 压缩功能,可以加快网页加载速度。 安装命令:`sudo apt-get install nginx-extras` 3. ngx_http_geoip_module:根据客户端 IP 地址,提供地理位置信息。 安装命令:`sudo apt-get install nginx-extras` 4. ngx_http_realip_module:让 Nginx 获取真实的客户端 IP 地址。 安装命令:`sudo apt-get install nginx-extras` 5. ngx_http_stub_status_module:提供 Nginx 自身状态的监控信息。 安装命令:无需安装Nginx 默认已经安装。 6. ngx_http_limit_conn_module:限制客户端连接数。 安装命令:`sudo apt-get install nginx-extras` 7. ngx_http_limit_req_module:限制客户端请求速率。 安装命令:`sudo apt-get install nginx-extras` 以上模块都可以通过编译 Nginx安装。在编译 Nginx 时,可以添加相应的选项来开启或禁用这些模块。 ### 回答2: 常用nginx模块安装有以下几种方法: 1. 源码编译安装:首先从官方网站或GitHub上下载nginx代码包,解压后进入目录,然后执行配置命令 "./configure",根据需要添加所需模块的参数,最后执行 "make" 和 "make install" 命令进行编译和安装。 2. 使用apt-get或yum等包管理工具:使用适合的命令进行nginx安装,如"apt-get install nginx"或"yum install nginx"。这样安装nginx一般是编译时默认带有一些常用模块的。 3. 通过第三方工具安装:有一些第三方工具可以帮助自动化编译和安装nginx及其模块,例如通过使用openresty工具集、ngx_openresty或nginx-build等来实现。 4. 动态模块nginx 1.9.11及以上版本支持动态加载模块,可以通过在配置文件中使用 "load_module" 指令加载模块。首先编译动态模块,然后在配置文件中添加 "load_module" 指令指定模块文件路径即可。 在安装nginx模块时,需要注意源代码包版本与nginx版本兼容性,以及模块之间的依赖关系。根据实际需求,选择合适的安装方法进行配置安装常用nginx模块,如gzip模块、proxy模块、rewrite模块、ssl模块等。正确安装配置模块可以提高nginx的性能,并扩展其功能,更好地满足网站或应用的需求。 ### 回答3: 常用nginx模块安装一般通过以下几个步骤完成: 1. 查看已安装nginx版本: 使用`nginx -v`或`nginx -V`命令查看已安装nginx版本。该命令会显示nginx的版本信息,包括编译参数。 2. 下载所需的模块源码: 到nginx官方网站(http://nginx.org/)或其他第三方网站上下载所需的模块源码。通常模块源码会以`.tar.gz`或`.zip`等压缩格式提供。 3. 解压模块源码: 使用相应的解压工具(例如tar或unzip)解压下载的模块源码。 4. 进入nginx源码目录: 使用命令行进入已安装nginx源码目录。该目录通常位于`/usr/local/nginx`或`/etc/nginx`。 5. 配置编译参数: 使用文本编辑器打开nginx配置文件`nginx.conf`,在文件中找到`./configure`命令,并在其后面添加需要安装模块的编译参数。常用模块包括HttpProxyModule、HttpSslModule、HttpRewriteModule等。例如,要启用HttpProxyModule,可以在`./configure`后添加`--with-http_proxy_module`参数。 6. 编译和安装: 使用命令`make`编译修改后的配置文件。编译完成后,使用命令`make install`安装编译后的nginx。 7. 验证模块安装: 使用`nginx -t`命令验证nginx配置文件是否正确。如果配置文件无误,使用`nginx -s reload`命令重新加载nginx配置。 通过以上步骤,常用nginx模块就可以顺利安装并生效了。如果遇到编译错误或其他问题,可以参考相应的错误提示或查询相关的文档和社区讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别来无恙blwy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值