一文读懂Nginx应用之 CentOS安装部署Nginx服务

目录

一、Nginx概述

(一)、Nginx安装目录简介

1、conf目录

2、html目录

3、sbin目录

4、log目录

(二)、Nginx配置文件简介

1、配置文件目录结构

2、主配置文件nginx.conf

(1)、main全局模块

(2)、events模块

(3)、http模块

(4)、server模块

(5)、location模块

(6)、upstream模块

(7)、stream模块

二、Nginx安装部署

(一)、环境规划

(二)、安装部署

1、下载Nginx源码包

2、创建Nginx用户

3、编译安装Nginx

(1)、解压Nginx源码包

(2)、编译配置Nginx安装参数

(3)、编译Nginx

(4)、安装Nginx

(三)、启动Nginx应用程序

(四)、常用命令

1、启动Nginx服务

2、停止Nginx服务

3、验证Nginx服务配置文件是否正确

4、热加载配置文件

5、重新打开日志文件

6、显示Nginx服务版本信息及编译配置参数

7、查看Nginx服务命令帮助信息

三、Nginx注册系统服务(可选)

(一)、创建nginx.service文件

(二)、注册Nginx服务并设置开机自动启动Nginx服务

(三)、启动Nginx服务

(四)、关闭Nginx服务

(五)、热加载Nginx服务配置文件


一、Nginx概述

        Nginx是一个高性能的Web服务器软件,不仅提供Web服务器的功能,还实现了诸如访问路由、正向/反向代理、负载均衡、内容缓存、可编程等应用特性,使得Nginx成为互联网上最受欢迎的开源软件之一。

        官方有Nginx开源版本和Nginx Plus商业版本,开源版本是使用最多的版本,商业版本除了具有开源版本的全部功能外,还提供了一些企业级功能。而国内流行的Nginx主要有两个开源版本,一是由淘宝网技术团队维护的分支版本 Tengine 项目;二是由章亦春发起的扩展版本 OpenResty 项目。

        本文及后续系列文章,均使用Nginx官方开源版本。

(一)、Nginx安装目录简介

Nginx默认编译安装后,安装路径为/usr/local/nginx/,下面介绍该路径下几个主要的默认子目录。

1、conf目录

        该目录下保存Nginx服务所有的配置文件,其中nginx.conf是最核心最主要的配置文件,其他.conf后缀的配置文件则是用来配置Nginx相关的功能的。例如配置fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件。每个配置文件一般都有个样例配置文件,以.default结尾,使用时复制并将.default去掉即可。

2、html目录

        该目录下保存Nginx服务的web文件,但是可以更改为其他目录保存web文件。默认有两个web文件50x.html和index.html,50x.html文件是默认的错误提示页面,index.html文件是默认的主页面。

3、sbin目录

该目录下保存Nginx服务的二进制脚本,可以接受不同的参数以实现Nginx服务启动、关闭等功能。

4、log目录

        该目录用来保存Nginx服务的访问日志和错误日志等,访问日志文件为access.log,错误日志文件为error.log。log目录可以根据实际需求配置在其他路径,比如/var/log/nginx里面。

(二)、Nginx配置文件简介

        

        Nginx默认编译安装后,配置文件都会保存在/usr/local/nginx/conf目录下。Nginx默认的主配置文件是nginx.conf,这也是Nginx唯一的默认配置文件入口。

1、配置文件目录结构

/usr/local/nginx/conf配置文件目录结构如下:

其中,以“.default”为扩展名的文件是Nginx配置文件的配置样例文件。

  • nginx.conf:Nginx默认配置文件,也是唯一的配置文件入口。
  • fastcgi_params:Nginx在配置FastCGI代理服务时会根据 fastcgi_params文件的配置向FastCGI服务器传递变量,该配置文件现已由fastcgi.conf代替。
  • fastcgi.conf:为了规范配置指令 SCRIPT_FILENAME的用法,引人FastCGI变量传递配置。
  • mime.types:MIME类型映射表,Nginx会根据服务端文件后缀名在映射关系中获取所属文件类型,将文件类型添加到HTTP消息头字段“Content-Type”中。
  • scgi_params:Nginx在配置SCGI代理服务时会根据scgi_params文件的配置向SCGI服务器传递变量。
  • uwsgi _params:Nginx在配置uWSGI代理服务时会根据uwsgi_params文件的配置向uWSGI服务器传递变量。
  • koi-utf、koi-win、win-utf:这3个文件是KOI8-R编码转换的映射文件,因为Nginx的作者是俄罗斯人,在Unicode流行之前,KOI8-R是使用最为广泛的俄语编码。

2、主配置文件nginx.conf

        Nginx默认的主配置文件是nginx.conf,这也是Nginx唯一的默认配置文件入口。nginx.conf文件主要由不同的功能模块组成,下面将简单介绍其中的核心模块。

