Nginx学习笔记

Nginx学习笔记


Nginx 默认配置文件的位置: Nginx安装目录的conf子目录中 nginx.conf 文件

Nginx的相关命令

# 测试nginx的配置文件是否有效
/usr/sbin/nginx -t

# 重载nginx
/usr/sbin/nginx -s reload

# 重启nginx
/usr/sbin/nginx -c /etc/nginx/nginx.conf
 

 

linux 上修改了nginx.conf 怎么重新加载配置文件生效

# 指定配置文件并重载nginx
/usr/local/nginx/sbin/nginx -c /data/nginx/nginx.conf -s reload
 

Nginx 的优化

nginx的优化

隐藏版本信息

1. 未隐藏 nginx 版本时,访问请求会显示 nginx 的版本信息

未隐藏 nginx 的版本时,通过 curl 命令访问请求会显示 nginx 的版本信息
在这里插入图片描述
或者通过浏览器访问出错时,错误提示会显示 nginx 版本信息
在这里插入图片描述

2. 隐藏 nginx 版本

修改 nginx 的配置文件 nginx.conf,在 http 模块下添加如下配置:

server_tokens off;
 

保存文件并退出

3. 验证

/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload

重新使用 curl 命令测试,效果如下:
在这里插入图片描述

nginx事件处理模型优化

配置nginx worker进程最大打开文件数

控制Nginx并发连接数量

相关问题

何为 A 记录?

什么是正向代理?什么是反向代理?能否简要画出其示意图

正向代理:代理的是客户端,代表客户端向服务端发送请求;主要用于隐藏客户端的信息
反向代理:代理的是服务端,代理服务端向客户端回送响应;主要用于隐藏服务端和负载均衡
在这里插入图片描述
反向代理、负载均衡!优秀的 Nginx 是如何做到的?

Nginx所使用的epoll模型是什么?

阿里面试题 | Nginx 所使用的 epoll 模型是什么?

Nginx是如何处理一个请求的呢?

1. Nginx初始化,等待客户端连接
首先,Nginx在启动时,会解析配置文件,得到需要监听的IP地址与端口;
然后在Nginx的master进程里面初始化监控的socket,并且由master进程fork出多个子进程,子进程通过竞争来accept新的连接;

2. Nginx确认连接,处理请求
当客户端向Nginx发出连接请求时,客户端与Nginx经过三次握手后便会建立一个连接。
Nginx的某个子进程会accept这个连接,得到这个建立好的连接的socket,然后创建Nginx对连接的封装,即ngx_connection_t结构体。接着,Nginx会设置读写事件处理函数并添加读写事件来与客户端进行数据交换。

3. 断开连接
当Nginx处理完客户端连接或客户端主动断开连接时,连接便会随之断开。

面试官常问的Nginx的那几个问题? Nginx是如何处理一个请求的呢?

Nginx是如何实现高并发的?

一个主进程,多个工作进程,每个工作进程可以处理多个请求;

每进来一个请求,会有一个work进程去处理,但不是全程阻塞式的处理,处理到可能发生阻塞的地方,work进程会转去处理其他请求。

面试官常问的Nginx的那几个问题? Nginx是如何实现高并发的
面试常问服务器?—Nginx八道必懂面试题 3.nginx是如何实现高并发的

参考文档

反向代理、负载均衡!优秀的 Nginx 是如何做到的?
面试官常问的Nginx的那几个问题?
nginx快速查看配置文件的方法
linux如何查看nginx是否启动
面试常问服务器?—Nginx八道必懂面试题

 
原文地址:https://www.cnblogs.com/xiao-xue-di/p/12834658.html