nginx学习笔记
1. 正向代理
我们去访问外部的资源 就叫正向代理,起到安全的作用。
让外部网络访问我们局域网的资源,就叫反向代理。
总结:
正向代理服务器用来让局域网客户机接入外网以访问外网资源。
反向代理服务器是让外网的用户接入局域网中的站点以访问网点中的资源。
2. 部分配置信息说明
proxy_coonext_timeout指令
该指令配置nginx服务器与后端被代理的服务器尝试建立连接的超时时间,其语法结构为:
proxy_connect_timeout time;
#Time为超时时间默认60s
proxy_read_timeout指令
该指令表示nginx服务器向后端被代理服务器发出read请求后等待响应超时时间
proxy_read_timeout time;
#Time为超时时间默认60s
proxy_send_timeout指令
该指令表示nginx服务器向后端发起write请求后等待响应的超时时间
proxy_send_timeout time;
#Time为超时时间默认60s
3. nginx虚拟主机配置
作用:一台机器模拟多台服务器提供服务
server {
listen 80;
server_name a.test.com;
#开启网站目录文件列表功能,访问目录时列出其中的文件列表,默认不开启
autoindex on;
index index.html;
root /nginx/html/;
}
server {
listen 80;
server_name b.test.com;
index index.html;
root /nginx/text/;
#禁止对self目录的访问
location /(html)/ {
deny all;
}
}
4. nginx动静分离
动静分离是指在web服务器架构中,将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提升整个服务访问性能和可维护性。
server {
listen 80; #监听端口号80
server_name www.yunximuzi.com; #设置虚拟主机地址
location ~.*\.(html|png|img|css|ico)$ {
#匹配html|png|img|css|ico中任意一个结尾的文件进入下面的文件中查找
#采用正则表达式
#~表示正则表达式开始
#.*表示匹配有一个或者多个前缀路径
#()表示字表达式
# | 表示或者
# $ 表示表达式结束
root html/; #本地的html目录下 单独只写html他会找html以及子目录 带/表示只找当前目录 不进入子目录查找
index index.html index.htm;
}
location ~.*\.(jsp|svg)$ {
proxy_pass http://yunxi;
}
}
配置完成后记得把你的静态资源放入指定目录下,你的root 指定的目录 如果是层及目录,那么你的配置的目录名称需要和你静态资源的层级目录相同即可!
注意:
静态资源在命名时尽量不要重复,如果有重复请求时一定要区分开。
如果动态资源,静态资源匹配同一个格式的时候谁先被读到配置,就会在谁那里调取!
5. nginx 高可用(nginx+keepalived)
后续真正配置了keepalived了 附详细配置说明。