nginx.conf配置文件主要结构如下:

(1)、main全局模块

Nginx的根区域,该区域的配置全局有效。nginx.conf的整个文件内容都配置在该区域中。

主要配置项如下:

  • user:用来指定nginx worker进程运行用户以及用户组,默认nobody账号运行。
  • worker_processes:指定Nginx服务要开启的子进程数量,通常数量是CPU内核数量的整数倍。
  • error_log:定义错误日志文件的位置以及日志输出级别(debug/info/notice/warn/error/crit)
  • pid:用来指定Nginx进程id存储文件的位置。

(2)、events模块

        events模块主要是Nginx事件相关的配置,主要影响Nginx服务与用户的网络连接。比如是否允许同时接受多个网络连接,使用哪种事件驱动模型处理请求,每个工作进程可以同时支持的最大连接数等。

主要配置项如下:

  • worker_connections:指定最大可以同时接收的连接数量,这里一定要注意,最大连接数量是和worker_processes共同决定的。
  • multi_accept:配置指定nginx在收到一个新连接通知后尽可能多的接受更多的连接
  • use epoll:配置指定了线程轮询的方法,如果是linux2.6+,使用epoll,如果是BSD如Mac请使用Kqueue

(3)、http模块

        

        http模块是Nginx服务配置最核心的模块,配置项较多,缓存、代理和日志格式定义等绝大多数功能和第三方模块都可以在这里根据实际需求进行配置。http模块可以包含多个server模块,而一个server模块中又可以包含多个location模块。

(4)、server模块

        

        server模块是http模块中的一个子模块,用来配置一个虚拟主机。在server模块中可以定义虚拟主机监听端口、虚拟主机名称、访问日志文件等内容。一个http模块中可以包含多个server模块,即可以定义多个虚拟主机。同时每个server模块中也可以包含多个location模块。

(5)、location模块

        location模块主要用于对用户URI进行访问路由处理的配置。location模块基于Nginx接受到的请求字符串,对用户请求的URI进行匹配,并对特定的指令进行处理,包括地址重定向、数据缓存、应答控制、反向代理、负载均衡等功能都是在这部分实现。另外很多第三方模块的配置也是在location模块中配置。location模块是server模块的子模块,一个server模块可以同

在进行Flask Web应用部署时,理解如何设置和管理virtualenv虚拟环境是至关重要的。这里我们将详细介绍如何在CentOS系统上创建一个隔离的Python环境,安装必要的依赖,并配置Nginx和uWSGI来支持Web应用的运行。 参考资源链接:[CentOS 7部署Flask Web项目:环境配置与流程详解](https://wenku.youkuaiyun.com/doc/6o1sfvfo8q?spm=1055.2569.3001.10343) 首先,打开终端并输入以下命令来安装virtualenv工具: ```bash sudo yum install -y python-pip sudo pip install virtualenv ``` 安装完成后,选择一个目录用于存放你的Flask应用,并创建一个virtualenv环境: ```bash mkdir myproject cd myproject virtualenv venv ``` 激活你的virtualenv环境: ```bash source venv/bin/activate ``` 在激活的环境中,使用pip安装Flask以及其他可能需要的库: ```bash pip install Flask ``` 接下来,安装Nginx和uWSGI: ```bash sudo yum install -y nginx sudo pip install uwsgi ``` 创建一个uWSGI配置文件`myproject.ini`: ```ini [uwsgi] module = myproject:app master = true processes = 5 socket = myproject.sock chmod-socket = 660 vacuum = true die-on-term = true ``` 在`/etc/nginx/conf.d/`目录下创建一个Nginx配置文件`myproject.conf`: ```nginx server { listen 80; server_***; charset utf-8; location / { include uwsgi_params; uwsgi_pass unix:///path/to/myproject.sock; } } ``` 确保Nginx配置正确后,重启Nginx服务: ```bash sudo systemctl restart nginx ``` 最后,启动uWSGI服务: ```bash uwsgi --ini myproject.ini ``` 至此,你的Flask应用应该可以通过Nginx代理访问了。不过,在实际部署中,还需要确保配置文件的路径、权限设置正确,以及防火墙规则允许对应的端口通信。 关于单元测试,建议在开发过程中使用Python的unittest或pytest框架来编写测试用例,确保应用的各个功能组件按预期工作。 更多关于如何进行环境安装、配置和测试的详细信息,推荐参考《CentOS 7部署Flask Web项目:环境配置与流程详解》一文,该文提供了更加深入的部署流程和解决方案,能够帮助你在实际项目中更加得心应手。 参考资源链接:[CentOS 7部署Flask Web项目:环境配置与流程详解](https://wenku.youkuaiyun.com/doc/6o1sfvfo8q?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野熊佩骑

您的鼓励是我持续创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值