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 的优化
隐藏版本信息
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八道必懂面试题