基本内容
nginx基本功能
- web服务器
- 负载均衡
- 反向代理
- ...
主要讲解作为web服务的配置.
nginx 基本命令
- 检查nginx版本
nginx -v
- 检查nginx运行状态
service nginx status
- 检查配置
nginx -t
- 重新加载配置
nginx -s reload
web服务器配置
常见配置
http{
include /etc/nginx/mime.types;
server{
listen 80;
server_name localhost 39.39.39.39 www.gaobiaozhun.cn;
root /var/www/gaobiaozhun;
index egg.html;
}
}
知识点讲解:
- listen 指定监听端口
- server_name 指定监听访问地址
- root 指定本地对应的根目录
- index 指定默认展示网页,默认为index.html 访问 http://localhost 自动展示$root/index
- server可以添加多个, 每一个对应一个web服务
通过include /etc/nginx/conf.d/*.conf; 将该路径下所有配置文件添加为nginx配置, 实现将server拆分到多个文件中 方便管理. - include /etc/nginx/mime.types; 浏览器请求文件时, 根据文件扩展名查找并设置响应头中的Content-Type.
location标签讲解
http{
include /etc/nginx/mime.types;
server{
listen 80;
server_name localhost 39.39.39.39 www.gaobiaozhun.cn;
location /app {
} } }
访问到网络资源需要两个条件
- nginx设置网络资源允许访问
- 根路径下有和网络路径一致的文件
curl 进行测试 - localhost/app123.html 可以访问
- localhost/app/ 可以访问app路径下 index
- localhost/apple/ppa/ 可以访问路径下 index
location [参数] /app 按照匹配顺序从高到低依次为:
- = 精确匹配
location = /app/index.html {}
- ^~ 前缀匹配
- ~ 或 ~* 正则
location ~ /videos/video[6-9].avi{}
- 空格 普通前缀
重写与重定向
重写
{
location rewrite /temp /app/index.html
}
重定向
{
location /temp{
return 307 /app/index.html
}
}
上面都是针对单文件路径
多文件
location / {
add_header X-debug-uri "$uri";
try files $uri $uri/ =404;
}
- add_header 服务器对http响应添加响应头
- try files try_files指令会按顺序检查文件或者目录是否存在,如果不存在则继续检查下一个。如果所有的文件或者目录都不存在,则会返回404错误。
自定义404 500等页面
server {
error_page 404 /404.html
}
返回根路径下404.html 页面
反向代理
location /nextjsapp1 {
proxy_pass http://localhost:3000;
}
将 nextjsapp1请求转向3000端口运行的服务
我对反向代理的理解: 正向代理 客户端要访问什么内容, 通过"助手"去访问.
反向代理 访问"假"地址 将其 转向目标服务器
负载均衡
http {
upstream backend-servers {
server localhost:3000 weight 2;
server localhost:3001 weight 6;
}
server {
location / {
proxy_pass http:backend-servers;
}
}
}
- upstream backend-servers 罗列所有服务器
- weight 权重 标志服务器性能 权重越大分配的越多.