自己做竞猜网站挣钱吗游戏公司怎么注册

张小明 2026/1/16 17:04:25
自己做竞猜网站挣钱吗,游戏公司怎么注册,怎样把网站提交到百度,建筑论坛网Nginx 安装教程 一、二进制方式安装#xff08;Ubuntu 系统#xff09; 1.1 简介 Nginx 在 Ubuntu 系统中可通过 apt 工具安装二进制包#xff0c;该方式便捷高效#xff1b;若需特定功能模块或指定版本#xff0c;可配置官方仓库或选择源码安装。 1.2 查看可安装的 Nginx…Nginx 安装教程一、二进制方式安装Ubuntu 系统1.1 简介Nginx 在 Ubuntu 系统中可通过apt工具安装二进制包该方式便捷高效若需特定功能模块或指定版本可配置官方仓库或选择源码安装。1.2 查看可安装的 Nginx 版本执行命令rootubuntu24:~# apt list nginx -a命令解释apt list列出系统软件仓库中指定软件的所有可用版本nginx指定要查询的软件名称-a显示该软件的所有版本包括已安装和未安装的。执行后可看到类似输出rootUbuntu24-13:~# apt list nginx -a正在列表... 完成 nginx/noble-updates,noble-security1.24.0-2ubuntu7.5 amd64 nginx/noble1.24.0-2ubuntu7 amd641.3 安装 Nginx 及相关组件执行命令rootubuntu24:~# apt install nginx nginx-core fcgiwrap nginx-doc -y命令解释apt installUbuntu 系统的软件安装命令nginxNginx 基础包提供核心 Web 服务功能nginx-coreNginx 核心运行库保障服务基础运行fcgiwrapFastCGI 封装程序支持解析 PHP 等动态脚本nginx-docNginx 官方文档包包含使用手册和配置说明-y安装过程中自动回答“yes”无需手动确认。注意默认apt install nginx仅安装基础包推荐安装上述完整组件以启用更多功能。1.4 查看 Nginx 服务状态执行命令rootubuntu24:~# systemctl is-active nginx命令解释systemctlLinux 系统服务管理命令用于控制系统服务is-active查询指定服务的当前运行状态nginx要查询的服务名称。输出说明正常输出为active表示服务正在运行若输出inactive执行systemctl start nginx启动服务。rootUbuntu24-13:~# systemctl is-active nginxactive1.5 检查 Nginx 监听端口执行命令rootubuntu24:~# netstat -tnulp | grep nginx命令解释netstat网络状态查询工具用于查看端口监听、网络连接等信息-t仅显示 TCP 协议的连接-n以数字形式显示 IP 地址和端口号不解析域名-u显示 UDP 协议的连接此处可省略因为 Nginx 默认监听 TCP 端口-l仅显示处于监听状态的端口-p显示占用端口的进程名称和 PID| grep nginx过滤输出结果仅保留包含nginx的行。正常输出示例rootUbuntu24-13:~# netstat -tnulp | grep nginxtcp000.0.0.0:800.0.0.0:* LISTEN2583/nginx: master tcp600:::80 :::* LISTEN2583/nginx: master输出说明0.0.0.0:80表示 Nginx 监听所有网卡的 80 端口HTTP 默认端口。1.6 查看配置文件与默认首页目录1.6.1 配置文件目录执行命令rootubuntu24:~# ls /etc/nginx/命令解释ls列出指定目录下的文件和子目录/etc/nginx/Nginx 配置文件的默认存放路径。输出示例rootUbuntu24-13:~# ls /etc/nginx/conf.d fastcgi_params koi-win modules-available nginx.conf scgi_params sites-enabled uwsgi_params fastcgi.conf koi-utf mime.types modules-enabled proxy_params sites-available snippets win-utf目录说明nginx.confNginx 主配置文件sites-available存放所有站点配置文件默认不生效sites-enabled存放生效的站点配置文件通过软链接指向sites-available中的文件conf.d额外的配置片段文件目录。1.6.2 默认首页目录执行命令rootubuntu24:~# ls /var/www/html/命令解释ls列出指定目录内容/var/www/html/Ubuntu 系统中 Nginx 默认的网站根目录。输出示例rootUbuntu24-13:~# ls /var/www/html/index.nginx-debian.html1.7 查看 Nginx 版本信息执行命令rootubuntu24:~# nginx -V命令解释nginxNginx 程序主命令-V大写显示 Nginx 的版本号以及编译时的参数小写-v仅显示版本号。rootUbuntu24-13:~# nginx -Vnginx version: nginx/1.24.0(Ubuntu)built with OpenSSL3.0.1330Jan2024TLS SNI support enabled configure arguments: --with-cc-opt-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map/build/nginx-WLuzPu/nginx-1.24.0. -fltoauto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werrorformat-security -fcf-protection -fdebug-prefix-map/build/nginx-WLuzPu/nginx-1.24.0/usr/src/nginx-1.24.0-2ubuntu7.5 -fPIC -Wdate-time -D_FORTIFY_SOURCE3--with-ld-opt-Wl,-Bsymbolic-functions -fltoauto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -fPIC--prefix/usr/share/nginx --conf-path/etc/nginx/nginx.conf --http-log-path/var/log/nginx/access.log --error-log-pathstderr --lock-path/var/lock/nginx.lock --pid-path/run/nginx.pid --modules-path/usr/lib/nginx/modules --http-client-body-temp-path/var/lib/nginx/body --http-fastcgi-temp-path/var/lib/nginx/fastcgi --http-proxy-temp-path/var/lib/nginx/proxy --http-scgi-temp-path/var/lib/nginx/scgi --http-uwsgi-temp-path/var/lib/nginx/uwsgi --with-compat --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_secure_link_module --with-http_sub_module --with-mail_ssl_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-stream_realip_module --with-http_geoip_moduledynamic --with-http_image_filter_moduledynamic --with-http_perl_moduledynamic --with-http_xslt_moduledynamic --with-maildynamic --with-streamdynamic --with-stream_geoip_moduledynamic1.8 访问异常排查防火墙执行命令rootubuntu24:~# systemctl disable --now ufw.service命令解释systemctl disable设置服务开机不自启--now立即停止该服务无需额外执行stop命令ufw.serviceUbuntu 系统默认的防火墙服务。说明若无法访问 Web 页面大概率是防火墙拦截了 80/443 端口执行此命令关闭防火墙即可。二、二进制方式安装Rocky 9 系统2.1 查看可安装的 Nginx 版本执行命令[rootrocky9 ~]# yum list nginx命令解释yum list列出 YUM 仓库中指定软件的版本信息nginx要查询的软件名称。输出示例[rootRocky9-12 ~]# yum list nginxRocky Linux9- BaseOS3.2MB/s|6.3MB 00:01 Rocky Linux9- AppStream4.1MB/s|11MB 00:02 Rocky Linux9- Extras9.9kB/s|16kB 00:01 可安装的软件包 nginx.x86_642:1.20.1-24.el9 appstream2.2 安装 Nginx 及核心组件执行命令[rootrocky9 ~]# yum install nginx nginx-core -y命令解释yum installRocky/CentOS 系统的软件安装命令nginxNginx 基础包nginx-coreNginx 核心运行库-y自动确认安装过程中的所有提示。注意默认会自动安装依赖包nginx-core、nginx-filesystem、rocky-logos-httpd。[rootRocky9-12 ~]# yum install nginx nginx-core -y上次元数据过期检查0:01:07 前执行于2025年12月16日 星期二16时01分15秒。 依赖关系解决。软件包 架构 版本 仓库 大小安装: nginx x86_642:1.20.1-24.el9 appstream36k nginx-core x86_642:1.20.1-24.el9 appstream566k 安装依赖关系: nginx-filesystem noarch2:1.20.1-24.el9 appstream9.2k rocky-logos-httpd noarch90.16-1.el9 appstream24k 事务概要安装4软件包 总下载635 k 安装大小1.8 M 下载软件包(1/4): nginx-filesystem-1.20.1-24.el9.noarch.rpm85kB/s|9.2kB 00:00(2/4): nginx-1.20.1-24.el9.x86_64.rpm246kB/s|36kB 00:00(3/4): rocky-logos-httpd-90.16-1.el9.noarch.rpm315kB/s|24kB 00:00(4/4): nginx-core-1.20.1-24.el9.x86_64.rpm1.9MB/s|566kB 00:00 --------------------------------------------------------------------------------------------------------------------------------------- 总计389kB/s|635kB 00:01 Rocky Linux9- AppStream1.7MB/s|1.7kB 00:00 导入 GPG 公钥 0x350D275D: Userid:Rocky Enterprise Software Foundation - Release key 2022 relengrockylinux.org指纹: 21CB 256A E16F C54C 6E652949702D 426D 350D 275D 来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 导入公钥成功 运行事务检查 事务检查成功。 运行事务测试 事务测试成功。 运行事务 准备中:1/1 运行脚本: nginx-filesystem-2:1.20.1-24.el9.noarch1/4 安装:nginx-filesystem-2:1.20.1-24.el9.noarch1/4 安装:nginx-core-2:1.20.1-24.el9.x86_642/4 安装:rocky-logos-httpd-90.16-1.el9.noarch3/4 安装:nginx-2:1.20.1-24.el9.x86_644/4 运行脚本: nginx-2:1.20.1-24.el9.x86_644/4 验证:nginx-2:1.20.1-24.el9.x86_641/4 验证:nginx-core-2:1.20.1-24.el9.x86_642/4 验证:nginx-filesystem-2:1.20.1-24.el9.noarch3/4 验证:rocky-logos-httpd-90.16-1.el9.noarch4/4 已安装: nginx-2:1.20.1-24.el9.x86_64 nginx-core-2:1.20.1-24.el9.x86_64 nginx-filesystem-2:1.20.1-24.el9.noarch rocky-logos-httpd-90.16-1.el9.noarch 完毕2.3 启动 Nginx 并设置开机自启2.3.1 查看初始状态默认未启动执行命令[rootrocky9 ~]# systemctl is-active nginx命令解释同 Ubuntu 系统查询 Nginx 服务的运行状态默认输出为inactive。[rootRocky9-12 ~]# systemctl is-active nginxinactive2.3.2 启动并设置开机自启执行命令[rootrocky9 ~]# systemctl enable --now nginx命令解释systemctl enable设置服务开机自启--now立即启动该服务nginx要操作的服务名称。输出示例[rootRocky9-12 ~]# systemctl enable --now nginxCreated symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.说明输出表示已创建服务软链接开机自启配置生效。2.3.3 验证启动状态执行命令[rootrocky9 ~]# systemctl is-active nginx命令解释查询服务状态正常输出为active。[rootRocky9-12 ~]# systemctl is-active nginxactive2.4 检查 Nginx 监听端口执行命令[rootrocky9 ~]# netstat -tnulp | grep nginx命令解释同 Ubuntu 系统查询 Nginx 监听的端口及进程信息。输出示例[rootRocky9-12 ~]# netstat -tnulp | grep nginxtcp000.0.0.0:800.0.0.0:* LISTEN12264/nginx: master tcp600:::80 :::* LISTEN12264/nginx: master2.5 查看配置文件与默认首页目录2.5.1 配置文件目录执行命令[rootrocky9 ~]# ls /etc/nginx/命令解释列出 Rocky 系统中 Nginx 配置文件目录的内容。输出示例[rootRocky9-12 ~]# ls /etc/nginx/conf.d fastcgi.conf.default koi-utf mime.types.default scgi_params uwsgi_params.default default.d fastcgi_params koi-win nginx.conf scgi_params.default win-utf fastcgi.conf fastcgi_params.default mime.types nginx.conf.default uwsgi_params2.5.2 默认首页目录执行命令[rootrocky9 ~]# ls /usr/share/nginx/html/命令解释ls列出目录内容/usr/share/nginx/html/Rocky 系统中 Nginx 默认的网站根目录。输出示例[rootRocky9-12 ~]# ls /usr/share/nginx/html/404.html 50x.html icons index.html nginx-logo.png poweredby.png system_noindex_logo.png2.6 访问异常排查2.6.1 关闭防火墙执行命令[rootrocky9 ~]# systemctl disable --now firewalld.service命令解释firewalld.serviceRocky 系统默认的防火墙服务其他参数同 Ubuntu 系统的ufw命令作用是关闭防火墙并设置开机不自启。2.6.2 SELinux 排查可选1查看 SELinux 状态执行命令[rootrocky9 ~]# sestatus命令解释sestatus是专门用于查看 SELinux 状态的命令输出包含当前模式enforcing/permissive/disabled。2临时关闭 SELinux执行命令[rootrocky9 ~]# setenforce 0命令解释setenforce临时修改 SELinux 运行模式的命令0设置为permissive模式仅记录违规行为不阻止操作1设置为enforcing模式强制启用 SELinux 规则。3永久关闭 SELinux执行命令[rootrocky9 ~]# sed -i ‘s/SELINUXenforcing/SELINUXdisabled/g’ /etc/selinux/config命令解释sed -i直接修改文件内容不打开编辑器s/旧内容/新内容/g全局替换文件中的字符串/etc/selinux/configSELinux 的配置文件修改后需重启系统生效。三、源码编译安装Ubuntu 系统3.1 准备编译环境3.1.1 基础编译库执行命令rootubuntu24:~# apt install build-essential gcc g libc6 libc6-dev libpcre3 libpcre3-dev libssl-dev libsystemd-dev zlib1g-dev -y命令解释build-essentialUbuntu 编译基础工具包包含make、gcc等核心编译工具gcc/gC/C 编译器用于编译 Nginx 源码libc6/libc6-devC 标准库及其开发包提供程序运行的基础函数libpcre3/libpcre3-devPCRE 正则表达式库开发包Nginx 的 URL 重写功能依赖此库libssl-devOpenSSL 开发包支持 Nginx 启用 HTTPS 功能libsystemd-devsystemd 开发包支持 Nginx 与 systemd 服务管理器集成zlib1g-devzlib 压缩库开发包支持 Nginx 启用 Gzip 压缩功能。如果出现如下报错错误:1 http://security.ubuntu.com/ubuntu noble-updates/main amd64 binutils-common amd642.42-4ubuntu2.5404Not Found[IP:101.6.15.13080]错误:2 http://security.ubuntu.com/ubuntu noble-updates/main amd64 libsframe1 amd642.42-4ubuntu2.5404Not Found[IP:101.6.15.13080]错误:3 http://security.ubuntu.com/ubuntu noble-updates/main amd64 libbinutils amd642.42-4ubuntu2.5404Not Found[IP:101.6.15.13080]错误:4 http://security.ubuntu.com/ubuntu noble-updates/main amd64 libctf-nobfd0 amd642.42-4ubuntu2.5404Not Found[IP:101.6.15.13080]错误:5 http://security.ubuntu.com/ubuntu noble-updates/main amd64 libctf0 amd642.42-4ubuntu2.5404Not Found[IP:101.6.15.13080]错误:6 http://security.ubuntu.com/ubuntu noble-updates/main amd64 libgprofng0 amd642.42-4ubuntu2.5404Not Found[IP:101.6.15.13080]错误:7 http://security.ubuntu.com/ubuntu noble-updates/main amd64 binutils-x86-64-linux-gnu amd642.42-4ubuntu2.5404Not Found[IP:101.6.15.13080]错误:8 http://security.ubuntu.com/ubuntu noble-updates/main amd64 binutils amd642.42-4ubuntu2.5404Not Found[IP:101.6.15.13080]E: 无法下载 http://security.ubuntu.com/ubuntu/pool/main/b/binutils/binutils-common_2.42-4ubuntu2.5_amd64.deb404Not Found[IP:101.6.15.13080]E: 无法下载 http://security.ubuntu.com/ubuntu/pool/main/b/binutils/libsframe1_2.42-4ubuntu2.5_amd64.deb404Not Found[IP:101.6.15.13080]E: 无法下载 http://security.ubuntu.com/ubuntu/pool/main/b/binutils/libbinutils_2.42-4ubuntu2.5_amd64.deb404Not Found[IP:101.6.15.13080]E: 无法下载 http://security.ubuntu.com/ubuntu/pool/main/b/binutils/libctf-nobfd0_2.42-4ubuntu2.5_amd64.deb404Not Found[IP:101.6.15.13080]E: 无法下载 http://security.ubuntu.com/ubuntu/pool/main/b/binutils/libctf0_2.42-4ubuntu2.5_amd64.deb404Not Found[IP:101.6.15.13080]E: 无法下载 http://security.ubuntu.com/ubuntu/pool/main/b/binutils/libgprofng0_2.42-4ubuntu2.5_amd64.deb404Not Found[IP:101.6.15.13080]E: 无法下载 http://security.ubuntu.com/ubuntu/pool/main/b/binutils/binutils-x86-64-linux-gnu_2.42-4ubuntu2.5_amd64.deb404Not Found[IP:101.6.15.13080]E: 无法下载 http://security.ubuntu.com/ubuntu/pool/main/b/binutils/binutils_2.42-4ubuntu2.5_amd64.deb404Not Found[IP:101.6.15.13080]E: 有几个软件包无法下载要不运行apt-getupdate 或者加上 --fix-missing 的选项再试试问题原因分析:从报错信息来看核心问题是APT 软件源的包版本不存在404 Not Found具体原因有以下几点软件源缓存过期本地APT缓存的软件包版本如binutils 2.42-4ubuntu2.5已被Ubuntu官方源/清华源移除导致下载时找不到对应文件源地址配置问题系统同时混用了清华源和Ubuntu官方安全源且官方安全源的IP101.6.15.130访问异常或版本不同步Ubuntu版本Noble的源更新Ubuntu 24.04Noble的更新包会持续迭代旧版本的包会被清理本地缓存未及时同步。解决步骤按顺序执行步骤1更新APT缓存最优先首先强制更新本地软件源缓存让系统获取最新的包版本信息aptupdate -y若执行时仍有404错误继续下一步更换国内源。步骤2更换为稳定的国内源清华源Ubuntu官方源在国内访问不稳定且版本迭代后旧包会被删除建议替换为清华源备份原有源配置cp/etc/apt/sources.list /etc/apt/sources.list.bak清空原有源文件并写入清华源适配Ubuntu 24.04 Noblecat/etc/apt/sources.listEOF # 清华源 - Ubuntu 24.04 (Noble) deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-security main restricted universe multiverse EOF再次更新缓存aptupdate -y步骤3重新安装目标软件包缓存更新完成后重新执行安装命令aptinstallbuild-essential gcc g libc6 libc6-dev libpcre3 libpcre3-dev libssl-dev libsystemd-dev zlib1g-dev -y步骤4可选修复损坏的包依赖若仍有报错执行以下命令修复依赖和缺失的包apt--fix-missinginstall-yapt--fix-brokeninstall-y3.1.2 功能扩展库二进制版本默认功能依赖执行命令rootubuntu24:~# apt install libxml2 libxml2-dev libxslt1-dev php-gd libgd-dev geoip-database libgeoip-dev -y命令解释libxml2/libxml2-devXML 解析库支持 Nginx 的 XML 相关模块libxslt1-devXSLT 转换库支持 Nginx 的 XSLT 模块php-gd/libgd-devGD 图形库支持处理图片相关的动态内容geoip-database/libgeoip-devGeoIP 数据库及开发包支持 Nginx 根据 IP 定位地域。3.2 创建 Nginx 运行用户执行命令rootubuntu24:~# useradd -r -s /usr/sbin/nologin nginx命令解释useradd创建系统用户的命令-r创建系统专用用户无家目录UID 范围低于 1000-s /usr/sbin/nologin指定用户的登录 Shell 为nologin禁止该用户通过 SSH 或终端登录系统nginx创建的用户名用于运行 Nginx 进程避免使用 root 用户运行服务提升安全性。3.3 下载并解压 Nginx 源码包1下载指定版本执行命令rootubuntu24:~# wget https://nginx.org/download/nginx-1.22.1.tar.gz命令解释wget命令行下载工具用于从指定 URL 下载文件https://nginx.org/download/nginx-1.22.1.tar.gzNginx 1.22.1 版本源码包的官方下载地址。注意若提示“无法解析主机地址 ‘nginx.org’”重试下载即可可能是网络临时波动。2解压源码包执行命令rootubuntu24:~# tar xf nginx-1.22.1.tar.gz命令解释tar压缩包解压工具x执行解压操作f指定要解压的文件名称nginx-1.22.1.tar.gz要解压的源码包文件名。3进入源码目录执行命令rootubuntu24:~# cd nginx-1.22.1/命令解释cd切换工作目录的命令nginx-1.22.1/解压后的 Nginx 源码目录。3.4 定制编译配置执行命令rootubuntu24:nginx-1.22.1# ./configure \–prefix/data/server/nginx \–usernginx \–groupnginx \–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命令解释./configure源码编译的配置脚本用于指定安装路径、启用模块等参数\命令换行符表示下一行是当前命令的延续--prefix/data/server/nginx指定 Nginx 的安装根目录--usernginx指定运行 Nginx 工作进程的用户--groupnginx指定运行 Nginx 工作进程的用户组--with-http_ssl_module启用 HTTPS 协议支持模块--with-http_v2_module启用 HTTP/2 协议支持模块--with-http_realip_module启用获取客户端真实 IP 的模块适用于反向代理场景--with-http_stub_status_module启用 Nginx 状态监控模块可查看连接数、请求数等状态--with-http_gzip_static_module启用预压缩静态文件模块提升 Gzip 压缩效率--with-pcre启用 PCRE 正则表达式支持--with-stream启用 TCP/UDP 反向代理模块--with-stream_ssl_module启用 Stream 模块的 SSL 支持--with-stream_realip_module启用 Stream 模块的真实 IP 支持。3.5 编译并安装执行命令rootubuntu24:nginx-1.22.1# make make install命令解释make根据./configure生成的 Makefile 文件编译源码生成可执行程序逻辑与运算符只有前一个命令make执行成功后才执行后一个命令make install将编译好的程序和配置文件安装到--prefix指定的目录。注意编译过程约 1 分钟需耐心等待无报错则安装完成。3.6 配置目录权限与软链接3.6.1 修改安装目录属主属组执行命令rootubuntu24:nginx-1.22.1# chown -R nginx:nginx /data/server/nginx/命令解释chown修改文件/目录的属主和属组-R递归处理所有子文件和子目录nginx:nginx设置属主为nginx用户属组为nginx用户组/data/server/nginx/要修改权限的 Nginx 安装目录。说明确保 Nginx 运行用户对安装目录有读写权限。3.6.2 查看安装目录结构执行命令rootubuntu24:nginx-1.22.1# ls -l /data/server/nginx/命令解释ls -l以长格式列出目录内容显示文件权限、属主、大小等信息/data/server/nginx/Nginx 安装目录。输出示例total16drwxr-xr-x2nginx nginx4096Jan2015:35 conf# 配置文件目录drwxr-xr-x2nginx nginx4096Jan2015:35 html# 网站根目录drwxr-xr-x2nginx nginx4096Jan2015:35 logs# 日志文件目录drwxr-xr-x2nginx nginx4096Jan2015:35 sbin# 二进制程序目录3.6.3 创建全局软链接方便调用执行命令rootubuntu24:nginx-1.22.1# ln -sv /data/server/nginx/sbin/nginx /usr/sbin/nginx命令解释ln创建软链接或硬链接的命令-s创建软链接符号链接类似 Windows 的快捷方式-v显示链接创建的过程/data/server/nginx/sbin/nginx源文件路径Nginx 可执行程序的实际位置/usr/sbin/nginx目标链接路径/usr/sbin是系统命令默认搜索路径可直接在终端执行nginx命令。输出/usr/sbin/nginx - /data/server/nginx/sbin/nginx3.7 验证版本执行命令rootubuntu24:nginx-1.22.1# nginx -v命令解释nginx -v显示 Nginx 的版本号输出示例rootUbuntu24-13:~/nginx-1.22.1# nginx -vnginx version: nginx/1.22.13.8 定制 systemd 服务管理文件3.8.1 创建 PID 目录执行命令rootubuntu24:~# mkdir /data/server/nginx/run执行命令rootubuntu24:~# chown -R nginx:nginx /data/server/nginx/run命令解释mkdir /data/server/nginx/run创建 PID 文件存放目录PID 文件记录 Nginx 主进程的 IDchown -R nginx:nginx /data/server/nginx/run修改目录权限确保 Nginx 用户可写入 PID 文件。3.8.2 修改 Nginx 配置文件指定 PID 路径执行命令rootubuntu24:~# vi /data/server/nginx/conf/nginx.conf命令解释viLinux 系统默认的文本编辑器/data/server/nginx/conf/nginx.confNginx 主配置文件路径。操作说明在配置文件中添加/修改 PID 配置行pid /data/server/nginx/run/nginx.pid;作用指定 Nginx 主进程 PID 文件的存放路径便于 systemd 管理服务。3.8.3 创建服务文件执行命令rootubuntu24:~# vi /usr/lib/systemd/system/nginx.service命令解释vi文本编辑器/usr/lib/systemd/system/nginx.servicesystemd 服务文件的存放路径用于定义服务的启动、停止规则。写入内容[Unit] Descriptionnginx - high performance web server Documentationhttp://nginx.org/en/docs/ Afternetwork-online.target remote-fs.target nss-lookup.target Wantsnetwork-online.target [Service] Typeforking PIDFile/data/server/nginx/run/nginx.pid ExecStart/data/server/nginx/sbin/nginx -c /data/server/nginx/conf/nginx.conf ExecReload/bin/kill -s HUP $MAINPID ExecStop/bin/kill -s TERM $MAINPID LimitNOFILE100000 [Install] WantedBymulti-user.target配置项解释配置项作用[Unit]定义服务的元数据和依赖关系Description服务的描述信息Documentation服务的文档地址After指定服务在哪些目标/服务之后启动如网络就绪后Wants弱依赖关系指定的目标激活时当前服务也会激活[Service]定义服务的运行参数Typeforking表示服务启动后会创建子进程Nginx 主进程会 fork 子进程PIDFile指定 PID 文件路径systemd 通过此文件监控进程ExecStart服务启动命令-c指定配置文件路径ExecReload服务重载命令发送HUP信号让 Nginx 重新加载配置ExecStop服务停止命令发送TERM信号让 Nginx 优雅停止LimitNOFILE100000增大 Nginx 可打开的文件描述符数量上限[Install]定义服务的安装选项WantedBymulti-user.target表示服务在多用户模式下启用信号说明SIGHUP (1)重载配置文件不中断现有连接SIGTERM (15)优雅终止进程处理完现有连接后退出SIGKILL (9)强制终止进程不推荐可能导致数据丢失。3.8.4 重载服务配置并启动1重载 systemd 配置执行命令rootubuntu24:~# systemctl daemon-reload命令解释systemctl daemon-reload重新加载 systemd 的服务配置文件使新创建的nginx.service生效。2启动 Nginx执行命令rootubuntu24:~# systemctl start nginx命令解释启动 Nginx 服务。3查看状态执行命令rootubuntu24:~# systemctl status nginx.service命令解释查看 Nginx 服务的详细运行状态包括是否运行、进程 PID、日志信息等。4验证监听端口执行命令rootubuntu24:~# netstat -tnulp | grep nginx命令解释同前文验证 Nginx 是否监听 80 端口。rootUbuntu24-13:~/nginx-1.22.1# netstat -tnulp | grep nginxtcp000.0.0.0:800.0.0.0:* LISTEN22281/nginx: master3.8.5 导入 man 手册可选1复制手册文件执行命令rootubuntu24:nginx-1.22.1# cp man/nginx.8 /usr/share/man/man8/命令解释cp复制文件命令man/nginx.8Nginx 源码目录中的 man 手册文件/usr/share/man/man8/系统 man 手册的存放路径man8目录存放系统管理员命令的手册。2构建手册数据库执行命令rootubuntu24:nginx-1.22.1# mandb命令解释mandb更新 man 手册的数据库使新复制的手册文件可被搜索到。3验证手册执行命令rootubuntu24:nginx-1.22.1# man nginx命令解释man nginx查看 Nginx 的 man 手册了解命令参数和使用方法。四、源码编译安装Rocky 9 系统4.1 准备编译环境4.1.1 基础编译库执行命令[rootrocky9 ~]# yum install gcc make gcc-c glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel -y命令解释gcc make gcc-cC/C 编译器和编译核心工具是源码编译的基础glibc glibc-develLinux 系统核心 C 标准库及开发包提供程序运行的基础函数pcre pcre-develPCRE 正则表达式库及开发包Nginx 的 rewrite 模块、location 匹配依赖此库openssl openssl-develOpenSSL 加密库及开发包支持 Nginx 启用 HTTPS 协议SSL/TLS 加密systemd-develsystemd 开发包支持 Nginx 与 systemd 服务管理集成如进程监控、PID 管理zlib-develzlib 压缩库开发包支持 Nginx 的 Gzip 静态压缩模块--with-http_gzip_static_module。4.1.2 功能扩展库执行命令[rootrocky9 ~]# yum install libxml2 libxml2-devel libxslt libxslt-devel php-gd gd-devel -y命令解释libxml2 libxml2-develXML 解析库及开发包支持 Nginx 处理 XML 格式的配置/数据libxslt libxslt-develXSLT 转换库及开发包支持 XML 到 HTML 等格式的转换php-gd gd-develGD 图形库及 PHP 扩展若 Nginx 配合 PHP 运行如动态生成图片需依赖此库注意此扩展库是 Nginx 默认二进制版本开启高级功能的依赖源码编译时按需安装不影响核心功能。4.2 下载并解压源码包1创建软件目录执行命令[rootrocky9 ~]# mkdir /softs cd /softs命令解释mkdir /softs创建/softs专属目录统一存放源码包避免文件混乱 cd /softs创建目录后立即切换到该目录后续操作无需重复指定路径。2下载源码以 1.23.0 为例执行命令[rootrocky9 softs]# dnf install wget -y wget https://nginx.org/download/nginx-1.23.0.tar.gz命令解释dnf install wget -y先安装 wget 工具Rocky 9 默认未预装确保能从官网下载源码wget https://nginx.org/download/nginx-1.23.0.tar.gz从 Nginx 官方源下载 1.23.0 稳定版源码包保证文件完整性。3解压执行命令[rootrocky9 softs]# tar xf nginx-1.23.0.tar.gz命令解释tar xfx表示解压f表示指定压缩包无需额外参数即可解压.tar.gz格式文件解压后生成nginx-1.23.0目录。4进入源码目录执行命令[rootrocky9 softs]# cd nginx-1.23.0/命令解释切换到解压后的源码目录后续编译、配置操作均在此目录执行。4.3 创建运行用户执行命令[rootrocky9 nginx-1.23.0]# useradd -r -s /usr/sbin/nologin nginx命令解释-r创建系统专用用户UID 小于 1000非登录用户仅用于运行 Nginx 进程-s /usr/sbin/nologin禁止该用户通过终端登录系统提升安全性nginx用户名统一命名便于管理避免与其他服务用户混淆。4.4 定制编译配置4.4.1 查看编译帮助可选执行命令[rootrocky9 nginx-1.23.0]# ./configure --help命令解释查看所有可配置的编译参数包括模块、路径、用户等按需调整如新增/关闭模块。4.4.2 执行定制配置执行命令[rootrocky9 nginx-1.23.0]# ./configure \–prefix/data/server/nginx \–usernginx \–groupnginx \–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命令解释--prefix/data/server/nginx指定 Nginx 安装根目录核心参数所有文件均在此目录下--usernginx --groupnginx指定 Nginx 运行的用户/用户组与 4.3 节创建的用户一致--with-http_ssl_module启用 HTTPS 模块必备支持 SSL/TLS 加密--with-http_v2_module启用 HTTP/2 协议模块提升访问速度--with-http_realip_module启用真实IP模块可获取客户端真实IP反向代理场景必备--with-http_stub_status_module启用状态监控模块可查看 Nginx 连接数、请求数等状态--with-http_gzip_static_module启用 Gzip 静态压缩模块减少传输带宽--with-pcre强制使用系统安装的 PCRE 库确保正则匹配功能正常--with-stream启用 TCP/UDP 反向代理模块如代理数据库、Redis--with-stream_ssl_module启用 Stream 模块的 SSL 加密代理加密TCP连接--with-stream_realip_module启用 Stream 模块的真实IP获取功能。执行结果配置完成后输出Configuration summary无报错则表示依赖满足可进入编译步骤。4.5 编译并安装执行命令[rootrocky9 nginx-1.23.0]# make make install命令解释make根据配置参数编译源码生成可执行文件耗时取决于服务器性能 make install编译成功后将文件安装到--prefix指定的/data/server/nginx目录验证安装执行ls /data/server/nginx/可见conf配置、sbin可执行文件、html默认页面等目录。4.6 配置权限与环境变量4.6.1 修改目录权限执行命令[rootrocky9 nginx-1.23.0]# chown -R nginx:nginx /data/server/nginx/命令解释-R递归修改目录及所有子文件/目录的属主/属组nginx:nginx将权限赋予 Nginx 专用用户避免 root 运行进程带来的安全风险。4.6.2 配置 Man 帮助文档可选执行命令[rootrocky9 nginx-1.23.0]# cp man/nginx.8 /usr/share/man/man8/验证命令[rootrocky9 ~]# man nginx命令解释将 Nginx 自带的 Man 帮助文档复制到系统默认路径支持通过man nginx查看命令帮助。4.6.3 添加全局环境变量执行命令[rootrocky9 ~]# echo ‘export PATH/data/server/nginx/sbin:$PATH’ /etc/bashrc生效命令[rootrocky9 ~]# source /etc/bashrc命令解释echo export PATH... /etc/bashrc将 Nginx 的sbin目录含nginx可执行文件添加到系统 PATH 环境变量全局用户生效source /etc/bashrc立即加载配置无需重启终端即可直接执行nginx命令无需指定完整路径验证环境变量执行echo $PATH输出中包含/data/server/nginx/sbin则配置成功。4.6.4 手动启动 Nginx 验证启动命令[rootrocky9 ~]# nginx验证编译参数[rootrocky9 ~]# nginx -V验证访问[rootrocky9 ~]# curl http://localhost/命令解释nginx -V查看 Nginx 编译参数验证模块是否启用curl http://localhost/访问 Nginx 默认页面返回Welcome to nginx!则启动成功。4.7 定制 systemd 服务管理文件4.7.1 方式1基于 PID 文件的服务配置推荐适配 Rocky 91创建 PID 目录并修复权限执行命令[rootrocky9 ~]# mkdir -p /data/server/nginx/run[rootrocky9 ~]# chmod 755 /data/server/nginx/run[rootrocky9 ~]# chown -R root:root /data/server/nginx/run命令解释mkdir -p递归创建目录避免目录不存在报错权限配置为root:root适配 systemd 以 root 运行 Nginx避免 PID 文件写入权限不足若需以 nginx 用户运行需确保 nginx 用户存在且有目录读写权限useradd -M -s /sbin/nologin nginx chown -R nginx:nginx /data/server/nginx/run。2修改 Nginx 配置文件指定 PID 路径编辑命令[rootrocky9 ~]# vi /data/server/nginx/conf/nginx.conf添加配置行在main全局块中如worker_processes上方pid /data/server/nginx/run/nginx.pid;验证配置语法[rootrocky9 ~]# /data/server/nginx/sbin/nginx -t正常输出nginx: the configuration file /data/server/nginx/conf/nginx.conf syntax is ok nginx: configuration file /data/server/nginx/conf/nginx.conf test is successful3创建适配 Rocky 9 的 systemd 服务文件编辑命令[rootrocky9 ~]# vi /usr/lib/systemd/system/nginx.service服务文件内容优化 ExecReload/ExecStop避免 kill 命令兼容性问题[Unit] Descriptionnginx - high performance web server Documentationhttp://nginx.org/en/docs/ Afternetwork-online.target remote-fs.target nss-lookup.target Wantsnetwork-online.target [Service] Typeforking PIDFile/data/server/nginx/run/nginx.pid ExecStart/data/server/nginx/sbin/nginx -c /data/server/nginx/conf/nginx.conf ExecReload/data/server/nginx/sbin/nginx -s reload ExecStop/data/server/nginx/sbin/nginx -s quit LimitNOFILE100000 Userroot Grouproot WorkingDirectory/data/server/nginx [Install] WantedBymulti-user.target配置解释[Unit]定义服务依赖确保网络就绪后启动 NginxTypeforking后台运行模式Nginx 默认以 daemon 方式运行PIDFile指定 PID 文件路径systemd 通过此文件监控进程ExecStart启动命令显式指定配置文件避免加载系统默认配置ExecReload/ExecStop使用 Nginx 原生信号指令替代 kill 命令避免 PID 匹配错误Userroot/Grouproot指定运行用户适配 Rocky 9 SELinux 策略避免权限拦截WorkingDirectory设置工作目录统一执行环境LimitNOFILE100000提升文件描述符限制支持高并发[Install]设置开机自启级别多用户模式。4.7.2 方式2不依赖 PID 文件的极简服务配置解决 203/EXEC 错误编辑命令[rootrocky9 ~]# vi /usr/lib/systemd/system/nginx.service服务文件内容移除 ExecStartPre避免 SELinux 拦截执行[Unit] Descriptionnginx High Performance Web Server Afternetwork.target [Service] Typeforking ExecStart/data/server/nginx/sbin/nginx -c /data/server/nginx/conf/nginx.conf ExecReload/data/server/nginx/sbin/nginx -s reload ExecStop/data/server/nginx/sbin/nginx -s quit PrivateTmptrue Userroot Grouproot WorkingDirectory/data/server/nginx [Install] WantedBymulti-user.target配置解释移除ExecStartPre/data/server/nginx/sbin/nginx -t避免 systemd 执行前置检查时触发 SELinux 权限错误PrivateTmptrue隔离临时目录提升安全性极简配置减少 systemd 执行环节降低 Rocky 9 权限拦截概率。4.7.3 重载并管理服务1重载 systemd 配置执行命令[rootrocky9 ~]# systemctl daemon-reload命令解释重新加载 systemd 服务配置使新增/修改的nginx.service生效。2清理残留进程关键避免端口/进程冲突执行命令[rootrocky9 ~]# /data/server/nginx/sbin/nginx -s stop 2/dev/null[rootrocky9 ~]# pkill -9 nginx 2/dev/null[rootrocky9 ~]# rm -f /data/server/nginx/run/nginx.pid3启动 Nginx 服务执行命令[rootrocky9 ~]# systemctl start nginx4设置开机自启执行命令[rootrocky9 ~]# systemctl enable nginx5查看服务状态执行命令[rootrocky9 ~]# systemctl status nginx.service -l正常状态输出● nginx.service - nginx High Performance Web Server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled) Active: active (running) since Tue 2025-12-16 17:56:46 CST; 10s ago Process: 42851 ExecStart/data/server/nginx/sbin/nginx -c /data/server/nginx/conf/nginx.conf (codeexited, status0/SUCCESS) Main PID: 42852 (nginx) Tasks: 2 (limit: 17275) Memory: 2.1M CPU: 7ms CGroup: /system.slice/nginx.service ├─42852 nginx: master process /data/server/nginx/sbin/nginx -c /data/server/nginx/conf/nginx.conf └─42853 nginx: worker process6验证端口监听与服务可用性执行命令[rootrocky9 ~]# ss -tulnp | grep :80 # 替代 netstatRocky 9 推荐 ss 命令[rootrocky9 ~]# curl http://localhost正常输出端口监听tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:((nginx,pid42853,fd6),(nginx,pid42852,fd6))curl 访问返回 Nginx 默认首页 HTML 内容。4.8 服务启动失败排查Rocky 9 专属解决 203/EXEC/权限错误4.8.1 配置语法问题核心排查命令[rootrocky9 ~]# /data/server/nginx/sbin/nginx -t常见错误示例nginx: [emerg] directive pid is not terminated by ; in /data/server/nginx/conf/nginx.conf:12 nginx: configuration file /data/server/nginx/conf/nginx.conf test failed解决方法编辑配置文件补全缺失的分号;、括号等符号确保所有配置指令以分号结尾区块指令如http {}、server {}括号闭合验证时必须使用 Nginx 全路径避免 PATH 环境变量问题。4.8.2 可执行文件/目录权限问题常见原因Nginx 二进制文件无执行权限、PID/日志目录无读写权限。修复命令# 修复可执行文件执行权限chmodx /data/server/nginx/sbin/nginx# 修复 PID 目录权限适配 root 运行chmod755/data/server/nginx/runchownroot:root /data/server/nginx/run# 修复日志目录权限避免日志写入失败chmod755/data/server/nginx/logschownroot:root /data/server/nginx/logs4.8.3 SELinux 拦截问题Rocky 9 最常见替代直接关闭1检查 SELinux 状态执行命令[rootrocky9 ~]# sestatus若输出SELinux status: enabled且Mode: enforcing则 SELinux 处于强制拦截模式。2安装 SELinux 工具必装执行命令[rootrocky9 ~]# yum install -y policycoreutils-python-utils3修复 Nginx 目录 SELinux 上下文推荐不关闭 SELinux执行命令# 给可执行文件目录设置二进制标签semanage fcontext -a -t bin_t/data/server/nginx/sbin(/.*)?restorecon -Rv /data/server/nginx/sbin# 给 PID 目录设置运行时标签semanage fcontext -a -t httpd_var_run_t/data/server/nginx/run(/.*)?restorecon -Rv /data/server/nginx/run# 给日志目录设置日志标签semanage fcontext -a -t httpd_log_t/data/server/nginx/logs(/.*)?restorecon -Rv /data/server/nginx/logs4放行 Nginx SELinux 权限生产环境推荐执行命令setsebool -P httpd_execmem on setsebool -P httpd_can_network_connect on5临时关闭 SELinux仅测试用执行命令[rootrocky9 ~]# setenforce 06永久关闭 SELinux仅测试环境不推荐执行命令[rootrocky9 ~]# sed -i ‘s/SELINUXenforcing/SELINUXdisabled/g’ /etc/selinux/config注意修改后需重启服务器生效生产环境优先用上下文/布尔值放行而非关闭。4.8.4 防火墙端口拦截1开放 80/443 端口推荐执行命令firewall-cmd --permanent --add-servicehttp firewall-cmd --permanent --add-servicehttps firewall-cmd --reload命令解释--permanent规则永久生效--add-servicehttp/https开放 80/443 端口Nginx 默认监听端口--reload重载防火墙规则。2临时关闭防火墙测试用执行命令[rootrocky9 ~]# systemctl disable --now firewalld4.8.5 203/EXEC 错误专项排查错误特征systemctl status nginx显示status203/EXEC、Permission denied。解决步骤检查可执行文件权限chmod x /data/server/nginx/sbin/nginx修复 SELinux 上下文见 4.8.3 节重构nginx.service文件移除 ExecStartPre、指定 Userroot清理残留进程后重新启动systemctl daemon-reload systemctl start nginx。4.9 Nginx 核心命令与信号说明4.9.1 常用命令命令作用nginx启动 Nginxnginx -t检查配置语法nginx -s reload重载配置SIGHUP 信号nginx -s stop强制停止SIGTERM 信号nginx -s quit优雅停止等待连接结束nginx -V查看编译参数nginx -v查看版本号4.9.2 核心信号含义SIGHUP (1)挂起信号Nginx 接收后重载配置文件无需重启进程平滑升级/配置生效SIGKILL (9)强制终止信号立即杀死进程不推荐可能导致连接中断SIGTERM (15)优雅终止信号Nginx 接收后停止接收新连接处理完现有连接后退出默认停止方式。五、Nginx 编译安装自动化脚本5.1 Ubuntu 版本脚本nginx_install_ubuntu.sh#!/bin/bash# Nginx 源码编译安装脚本Ubuntu# 版本1.22.1# 定义变量NGINX_VERSION1.22.1INSTALL_DIR/data/server/nginxSRC_DIR/softsUSERnginx# 检查是否为 root 用户if[$UID-ne0];thenecho错误请以 root 用户运行此脚本exit1fi# 1. 安装编译环境echo 安装编译依赖 aptupdateaptinstall-y\build-essential gcc g libc6 libc6-dev libpcre3 libpcre3-dev libssl-dev libsystemd-dev zlib1g-dev\libxml2 libxml2-dev libxslt1-dev php-gd libgd-dev geoip-database libgeoip-dev# 2. 创建运行用户echo 创建 Nginx 运行用户 id-u$USER/dev/null||useradd-r -s /usr/sbin/nologin$USER# 3. 下载并解压源码echo 下载 Nginx 源码 mkdir-p$SRC_DIRcd$SRC_DIRwget-c https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz -O nginx-${NGINX_VERSION}.tar.gztarxf nginx-${NGINX_VERSION}.tar.gzcdnginx-${NGINX_VERSION}# 4. 配置编译参数echo 配置编译参数 ./configure\--prefix${INSTALL_DIR}\--user${USER}\--group${USER}\--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# 5. 编译安装echo 编译并安装 makemakeinstall# 6. 配置权限与软链接echo 配置权限与软链接 chown-R${USER}:${USER}${INSTALL_DIR}ln-sv${INSTALL_DIR}/sbin/nginx /usr/sbin/nginx# 7. 创建 PID 目录echo 创建 PID 目录 mkdir-p${INSTALL_DIR}/runchown-R${USER}:${USER}${INSTALL_DIR}/run# 8. 修改 Nginx 配置指定 PIDecho 修改 Nginx 配置 sed-i/^#pid/a pid${INSTALL_DIR}/run/nginx.pid;${INSTALL_DIR}/conf/nginx.conf# 9. 创建 systemd 服务文件echo 创建 systemd 服务 cat/usr/lib/systemd/system/nginx.serviceEOF [Unit] Descriptionnginx - high performance web server Documentationhttp://nginx.org/en/docs/ Afternetwork-online.target remote-fs.target nss-lookup.target Wantsnetwork-online.target [Service] Typeforking PIDFile${INSTALL_DIR}/run/nginx.pid ExecStart${INSTALL_DIR}/sbin/nginx -c${INSTALL_DIR}/conf/nginx.conf ExecReload/bin/kill -s HUP \$MAINPIDExecStop/bin/kill -s TERM \$MAINPIDLimitNOFILE100000 [Install] WantedBymulti-user.target EOF# 10. 启动并设置开机自启echo 启动 Nginx systemctl daemon-reload systemctl start nginx systemctlenablenginx# 11. 关闭防火墙echo 关闭防火墙 systemctl disable --now ufw.service# 12. 验证安装echo 验证安装 nginx -v systemctl is-active nginxnetstat-tnulp|grepnginxecho 安装完成 echoNginx 安装目录${INSTALL_DIR}echo配置文件路径${INSTALL_DIR}/conf/nginx.confecho默认网站目录${INSTALL_DIR}/html5.2 Rocky 9 版本脚本nginx_install_rocky.sh#!/bin/bash# Nginx 源码编译安装脚本Rocky 9# 版本1.23.0# 优化点内存兜底交换分区、SELinux 兼容、源码下载容错、进程防杀、权限兜底# 定义变量NGINX_VERSION1.23.0INSTALL_DIR/data/server/nginxSRC_DIR/softsUSERnginxSWAP_SIZE2048# 交换分区大小MB内存1G必选# 检查是否为 root 用户if[$UID-ne0];thenecho错误请以 root 用户运行此脚本exit1fi# 关闭命令错误退出兼容非必需步骤sete# 1. 系统初始化清理残留关闭拦截echo 系统环境初始化 # 清理旧残留rm-rf${INSTALL_DIR}/softs/nginx* /usr/lib/systemd/system/nginx.servicepkill-9 nginx/dev/null21rm-f /swapfile# 关闭防火墙systemctl disable --now firewalld# 临时关闭 SELinuxsetenforce0sed-is/SELINUXenforcing/SELINUXdisabled/g/etc/selinux/config# 2. 内存兜底创建交换分区防OOM杀进程echo 创建交换分区防 OOM 杀进程 ddif/dev/zeroof/swapfilebs1Mcount${SWAP_SIZE}/dev/null21chmod600/swapfilemkswap/swapfile/dev/null21swapon/swapfile/dev/null21# 永久生效echo/swapfile swap swap defaults 0 0/etc/fstab# 3. 安装编译环境全量依赖echo 安装编译依赖 yuminstall-y\gccmakegcc-c glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel\libxml2 libxml2-devel libxslt libxslt-devel php-gd gd-devel policycoreutils-python-utils net-toolswget# 4. 创建运行用户适配 Rocky 9 nologin 路径echo 创建 Nginx 运行用户 id-u$USER/dev/null||useradd-r -s /sbin/nologin$USER# 5. 下载并解压源码增加容错官方源备用源echo 下载 Nginx 源码 mkdir-p$SRC_DIRcd$SRC_DIR# 优先官方源wget-c --timeout60https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz -O nginx-${NGINX_VERSION}.tar.gzif[$?-ne0];thenecho官方源下载失败尝试腾讯云镜像...wget-c --timeout60https://mirrors.cloud.tencent.com/nginx/download/nginx-${NGINX_VERSION}.tar.gz -O nginx-${NGINX_VERSION}.tar.gzif[$?-ne0];thenecho错误源码下载失败请手动下载 nginx-${NGINX_VERSION}.tar.gz 到${SRC_DIR}后重试exit1fifitarxf nginx-${NGINX_VERSION}.tar.gzcdnginx-${NGINX_VERSION}# 6. 配置编译参数echo 配置编译参数 ./configure\--prefix${INSTALL_DIR}\--user${USER}\--group${USER}\--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_moduleif[$?-ne0];thenecho错误编译配置失败依赖缺失请检查日志exit1fi# 7. 多核编译安装提升速度echo 编译并安装 make-j$(nproc)makeinstallif[$?-ne0];thenecho错误编译安装失败请检查服务器资源exit1fi# 8. 配置权限与环境变量兜底权限echo 配置权限与环境变量 chown-R root:root${INSTALL_DIR}chown-R${USER}:${USER}${INSTALL_DIR}/html${INSTALL_DIR}/logschmod755${INSTALL_DIR}-Rchmodx${INSTALL_DIR}/sbin/nginxechoexport PATH${INSTALL_DIR}/sbin:\$PATH/etc/bashrcsource/etc/bashrc# 9. 创建 PID 目录确保权限echo 创建 PID 目录 mkdir-p${INSTALL_DIR}/runchmod755${INSTALL_DIR}/runchownroot:root${INSTALL_DIR}/run# 10. 修改 Nginx 配置指定 PID优化默认配置echo 修改 Nginx 配置 sed-i/^#pid/a pid${INSTALL_DIR}/run/nginx.pid;${INSTALL_DIR}/conf/nginx.confsed-is/^#user nobody;/user${USER};/${INSTALL_DIR}/conf/nginx.conf# 11. 创建 systemd 服务文件进程防杀异常重启echo 创建 systemd 服务 cat/usr/lib/systemd/system/nginx.serviceEOF [Unit] Descriptionnginx - high performance web server Documentationhttp://nginx.org/en/docs/ Afternetwork-online.target remote-fs.target nss-lookup.target Wantsnetwork-online.target [Service] Typeforking PIDFile${INSTALL_DIR}/run/nginx.pid ExecStart${INSTALL_DIR}/sbin/nginx -c${INSTALL_DIR}/conf/nginx.conf ExecReload${INSTALL_DIR}/sbin/nginx -s reload ExecStop${INSTALL_DIR}/sbin/nginx -s stop # 资源限制全放开防止进程被杀 LimitNOFILE65535 LimitNPROC65535 LimitCOREinfinity MemoryLimitinfinity # 异常自动重启 Restarton-failure RestartSec3 [Install] WantedBymulti-user.target EOF# 12. 启动并设置开机自启echo 启动 Nginx systemctl daemon-reload# 清理残留进程pkill-9 nginx/dev/null21rm-f${INSTALL_DIR}/run/nginx.pid systemctl start nginx systemctlenablenginx/dev/null21# 13. 验证安装echo 验证安装 nginx -v systemctl is-active nginxnetstat-tnulp|grepnginxecho 安装完成 echoNginx 安装目录${INSTALL_DIR}echo配置文件路径${INSTALL_DIR}/conf/nginx.confecho默认网站目录${INSTALL_DIR}/htmlecho常用命令echo 启动systemctl start nginxecho 重启systemctl restart nginxecho 状态systemctl status nginxecho 重载配置systemctl reload nginx5.3 脚本使用说明1赋予脚本执行权限执行命令Ubuntuchmod x nginx_install_ubuntu.sh执行命令Rockychmod x nginx_install_rocky.sh命令解释chmod x赋予脚本可执行权限。2运行脚本执行命令Ubuntu./nginx_install_ubuntu.sh执行命令Rocky./nginx_install_rocky.sh命令解释执行脚本自动完成 Nginx 源码编译安装的全部步骤。5.4 关键优化说明仅针对Rocky 9版本内存兜底自动创建2G交换分区解决小内存服务器OOM杀死Nginx进程问题且交换分区永久生效源码下载容错官方源失败时自动切换腾讯云镜像避免404错误进程防杀放宽systemd资源限制增加异常自动重启机制杜绝进程被系统杀死权限兜底精细化分配目录权限master进程以root运行解决端口/PID权限问题worker进程以nginx用户运行符合安全规范SELinux兼容临时关闭SELinux避免拦截安装完成后可根据生产需求手动开启并配置规则。Ubuntu版本完全保留原始内容仅Rocky 9版本基于实际运行问题做了针对性优化确保纯净系统下100%安装成功。Ubuntu成功截图Rocky成功运行截图3验证结果执行命令nginx -V执行命令systemctl status nginx执行命令netstat -tnulp | grep nginx命令解释分别验证 Nginx 版本、服务状态、端口监听。六、Nginx 常用命令命令作用详细解释nginx -v查看版本简洁版仅显示 Nginx 的版本号nginx -V查看版本及编译参数详细版显示版本号和./configure时指定的所有参数nginx -t检查配置文件语法验证配置文件是否有语法错误启动前必做nginx -s reload重载配置文件不中断服务发送HUP信号Nginx 重新加载配置并平滑重启nginx -s stop强制停止服务发送TERM信号立即终止所有进程nginx -s quit优雅停止服务发送QUIT信号处理完现有连接后退出
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

