nginx笔录
Nginx
安装
1.反向代理
- 正向代理:比如
kexue上网
无法访问谷歌,需要一个代理服务器代理客户端请求谷歌,这个代理服务器就是正向代理 - 反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。隐藏了真正服务器的ip
正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器资源。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。
正向代理中,服务器不知道真正的客户端到底是谁,以为访问自己的就是真实的客户端。而在反向代理中,客户端不知道真正的服务器是谁,以为自己访问的就是真实的服务器。
http中配置以下内容
server {
listen 80; # 监听80端口
server_name abucloud.com;
location /manager {
proxy_pass http://192.168.72.128:8080;
}
location /user {
proxy_pass http://192.168.72.128:8081;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
以访问abucloud.com以api开头的代理到 http://192.168.72.128:8080服务
以访问abucloud.com以dev开头的代理到 http://192.168.72.128:8081服务
2.负载均衡
http中添加
upstream custom-myserver {
server 192.168.72.128:8081;
server 192.168.72.128:8082;
}
server {
listen 80;
server_name abucloud.com;
location /api {
proxy_pass http://custom-myserver;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
以访问abucloud.com以api开头的代理到 负载均衡到http://192.168.72.128:8080、http://192.168.72.128:8080服务中,默认是轮询
3.动静分离
放置前端
server {
listen 80;
server_name abucloud.com;
charset utf-8;
location / {
root /data/;
index index.html index.htm;
}
}
所有访问abucloud.com路径的请求都会去linux系统/data/下找,也就是说/data/目录下存放前端打包资源
当访问abucloud.com实质上访问的是http://abucloud.com/index.html,如果/data/目录下没有index.html会报forbidden 403
案例1
upstream custom-myserver {
server 192.168.72.128:8081;
server 192.168.72.128:8082;
}
server {
listen 80;
server_name abucloud.com;
charset utf-8;
location / {
root /data/;
index index.html index.htm;
}
location /api {
proxy_pass http://custom-myserver;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
当用户输入http://abucloud.com时,会被转发访问/data/目录下的资源
当用户点击按钮触发发送ajax请求http://abucloud.com/api/xxx时,会被反向代理到http://custom-myserver,进行负载均衡到具体的服务中,可能是http://192.168.72.128:8081/api/xxx,也可能http://192.168.72.128:8082/api/xxx