2023/3/1 星期三
由于之前的自己的博客用了可视化的后台管理系统,所以一直没有系统的学习过nginx,准备最近抽时间把nginx好好学习一下
nginx是一个由俄罗斯人用c语言编写的开源的高性能的服务器引擎(web server),有些人也将服务器引擎称为中间件,同时也是一个支持多种协议的代理服务器,我们最常用到的功能除了他的引擎功能外还有反向代理和负载均衡。nginx还具有低内存、高并发、高可靠、高扩展的特点。
正向代理的客户端通过中间代理访问服务器不同,反向代理是指当客户端将请求发送给中间代理的时候,中间代理会将请求选择性的交给不同的服务器。这样做的好处有很多,负载均衡也是基于这个技术实现的。
负载均衡是当客户端有大量请求时,nginx按照预设好的规则将不同的请求发送到不同服务器以减轻各服务器的压力的功能。
nginx的安装主要有两种,使用包管理工具一键安装和下载源码编译安装,我们一般选择直接使用包管理工具
centos系列使用:
sudo yum install nginx
debain系列使用:
sudo apt install nginx
源码编译安装方式比较复杂,需要到官网下载源码,在系统上安装c语言编译环境和nginx所使用的库,再在运行./configure时指定需要配置的参数,官网有对应的教程这里就不再做过多赘述了
nginx有以下命令
nginx -v
显示版本信息nginx -V
显示详细版本信息nginx -t
测试ngixn.conf文件是否有语法错误nginx -T
测试ngixn.conf文件是否有语法错误,并显示文件内容nginx -c [文件]
指定启动时的配置文件nginx -g [文件]
修改配置文件的补充文件nginx -s [参数]
参数 | 作用 |
---|---|
stop | 直接停止nginx服务 |
quit | 安全退出nginx服务 |
relaod | 重新加载nginx配置文件 |
reopen | 不中断服务的重启nginx |
nginx中最核心最常用的文件就是nginx.conf了,我们先来学习一下nginx.conf文的文件结构。默认的nginx.conf文件会在/usr/nginx/conf/
目录下面。在nginx.conf文件一般可以分为三部分:被http包裹的http块、被events包裹的events块、http和event外的全局块。
全局块具有以下命令:
user [用户名] [所属组]
master_process [on/off]
worker_process [数字/auto]
daemon [on/off]
pid [路径]
include [文件]
accept_mutex [on/off]
multi_accept [on/off]
worker_connections [数字]
use [方法]
default_type [mimetype]
access_log [路径] [格式名]
log_format [名称] [格式]
send_file [on/off]
keepalive_timeout [时间]
keepalive_request [次数]
server块是http块中最重要的部分,有很多非常重要的指令
listen [端口号]
server_name [域名/ip]
error_page [状态码] [页面文件]
location [位置]{ location块中的命令 }
root [目录]
和index [页面文件]
,root用于指定当前location块访问的资源所在的目录,index用于指定访问位置的默认页面文件