关于Nginx的思考和学习

144 阅读3分钟
本文已参与「新人创作礼」活动,一起开启掘金创作之路。
关于Nginx的思考和学习
Nginx简介

Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是, Nginx 是免费的并可以商业化,配置使用也比较简单。

特点
  1. 高并发、高性能
  2. 模块化架构使得它的扩展性非常好
  3. 异步非阻塞的事件驱动模型这点和 Node.js 相似
  4. 相对于其它服务器来说它可以连续几个月甚至更长而不需要重启服务器使得它具有高可靠性
  5. 热部署、平滑升级
  6. 开源
使用场景
  1. 静态资源服务,通过本地文件系统提供服务,比如直接访问vue打包好的index.html文件会出现白屏情况,使用Nginx部署后再访问可以解决这个问题
  2. 反向代理,包括缓存和负载均衡等情况,其中记忆深刻的是一台服务器上部署多个项目时,80端口被占用,并且想去掉网站域名后面的端口号,可以使用ngxin反向代理解决这个问题
  3. API服务
和Node.js进行对比

对于前端来说 Node.js 并不陌生, Nginx 和 Node.js 的很多理念类似, HTTP 服务器、事件驱动、异步非阻塞等,且 Nginx 的大部分功能使用 Node.js 也可以实现,但 Nginx 和 Node.js 并不冲突,都有自己擅长的领域。Nginx 擅长于底层服务器端资源的处理(静态资源处理转发、反向代理,负载均衡等), Node.js 更擅长上层具体业务逻辑的处理,两者可以完美组合。

Nginx的安装
  1. 使用yum在线安装nginx:yum install nginx -y
  2. 安装完成后,文件 /etc/nginx/nginx.conf 是nginx主配置文件,各种配置都在这里完成
常用命令
# 开机配置

# 开机配置
systemctl enable nginx # 开机自动启动
systemctl disable nginx # 关闭开机自动启动

# 启动Nginx
systemctl start nginx # 启动Nginx成功后,可以直接访问主机IP,此时会展示Nginx默认页面

# 停止Nginx
systemctl stop nginx

# 重启Nginx
systemctl restart nginx

# 重新加载Nginx
systemctl reload nginx

# 查看 Nginx 运行状态
systemctl status nginx

# 查看Nginx进程
ps -ef | grep nginx

# 杀死Nginx进程
kill -9 pid # 根据上面查看到的Nginx进程号,杀死Nginx进程,-9 表示强制结束进程
# nginx程序命令
nginx -s reload  # 向主进程发送信号,重新加载配置文件,热重启
nginx -s reopen  # 重启 Nginx
nginx -s stop    # 快速关闭
nginx -s quit    # 等待工作进程处理完成后关闭
nginx -T         # 查看当前 Nginx 最终的配置
nginx -t         # 检查配置是否有问题
对Nginx的更多思考和案例可以下载我总结的文档

文档百度网盘链接: 链接:pan.baidu.com/s/1-hJPsm31… 提取码:1u3e