Nginx

一、基本知识

1 安装

Linux:

  1. sudo apt update

  2. sudo apt install nginx

Mac:

  • brew install nginx

Windows:

  • scoop install nginx
  • choco install nginx

Docker:

  • docker pull nginx

因为Nginx是用C语言编写的,所以也可以直接下载源码,然后自行修改配置后编译执行 。

2 启动

Linux启动:

  • nginx:启动,启动成功后不会返回任何消息。localhost可以直接访问到,浏览器中返回It works
  • ps -ef|grep nginx:查看nginx进程。
  • lsof -i:80:查看80端口的任务。

Linux调度:

  • nginx -s quit:优雅停止。
  • nginx -s stop:立即停止。
  • nginx -s reload:重载配置文件。
  • nginx -s reopen:重新打开日志文件。

Docker启动:

  • docker run -d nginx

Nginx进程模型:有两种,本别是master和worker。master负责读取和验证配置文件,以及管理worker进程。worker就是Nginx的工作进程,负责处理实际请求。

3 常用命令

nginx -V:查看版本和配置。

nginx -t:快速定位文件位置。常见文件位置如下:

  • /etc/nginx/conf
  • /usr/local/etc/nginx
  • /opt/homebrew/etc/nginx

4 配置文件

配置文件修改好了以后需要nginx -s reload重新加载一下。

# 全局配置
# worker进程数量(一般和CPU内核数量一致比较合适,也可以设置成auto)
worker_processes 10;


# event 网络事件配置
event{
# 最大链接数
worker_connections 1024;
}

# http 服务器信息配置
http{
# 包含mime.types文件,设置了许多mime的文件类型。
include mime.types;

server{
...
# 设置访问路径所映射的文件(映射到html文件加下的index.html)
location / {
root html;
index index.html index.htm;
}
}
...
# 引入servers下的所有配置文件,这样分开会更易读
include servers/*;
}

5 反向代理

正向代理(Forward Proxy):正向代理是位于客户端和原始服务器之间的代理服务器,用于转发客户端发出的请求。客户端必须配置使用这个正向代理服务器来发起请求,代理服务器会将请求转发给原始服务器,然后将原始服务器的响应返回给客户端。正向代理可以帮助客户端绕过一些访问限制,保护客户端的隐私和身份。比如VPN。

反向代理(Reverse Proxy):反向代理则位于服务端和原始服务器之间,客户端直接与反向代理通信,反向代理再将请求转发给原始服务器。反向代理可以帮助分担服务器负载、提供安全性、缓存内容等功能。客户端并不知道请求实际由哪个服务器处理,而是通过反向代理来获得所需的服务。

http{
# 添加这段代码进行反向代理
upstream backend{
# 对客户端IP进行哈希,根据哈希来分配代理服务器,这样同一个客户端请求就会到同一个服务器上
ip_hash;
# 设置代理的服务器IP和PORT,修改weight权重来调整服务器被访问的频率
server 127.0.0.1:8000 weight=3;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}

server{
# 添加这段代码(/app表示:所有以/app开头的请求都进行反向代理)
location /app{
# 反向代理(backend是值upstream后面的名字,可以改成别的)
proxy_pass http://backend;
}
}
}

6 https配置

07.HTTPS配置_哔哩哔哩_bilibili

7 虚拟主机