Ubuntu环境下安装部署Nginx并设置自启动过程
通过wget下载安装包的方式部署nginx
1. 下载nginx相关依赖包
sudo apt-get install gcc
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install zlib1g zlib1g-dev
sudo sudo apt-get install openssl
sudo apt-get install libssl-dev2. 进入想下载安装包位置
cd /usr/local
3.通过wget下载nginx安装包
sudo wget https://nginx.org/download/nginx-1.24.0.tar.gz
##需要什么版本的就改成自己想要的版本就行
4. 解压nginx的安装包
sudo tar -zvxf nginx-1.24.0.tar.gz
#对应所下载的版本
5.进入解压好的nginx文件夹里面
cd nginx-1.24.0
6. 配置自己所需要的模块
sudo ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
解释:
./configure
- 这条命令用于配置 Nginx 的编译选项。
- 在运行 make 和 make install 之前,需要先运行 ./configure 来定义 Nginx 的安装路径和需要包含的模块。
--prefix=/usr/local/nginx
- 这个选项指定 Nginx 的安装目录为 /usr/local/nginx。
- 编译完成后,Nginx 的二进制文件、配置文件、日志文件等都会被安装在这个目录中。
--with-http_stub_status_module
- 这个选项启用 http_stub_status_module 模块。
- 该模块提供一个简易接口,展示当前 Nginx 的一些统计信息,如活动连接数、已处理的请求数等。
- 这个功能常用于监控和调试。
--with-http_ssl_module
- 这个选项启用 http_ssl_module 模块。
- 该模块允许 Nginx 支持 SSL/TLS,用于安全的 HTTPS 连接。
- 这个模块是必须的,如果你打算使用 HTTPS 来保护你的网站或应用。
7. 编译
sudo make
8. 安装
sudo make install
启动命令:
打开文件夹
cd /usr/local/nginx/sbin #打开文件夹 sudo ./nginx #启动nginx sudo ./nginx -s stop # 强制停止 Nginx sudo ./nginx -s quit # 优雅停止 Nginx,会等待所有请求处理完成后再关闭 sudo ./nginx -s reload # 重新加载 Nginx 配置,而不会中断现有的连接 sudo ./nginx -t # 检查配置文件是否有语法错误 sudo ./nginx -v # 显示 Nginx 的版本号
使用 systemctl 管理 Nginx
如果需要使用systemctl管理nginx就先停止nginx
sudo ./nginx -s stop
1.创建或编辑 nginx.service 文件:
sudo nano /etc/systemd/system/nginx.service
nginx.service 配置文件内容: 复制内容粘贴
[Unit] Description=A high performance web server and a reverse proxy server After=network.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target
保存方法退出方法:CTRL + X 然后会提示你是否确认保存 按Y 然后回车就行了。
2.重新加载 systemd 守护进程:
sudo systemctl daemon-reload
3. 启用并启动 Nginx 服务:
sudo systemctl enable nginx # 设置开机自启动 sudo systemctl start nginx # 启动 Nginx 服务
systemctl操作nginx命令:
sudo systemctl start nginx #启动 Nginx sudo systemctl stop nginx #停止 Nginx sudo systemctl restart nginx #重启 Nginx sudo systemctl reload nginx #重新加载配置 sudo systemctl status nginx #检查 Nginx 状态
报错解决方式:
如果运行 sudo systemctl start nginx启动命令报错的话
错误提示:
ubuntu@ip-ubuntu:/usr/local/nginx/sbin$ sudo systemctl start nginx
Job for nginx.service failed because a timeout was exceeded.
See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
这个可能就是 /run/nginx.pid 这个文件没有创建权限可以把配置文件改为
运行命令:
sudo nano /etc/systemd/system/nginx.service
[Unit] Description=A high performance web server and a reverse proxy server After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target
保存方法退出方法:CTRL + X 然后会提示你是否确认保存 按Y 然后回车就行了。
重新加载下 sudo systemctl daemon-reload 然后启动就行了
配置文件解析
nginx.service 文件名 [Unit] Description=A high performance web server and a reverse proxy server After=network.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target
说明
- Description:对服务的描述信息。
- After=network.target:确保网络启动后才启动 Nginx。
- Type=forking:指明 Nginx 采用的是
forking模式(启动时会创建一个主进程和多个子进程)。 - PIDFile=/run/nginx.pid:指定 Nginx 进程的 PID 文件路径。如果你的系统使用不同的 PID 路径,请调整该行。
- ExecStartPre:在启动 Nginx 前验证配置文件是否正确。
- ExecStart:启动 Nginx 服务。
- ExecReload:重新加载配置而不中断服务。
- ExecStop:停止 Nginx 服务。
- WantedBy=multi-user.target:指明服务应该在多用户模式下启动。
如果 Nginx 安装路径不同
- 如果你的 Nginx 可执行文件不在 /usr/local/nginx/sbin
/nginx,请根据实际路径修改ExecStartPre、ExecStart和ExecReload的值。 - 你可以使用
which nginx命令查找 Nginx 的安装路径。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
nginx proxy_set_header设置自定义header的实现步骤
在Nginx中,使用 proxy_set_header指令可以自定义header并在反向代理时传递到后端服务器,本文就来详细的介绍一下,具有一定的参考价值,感兴趣的可以了解一下2024-05-05


最新评论