# Nginx 反向代理
# 反向代理模块是由ngx_http_proxy_module进行解析的
# proxy_pass指令:用来设置被代理服务器地址,可以是主机名称、IP地址加端口号形式。
# 位置:location
# 语法:proxy_pass URL;
server {
listen 8080;
server_name localhost;
location /server {
# proxy_pass http://192.168.1.100;
proxy_pass http://192.168.1.100/;
# 地址后面的斜杠加和不加的区别
# 当客户端访问 http://192.168.1.100/server/index.html
# 不加斜杠,就变成了 http://192.168.1.100/server/index.html
# 加斜杠,就变成http://192.168.1.100/index.html
# 也就是加了斜杠就是替换location中的/server为访问的uri。
}
}
# proxy_set_header指令:该指令可以更改Nginx服务器接收到客户端请求头信息,然后将新的请求头发送给代理的服务器。
# 语法:proxy_set_header field value;
# 默认值:proxy_set_header Host $proxy_host;
# proxy_set_header Connection close;
# 位置:http、server、location
proxy_set_header username TOM;
# proxy_redirect指令:该指令是用来重置头信息中的"location"和"Refresh"的值的。
# 具体说明:假设192.168.1.100是代理服务器,192.168.1.200是服务器地址
# 当浏览器输入http://192.168.1.100/index.html访问服务器的时候,访问的是代理服务器,而实际上页面的内容是在服务器上
# 所以代理服务器需要代理访问http://192.168.1.200/index.html,
# 而http://192.168.1.200/index.html这时候处理结果是重定向到http://192.168.1.200/other.html
# 如果代理服务将192.168.1.200服务器返回的内容原封不动的返回到浏览器的话,那么浏览器的URL就会重定向到http://192.168.1.200/other.html了
# 这样就暴露了我们服务器的真实地址了
# proxy_redirect就是通过重置头信息中的"location"和"Refresh"的值来处理这个问题的。
# 语法:proxy_redirect redirect replacement;
# proxy_redirect default;
# proxy_redirect off;
# 位置:http、server、location
# 参数说明:redirect为目标location的值,replacement是要替换的值
# default:就是location块的uri变量的值。
# off:关闭proxy_redirect功能。
# 例子:
server {
listen 8081;
server_name 192.168.1.100;
location / {
proxy_pass http://192.168.1.200/
proxy_redirect http://192.168.1.200/ http://192.168.1.100/;
}
}
server {
listen 80;
server_name 192.168.1.100;
location / {
proxy_pass http://192.168.1.200:8080/
}
}
# Buffer和Cache
# Buffer(缓冲):
# 客户端访问服务器某个资源文件的时候,因为服务器的性能远远比客户端机子的性能好,所以服务器要返回客户端所访问的资源的时候,服务器发送的速度远比客户端读取的速度要快,所以服务器先把资源放到缓冲中,让客户端慢慢读取。
# Cache(缓存):
# 客户端频繁访问服务器某个资源的时候,服务器上的资源没有改动,每次客户端访问的时候都需要从硬盘中读取到内存,然后返回到客户端。Cache缓存就减少了读取硬盘的频率,它是把频繁访问的文件一直放到缓存中,当客户端访问的时候直接从缓存中返回。