nginx 精简的配置文件
worker_processes 1;
# 可以理解为一个内核一个worker
# 开多了可能性能不好
events {
worker_connections 1024;
}
# 一个 worker 可以创建的连接数
# 1024 代表默认一般不用改
http {
include mime.types;
# 代表引入的配置文件
# mime.types 在 nginx.conf 同级目录下
# 给浏览器看的,让浏览器知道返回的是啥类型,便于好解析
default_type application/octet-stream;
# 如果上面的 mime.types 匹配不到,就采用这个默认的
sendfile on;
# 代表返回的数据是否走中间商,还是直接走网卡返回
# 中间商就是 nginx 的内存
keepalive_timeout 65;
# 连接超时数
# 一个服务器配置
server {
listen 80; # 监听的端口
server_name localhost; # 配置域名
# 上面两个的组合要唯一,不然出问题
# 上面两个匹配到了,匹配下面
location / {
root html; # html文件夹里面的意思
index index.html index.htm;
}
# 出现错误了, 状态码,处理根路径 走下面的进行匹配
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
虚拟主机
因为服务器配置过剩产生的
一个 nginx 可以配置多个域名
# 直接复制一个 server 然后改一下就行了
# 按从上往下匹配如果匹配到了就结束
# 通配符匹配 * # 看第二个 server
# 在 server_name 后面可以写多个
# 可以使用正则
http {
server {
listen 80; # 监听的端口
server_name localhost; # 配置域名
location / {
root html; # html文件夹里面的意思
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80; # 监听的端口
server_name *.hello.*; # 配置域名
location / {
root html; # html文件夹里面的意思
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
域名解析相关架构
二级域名
短网址:就是服务器用数据库存一个key和value,value为真实地址,key随便,返回给用户,节省空间。
httpDns:用于app和C/S架构,好像可以避免域名劫持的风险。
反向代理与正向代理
按角色来说的
就是服务器和用户之间要通过代理, 如果把服务器和代理绑在一起就是反向(理解在一个机房),用户和服务器在一起就是正向(家和路由器)
nginx作为反向代理有带宽瓶颈,用户请求过nginx然后与后端交互,后端处理返回给nginx,会产生瓶颈(nginx),可以使用DR架构,就是服务器直接返回给用户(通过机房网关)。
负载均衡
一定要考虑流量倾斜问题
# 下面的那个网址
# 配置比重可以实现负载均衡
httpsdeom = {
server 网址 weight=?[down # 代表当前机子挂了,这个参数基本不咋用,没啥用];
server 网址 weight=?[backup # 代表这个机子作为备用机子];
}
server {
listen 80; # 监听的端口
server_name localhost; # 配置域名
location / {
proxy_pass 网址(域名);
# 下面没用了
# root html; # html文件夹里面的意思
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
未完待续