Linux知识库
Linux基础知识!
Linux格式化硬盘以及格式化分区
linux基础常用知识
linux更换yum源
linux挂载windows SMB共享目录
linux开机启动级别
linux网卡配置
linux配置SMB服务
CentOS 8 firewalld配置
Linux软件管理:RPM软件包与YUM管理
Linux用户与组概念
Linux文件与目录权限基础
Linux计划任务管理
Linux中文本文件内容的查看
Linux基础-服务(service)和systemd管理服务
Vim编辑器基本操作
apt更换国内源
Linux程序服务!
Code-server在线编程服务器部署
Cloudreve网盘搭建
Emby多媒体影音系统搭建
chevereto图床搭建教程
Frp内网穿透服务器搭建
FTP服务器搭建
gitlab服务器搭建
Plex搭建
syncthing同步服务器搭建
Wordpress博客搭建
Typecho博客搭建
zabbix搭建(失败)
Aria2离线下载服务器搭建
KMS激活服务器搭建
CentOS搭建NTP服务
Grafana部署与Zabbix集成,部署开源IT系统监控平台
Linux应用环境搭建配置!
nginx编译安装
PHP8编译安装
Linux 关闭selinux
yum安装redis数据库
宝塔环境无法删除.user.ini
宝塔面板安装
mysql8.0.29编译安装
nginx安装(yum方式)
Linux系统基础知识
Linux命令行基础知识
使用Cerbot申请免费证书
ModSecurity 安装编译与连接nginx
Zabbix6.4.8安装部署
本文档使用 MrDoc 发布
-
+
首页
nginx编译安装
## 一、Nginx是什么? Nginx是一款轻量级Web服务器、反向代理服务器以及电子邮件代理服务器,并且具有高并发连接处理能力和低内存消耗的特点。前面已经学习使用yum进行安装配置了,现在尝试进行源码编译方式安装。 ## 二、编译安装nginx 系统:CentOS 8.4.2105 nginx版本:nginx-1.21.6 ### 2.1 安装准备 ```shell # 创建目录 mkdir /www # 下载 1.通过wget下载到目录下 wget http://nginx.org/download/nginx-1.21.6.tar.gz 2.先在浏览器下载然后上传到指定目录 # 安装依赖,可能还需要其它依赖 yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel # 修改文件夹的权限为root用户,为了有执行权限 chown -R root:root nginx-1.21.6 # 一般建议使用适当权限用户来运行程序。 groupadd -f nginx # 创建组 useradd -g nginx nginx # 创建组以及设置用户 usermod -s /sbin/nologin nginx # 修改用户默认shell /sbin/nologin ``` ### 2.3 配置安装模块及选项 ```linux ./configure --user=nginx --group=nginx --prefix=/www/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-http_gzip_static_module --with-http_sub_module --user:指定运行nginx服务的用户 --group:指定运行nginx服务的组 --prefix:指定安装nginx的主目录 --with:启用模块 ``` 跑完之后出现安装目录概要,下面的对应的文件路径 ```shell Configuration summary + using system PCRE2 library + using system OpenSSL library + using system zlib library nginx path prefix: "/www/nginx" nginx binary file: "/www/nginx/sbin/nginx" nginx modules path: "/www/nginx/modules" nginx configuration prefix: "/www/nginx/conf" nginx configuration file: "/www/nginx/conf/nginx.conf" nginx pid file: "/www/nginx/logs/nginx.pid" nginx error log file: "/www/nginx/logs/error.log" nginx http access log file: "/www/nginx/logs/access.log" nginx http client request body temporary files: "client_body_temp" nginx http proxy temporary files: "proxy_temp" nginx http fastcgi temporary files: "fastcgi_temp" nginx http uwsgi temporary files: "uwsgi_temp" nginx http scgi temporary files: "scgi_temp" ``` ### 2.4 编译及安装 ```linux make && make install # 编译安装时间可能要稍微久一点,等待完成即可。 ``` ## 三、基础配置 ### 3.1 文件目录 ```linux cd /www/nginx ls conf :配置文件目录 html:网页文件目录 logs:日志和pid进程文件 sbin:二进制启动文件 cd sbin # 进入目录 ./nginx -V #查看编译参数 ./nginx -V #查看nginx版本 ``` ### 3.2 进程的启动及暂停 ```linux cd /nginx/sbin/ ./nginx 回车进程启动 netstat -nltp 查看使用的端口 ps -aux | grep nginx 查看进程 kill 进程号,上面netstat -nltp前面的号码就是进程号 ``` ### 3.3 firewall防火墙开放端口 ```shell firewall-cmd --zone=public --add-port=80/tcp --permanent # 开放tcp80端口 firewall-cmd --reload # 刷新防火墙状态 ``` ### 3.4 临时关闭selinux ```linux 1、临时关闭:输入命令setenforce 0,重启系统后还会开启。 SELINUX可能会导致nginx进程无法启动的情况,及时检查。 2、永久关闭:输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。 ``` ### 3.5 使用systemctl管理进程 vim /usr/lib/systemd/system/nginx.service文件,相关目录替换成自己的目录。 文件示例: ```linux /usr/lib/systemd/system [Unit] Description=nginx-The High-performance HTTP Server After=network.target Wants=network.target [Service] PIDFile=/www/nginx/logs/nginx.pid WorkingDirectory=/www/nginx ExecStart=/www/nginx/sbin/nginx Restart=on-abnormal RestartSec=5s KillMode=mixed StandardOutput=null StandardError=syslog [Install] WantedBy=multi-user.target ``` 重启服务 ```linux systemctl daemon-reload # 刷新缓存 systemctl start nginx # 启动进程 systemctl enable nginx # 开机启动进程 ``` ## 四、添加模块 一开始我们按照业务需求进行模块的安装,但是后续随着业务发展肯定是需要一些新功能或者第三方模块,因此需要添加nginx的模块配置。 ### 4.1 停止服务 ```shell systemctl stop nginx ``` ### 4.2 备份文件 将二进制启动文件和html文件夹进行备份 ```shell cp /www/nginx/sbin/nginx /www/nginx.bak cp -R /www/nginx/html/ /www/html_bak/ ``` ### 4.3 下载模块或者添加标准模块 这边以启用标准模块为测试。 ```shell # 以可选模块 http_flv_module进行测试 ``` ### 4.4 重新配置 将之前配置的文件复制过来 ```shell cd /www/nginx-1.21.6/ # 回到源码的文件夹 ./configure --user=nginx --group=nginx --prefix=/www/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-http_gzip_static_module --with-http_sub_module ``` 在后面添加 `--with-http_flv_module`,--with表示启用模块的意思 ### 4.5 重新编译 进行重新编译,注意,不要make install ```shell make ``` 覆盖原有二进制启动文件 ```shell # 新生成的文件在编译目录下的objs下面nginx文件,覆盖到原有sbin目录下。 cp /nginx-1.21.6/objs/nginx /www/nginx/sbin/nginx # 查询编译参数,可以看到http_flv_module已经编译成功 /www/nginx/sbin/nginx -V ``` ## 六、升级版本 升级版本与上面的重新编译安装方法类似。 - 停止旧版本 - 备份启动文件和配置文件以及网页文件等,以防万一。 - 下载安装新版本进行编译安装,目录和原来一样,配置也是一样即可。 - 编译make,不能make install否则会覆盖所有文件。 - 替换文件。 - 启动进程,检查版本即可。 总结:编译安装比较复杂,可能出现很多不可控因素,非熟悉的同学还是谨慎,升级或者重编译记得备份业务目录和配置文件。 **配置步骤:** - 下载安装包 - 配置选项和启用模块 - make&make install安装 - 服务管理
Chuck
2024年3月8日 15:33
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码