部署 --- Nginx

Posted tmmm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了部署 --- Nginx相关的知识,希望对你有一定的参考价值。

nginx

  django中自带开发者服务器runserver。功能健壮,但性能是比较低的,仅适用于开发

    • 路由处理功能,动态资源处理
    • 如果是在debug模式的话,提供了静态资源处理功能

  在真实部署中不会使用像django中runserver那样的单一服务器。而是使用:

    • Apache

    • Nginx

      • HTTP服务器:直接处理静态资源

      • 反向代理:uWSGI(HTTP服务器)、gunicorn(HTTP服务器)

      • 邮件服务器

      • 流媒体服务器 


Nginx简介:

 Nginx是由伊戈尔.塞索耶夫开发的,于2004年10月4日公开源码,以类BSD许可证形式发布,因它的稳定性,丰富的功能,示例配置文件和低系统资源的消耗而闻名。

 Nginx是一款高性能的HTTP和反向代理服务器,一个IMAP/POP3/SMTP服务器,也是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,

  • 特点:占用内存少,并发能力强,在同类型的网页服务器中表现优秀。反向代理、负载均衡。默认单台连接数5万
  • 官网:http://nginx.org/
  • 中文:http://www.nginx.cn/doc/index.htmlhttp://tengine.taobao.org/book/
  • 优点
    • 作为We服务器:相比Apache,Nginx使用资源更少,支持更多的并发连接,体现更高的效率,使Nginx倍受欢迎,能够支持高达50000个并发连接数的响应
    • 作为负载均衡服务器:Nginx既可以在内部直接支持Redis和php,也可以支持作为HTTP代理服务器对外进行服务,
    • Nginx使用C编写,不论是系统资源开销还是CPU使用效率都处理的非常优秀
    • Nginx安装非常简单,配置文件非常简洁,Bug非常少:Nginx启动非常容易,并且几乎可以做到7 * 24小时不间断运行,即使运行数个月也不需要重新启动 

Ngins安装:Nginx安装主要有两种方式。Ubuntu环境下

  • 源码安装
    • 下载源码压缩包
    • 安装源码编译依赖包 gcc,zlib,make...
    • 配置编译模块
    • make && make test 
    • make install
  • 包管理工具安装
    • 去官网将所使用依赖添加到包管理工具中
    • 更新包管理工具资源
    • 使用包管理工具安装
  • 安装步骤:http://www.nginx.cn/doc/index.html参考
    • 下载公钥: 
      • mkdir pgp_key
      • wget http://nginx.org/keys/nginx_signing.key
    • 添加元信息
      • sudo vim /etc/apt/sources.list 中末行添加如下两行信息
      • deb http://nginx.org/packages/ubuntu/ xenial nginx   # (xenial对应系统版本号)
      • deb-src http://nginx.org/packages/ubuntu/ xenial nginx
    • 更新缓存
      • sudo apt update
    • 添加钥匙信息
      • sudo apt-key add nginx_signing_key
    • 安装nginx 
      • sudo apt install nginx

控制Nginx:

  • 启动nginx:
    • sudo nginx
    • nginx启动后,会有两个进程:master process(主进程) 和 worker process(工作从进程)
    • 杀死从进程后,主进程会自动分配一个新的从进程。
    • 杀死主进程后,如果从进程没有工作任务,会和主进程一起杀死
  • 查看nginx信息:
    • ps -ef | grep nginx (查看nginx进程状态)
    • nginx -v  (显示nginx的版本信息)
    • nginx -V  (显示nginx构建过程中的所有参数配置)
  • 控制nginx:nginx -s signal
    • sudo nginx -s stop:快速关闭
    • sudo nginx -s quit:优雅关闭[推荐使用]
    • sudo nginx -s reload:重新加载配置
  • 通过系统命令控制nginx
    • systemctl status nginx:查看nginx状态
    • systemctl start nginx:启动nginx服务
    • systemctl stop nginx:关闭nginx服务
    • systemctl enable nginx:设置开机自启
    • systemctl disable nginx:禁止开机自启
    • 不建议使用,nginx会加载配置文件,这种方式不能控制配置文件,容易出现未知错误

Nginx配置文件

  Nginx配置文件包含指定指令控制的模块。指令分为简单指令和块指令。

  一个简单指令由名称和参数组成,以空格分隔,并以分号结尾

  一个块指令和简单指令具有相同的结构,但不是以分号结束,而是以一个大括号包围的一堆附 加指令结束。

  如果一个大括号内可以有其他的指令,它就被称为一个上下文,比如(events,http,server,location)

  • 指令
    • nginx -t:不运行,仅测试配置文件
    • nginx -c configpath 从指定路径加载配置文件
    • nginx -t -c configpath 测试指定配置文件

以上是关于部署 --- Nginx的主要内容,如果未能解决你的问题,请参考以下文章

如何将vue工程部署到nginx下

vue部署到nginx

Thinkphp5项目在nginx服务器部署

linux下安装nginx部署多个前端项目

mac docker 部署nginx

uniapp h5项目用nginx部署需要的配置