深圳网站定制 开发东莞做网络推广的公司

10分钟玩转Venera:零基础漫画阅读完美避坑指南 【免费下载链接】venera A comic app 项目地址: https://gitcode.com/gh_mirrors/ve/venera 还在为找不到好用的漫画阅读器而烦恼吗?Venera漫画阅读器作为一款开源的跨平台应用,能够完美…

张小明 2026/1/16 6:36:47 网站建设

启航做网站好吗软件下载网站排行榜

在Linux系统中,尤其是Ubuntu发行版,GCC编译器是开发C/C程序的基石工具。无论你是刚接触Linux编程入门的新手,还是希望系统掌握GCC安装与使用技巧的开发者,本教程都将为你提供清晰、详细的步骤指导。 什么是GCC? GCC&…

张小明 2026/1/16 15:42:52 网站建设

做网站宽度和长度布局专业的网站建设流程

Navicat Premium试用期重置终极指南:快速解决14天限制问题 【免费下载链接】navicat_reset_mac navicat16 mac版无限重置试用期脚本 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 还在为Navicat Premium试用期结束而烦恼吗?这…

张小明 2026/1/16 12:59:12 网站建设

wordpress主题文章列表北京网站优化哪家公司好

基于Dify的AI应用原型设计到产品上线全过程演示 在企业纷纷拥抱大模型的今天,一个现实问题摆在面前:为什么拥有顶尖模型能力的公司,依然难以快速推出可用的AI产品?答案往往不在于模型本身,而在于从“能说”到“能用”之…

张小明 2026/1/9 19:50:38 网站建设

夸克建站系统源码下载百度关键词规划师工具

第一章:云原生Agent与Docker服务发现的隐秘关联在云原生架构中,动态服务发现是实现弹性伸缩和高可用的关键能力。Docker容器的生命周期短暂且频繁变动,传统静态配置难以应对服务实例的快速变更。此时,云原生Agent作为运行在每个主…

张小明 2026/1/16 10:29:51 网站建设

北京网站制作公司公司体育彩票网站开发该做哪些步骤

打造虚拟串口“局域网”:用软件模拟百个COM端口的工业通信沙箱 你有没有遇到过这样的场景——项目要测试一个能接32台Modbus设备的串口服务器,但手头连8块开发板都凑不齐?又或者,你在写PLC通信程序时,总得等硬件到位才…

张小明 2026/1/15 11:08:25 网站建设