论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
云原生
›
Nginx 的安装、启动和关闭
Nginx 的安装、启动和关闭
风雨同行
金牌会员
|
2024-6-7 19:34:48
|
显示全部楼层
|
阅读模式
楼主
主题
647
|
帖子
647
|
积分
1941
一、背景说明
最近想自己开发一些小玩意,所以在腾讯云买了个云服务器,选择镜像时放弃了宝塔Linux面板,而是选择了 Ubuntu18 的镜像。
现在想搭建自己的网站,选择了 Nginx 作为 Web服务器。那么如何在 Ubuntu18 系统中安装 Nginx 呢?所以就有了本文的诞生。
二、Nginx 的安装
2.1、依赖的安装
Nngix 的依赖有:
gcc
openssl, openssl-devel
pcre,pcre-devel
zlib,zlib-devel
依赖的安装命令:
apt install gcc openssl pcre pcre-devel zlib zlib-devel;
复制代码
但是提示从pcre往后的包都找不到。有人说Ubuntu中没有这些包。
依赖的安装命令2:
# 如果是非root账户,需要使用sudo apt install命令
apt install gcc openssl libpcre3 libpcre3-dev libssl-dev;
复制代码
2.2、Nginx 安装
使用 rz 命令将 nginx 和 zlib 的安装包上传到服务器。
# 打开上传文件选择框
sudo rz -y;
复制代码
此时,文件默认上传到 home 目录。
注:如果rz后出现乱码 => 请戳这里
解压文件
# 解压nginx安装包,会在home目录生成`nginx-1.20.2`目录
sudo tar zxvf nginx-1.20.2.tar.gz;
# 解压 zlib 安装包
sudo tar zxvf zlib-1.2.11.tar.gz;
复制代码
执行配置
# 进入nginx-1.20.2目录
cd nginx-1.20.2/;
# 执行配置文件
# 执行完后,/usr/local/下还没有生成nginx目录
./configure --prefix=/usr/local/nginx --with-zlib=../zlib-1.2.11/;
复制代码
这段命令的意思:
--prefix:指定nginx安装的目录
--with-zlib:指定从哪里读取zlib的源码(解压后的目录)
安装nginx
# 仍在 ~/nginx-1.20.2/下
make;
# 生成了/usr/local/nginx目录
# 需要root权限,否则上述目录无法创建
sudo make install;
复制代码
2.3、验证安装
cd到/usr/local目录,如果nginx目录已经生成,则表示安装成功。如下图:
三、启动 Nginx
有两种启动方式:
普通启动
通过配置启动
3.1、普通启动
进入Nginx的安装目录(即/usr/local/nginx),有一个sbin目录。
普通启动就是运行sbin目录下的nginx文件。
启动命令如下
:
cd /usr/local/nginx/sbin;
sudo ./nginx;
# 或者
cd /usr/local/nginx/sbin & sudo ./nginx;
复制代码
3.2、如何判断nginx已启动
(1)再次启动nginx
如果nginx已经启动,则再次启动会报如下错误:
cd /usr/local/nginx/sbin & sudo ./nginx;
[1] 7954
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
[1]+ Done cd /usr/local/nginx/sbin
复制代码
(2)还可通过查看进程,判断nginx是否启动:
ps -ef|grep nginx;
复制代码
nginx的进程信息如下:
(3)直接访问部署nginx的机器的ip地址
3.3、通过配置启动
该启动方法的命令如下:
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf;
复制代码
3.4、设置开机启动
命令如下:
# 打开/etc/rc.d/rc.local文件
vim /etc/rc.d/rc.local;
复制代码
在文件末尾追加如下内容:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 2>&1
复制代码
重启系统,检查nginx是否随系统启动。
四、关闭 Nginx
4.1、优雅地关闭
sudo kill -QUIT $主进程id;
复制代码
优雅地关闭之所以称为优雅,是因为如果关闭时还有用户请求,会等所有的用户请求都处理完,才进行关闭。
4.2、快速关闭
sudo kill -TERM $主进程id;
# or
sudo kill $主进程id;
复制代码
注:kill 不加参数,也是快速关闭。
4.3、只关闭主进程
sudo kill -9 $主进程id;
复制代码
如:kill -9 7720
上图可以看出:通过这种方式关闭ngin的主进程,子进程还是存活的。
通过ps命令,可以获得主进程的id。
4.4、使用nginx关闭服务
sudo /usr/local/nginx/sbin/nginx -s stop;
复制代码
五、重启 Nginx
使用下面的命令,可以对 Nginx 进行重启:
cd /usr/local/nginx/sbin/ && sudo ./nginx -s reload;
复制代码
该命令会新建一个进程处理新的请求。同时通知老的进程,处理已经响应的请求,然后优雅地退出。
六、问题
6.1、Nginx 从哪里下载?
答:进入 Nginx的下载页:
https://nginx.org/en/download.html
我选择的版本是:nginx-1.20.2 的Linux版本。
6.2、如果没有rz如何安装?
答:我使用的云服务器是有这个命令的,如果自己的系统没有,可以通过下面的命令安装:
sudo apt install lrzsz;
复制代码
6.3、如果没有 make如何安装?
答:和上面的命令类似:
sudo apt install make;
复制代码
6.4、zlib 从哪里下载?
答:zlib的下载地址:
http://zlib.net/
我选的是tar.gz格式的文件:
6.5、使用 rz命令上传 nginx 安装包为什么会报错?
答:上传文件后,会出现莫名的字符。报错信息如下:
[code]rz -y
## 结果输出
rz: nginx-1.20.2.tar.gz removed. ubuntu@VM-(reverse-i-search)`': q$ZGÿZU͇^C k^C
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
风雨同行
金牌会员
这个人很懒什么都没写!
楼主热帖
深入Python网络编程:从基础到实践 ...
MySQL锁(乐观锁、悲观锁、多粒度锁) ...
HTML+CSS+JS——动漫风二次元论坛(2页) ...
我的第二次博客作业
【numpy基础】--广播计算
【Spring基础补充】 注解补充(二) ...
中职网络安全技能大赛SSH弱口令渗透测 ...
互联网技术大佬独立博客推荐 ...
转载自ChatGPT:Python关键字 asynico ...
多道技术与进程理论
标签云
挺好的
服务器
快速回复
返回顶部
返回列表