学习《NGINX 经典教程》林静,刘旭峰,章澍,廖健雄,宗兆伟 ... 著
目录
一、Nginx优点
二、功能(应用场景)
反向代理。
负载均衡
静态缓存
Web服务器
安全和访问控制
三、nginx安装
四、启动、停止和重载nginx
五、配置文件
六、配置静态文件web服务器
反向代理运行于服务器端,代表服务器端接收来自客户端的请求,并将后端服务器给出的相应返回给客户端。通常回合其他核心功能联用,如跟负载均衡功能联用,可以实现带权重的请求转发以及限流和灰度发布。
背景:单台服务器的处理能力已经不能满足高并发环境下的相应要求。
Nginx 提供了针对HTTP、TCP和UDP的负载均衡,以及多种内置策略(如轮询、加权轮询、IP和cookie hash等),让用户能够根据自己业务的流量特点,按照特定的规则分流来自前端的请求。
Nginx的负载均衡同时也包含检查上游服务器状态的能力。
使用静态缓存把静态资源缓存下来。Nginx的静态缓存功能 有效减少了服务器在计算和传输静态资源时产生的性能消耗。静态资源包括动态页面中的静态部分、静态页面和资源文件等。
是nginx的基础功能。用户可以使用server配置块定义自己的web服务器,如监听IP端口、协议类型、SSL及网络传世行为;使用location配置块定义URL及请求发生时的响应逻辑。
常见场景
1.下载nginx源
rpm -Uvh
http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装
yum install -y nginx
安装成功
使用一下命令进行启动
systemctl start nginx //启动
Systemctl enable nginx //添加nbinx服务到开机启动
Ps -aux|grep nginx //查看进程状态
切换到nginx 目录下 cd /etc/nginx
查看目录下的文件
fastcgi* : 包含FastCGI相关参数的配置。
mime.types : 媒体类型的文件
nginx.conf : nginx默认的主配置文件
scgi_params : 包含SCGI相关参数的配置。
uwsgi_params : 包含uWSGI相关参数的配置
运行nginx可执行文件,即可启动nginx。
* nginx可执行文件可能并不在path环境变量中 如果不在,则需要使用一下命令将其添加到path变量中
export PATH=$PATH:/usr/local/nginx/sbin
启动nginx后,可以通过-s以发送信号的方式管理nginx进程
nginx -s signal
master进程接收以下信号
stop :立即退出
quit:优雅退出
reload 重载配置
reopen:重新打开日志文件
nginx进程结构:
nginx的进程空间由一个master进程和多个worker进程组成。
Master进程的主要职责是读取和评估配置,并维护worker进程。
Worker进程负责处理实际的请求。Worker进程的数量可以在配置文件中自定义,也可以使用默认值,即可用的CPU内核数。
执行ps -ax | frep nginx命令可以查看nginx的所有进程
Nginx -h 命令可以查看nginx所有参数组成的列表
其中
-p : 用于指定使用的根目录。我们默认使用的根目录是在编译时指定的。可以将nginx安装目录复制到别处,并使用-p参数重新指定跟目录。
-c:用于指定配置文件,这个参数只是改变配置文件,而不改变根目录。
-g:用于将全局快配置放置在命令行中。当配置文件和命令行同时出现相同的配置项时,命令行优先,它会覆盖配置文件中对应的配置项。这个参数可以方便我们临时改变nginx全局配置,如worker_processes、user、error_log等。
配置文件为静态配置。内部各配置块的先后顺序没有要求。
#全局配置:放置全局配置指令,例如nginx服务的用户组、nginx进程的PID路径、日志路径、配置文件的索引和worker进程数等
#events块配置:nginx采用异步非阻塞的时间驱动机制,在events配置快中可以定义每个#worker进程的最大连接数、驱动模型等
#http块配置:定义http协议的处理行为,内部可以嵌套多个server块,配置发多数模块(代理缓存等)的功能
#server块配置:定义web服务器的相关参数,如监听端口、域名、内部嵌套的location块配置等。
#location块配置:配置请求的资源路径和资源处理行为。
将web前端的文件(如vue打包后的dist文件夹里的文件)拷贝到服务器 /data/www目录
user root;#
在实际环境中需要把该项改成NGINX启动的账号, 并保证其访问权限
work_processes 1;
events {
work_connections 1024;
}
http {
server {
location / { #
第一个location块
Root / data / www;
}
location / images / { #
第二个location块
Root / data;
}
}
}
如果请求匹配到多个localtion块,那么nginx会选择具有最长前缀的location块。
这里有两个location块, 会先匹配#第二个location块,如果没匹配到的话,才使用#第一个location块
配置文件保存之后,使用以下命令重新加载配置文件。如果未启动nginx的话 需要启动nginx。
nginx -s reload
这里配置server块是,没有使用listen指定显式地指定监听端口,因此nginx会默认监听80端口。
我们在浏览器上打开http://服务器ip/ 就可以访问配置好的静态文件web服务器
ps:仅学习记录