ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

nginx源码安装

2026/9/3 11:08:11 拓冰建站 浏览量
nginx源码安装 1、官方地址nginx下载安装包2、安装wget http://nginx.org/download/nginx-1.24.0.tar.gz tar -zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0配置Nginx在编译之前需要运行./configure来配置Nginx的编译选项。你可以根据需求选择不同的模块和配置选项。以下是一个常见的配置示例./configure \ --prefix/usr/local/nginx \ --sbin-path/usr/local/nginx/sbin/nginx \ --conf-path/usr/local/nginx/conf/nginx.conf \ --error-log-path/usr/local/nginx/logs/error.log \ --http-log-path/usr/local/nginx/logs/access.log \ --pid-path/usr/local/nginx/logs/nginx.pid \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_gzip_static_module \ --with-http_stub_status_module \ --with-pcre \ --with-file-aio \ --with-threads参数说明--prefix指定Nginx的安装目录。--with-http_ssl_module启用SSL支持。--with-http_v2_module启用HTTP/2支持。--with-http_gzip_static_module启用静态文件Gzip压缩。--with-http_stub_status_module启用状态页面模块用于监控。--with-pcre启用正则表达式支持。--with-file-aio和--with-threads启用异步I/O和线程支持。编译并安装运行以下命令编译并安装Nginxmake sudo make install3、设置Nginx为服务为了方便管理可以将Nginx设置为系统服务。以下是一个systemd服务文件的示例创建服务文件/etc/systemd/system/nginx.service[Unit] DescriptionThe NGINX HTTP and reverse proxy server Afternetwork.target remote-fs.target nss-lookup.target [Service] Typeforking 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 stop [Install] WantedBymulti-user.target然后运行以下命令启用服务sudo systemctl daemon-reload sudo systemctl enable nginx sudo systemctl start nginxnginx.service配置信息[Unit]部分这部分定义了服务的基本信息和依赖关系。Description:含义服务的描述信息。示例DescriptionThe NGINX HTTP and reverse proxy server解释这里简单描述了这个服务是“Nginx HTTP和反向代理服务器”用于在systemctl status等命令中显示服务的说明。After:含义指定该服务在哪些目标target之后启动。示例Afternetwork.target remote-fs.target nss-lookup.target解释network.target表示在启动网络服务之后启动。remote-fs.target表示在远程文件系统挂载完成之后启动。nss-lookup.target表示在DNS解析服务可用之后启动。这些依赖关系确保Nginx在依赖的服务启动之后再启动避免因依赖服务未就绪而导致启动失败。[Service]部分这部分定义了服务的运行参数和行为。Type:含义指定服务的启动类型。示例Typeforking解释forking表示Nginx会在启动时创建一个子进程而主进程会退出。这是Nginx的典型启动方式。PIDFile:含义指定Nginx主进程的PID文件路径。示例PIDFile/usr/local/nginx/logs/nginx.pid解释systemd通过这个文件来跟踪Nginx的主进程ID。ExecStartPre:含义在启动服务之前执行的命令。示例ExecStartPre/usr/local/nginx/sbin/nginx -t解释运行nginx -t命令用于检查Nginx配置文件是否正确。如果配置文件有错误服务将不会启动。ExecStart:含义启动服务时执行的命令。示例ExecStart/usr/local/nginx/sbin/nginx解释运行Nginx的启动命令。ExecReload:含义重新加载服务配置时执行的命令。示例ExecReload/usr/local/nginx/sbin/nginx -s reload解释运行nginx -s reload命令用于重新加载Nginx的配置文件而不中断现有连接。ExecStop:含义停止服务时执行的命令。示例ExecStop/usr/local/nginx/sbin/nginx -s stop解释运行nginx -s stop命令用于停止Nginx服务。[Install]部分这部分定义了服务的安装和启动目标。WantedBy:含义指定该服务在哪个运行级别target下被启动。示例WantedBymulti-user.target解释multi-user.target是多用户图形界面或命令行界面的运行级别。这意味着Nginx会在系统进入多用户目标时自动启动。通过这种方式Nginx可以像其他系统服务一样被统一管理例如启动systemctl start nginx停止systemctl stop nginx重启systemctl restart nginx查看状态systemctl status nginx4、防火墙配置sudo firewall-cmd --zonepublic --add-port80/tcp --permanent sudo firewall-cmd --zonepublic --add-port443/tcp --permanent sudo firewall-cmd --reload5、配置全局命令5.1 方案一创建软链接最常用无需改环境变量把二进制程序软链接到系统全局 bin 目录/usr/sbinln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx执行完成直接验证nginx -v nginx -t5.2 方案 2配置环境变量编辑全局 profile所有用户生效vim /etc/profile文件末尾追加把 nginx 的 sbin 目录加入 PATHexport PATH$PATH:/usr/local/nginx/sbin生效配置source /etc/profile