关于 nginx配置 反向代理/负载均衡
1,Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
2,Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。
先说说什么是正向代理,什么是反向代理
正向代理:从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
场景:为在防火墙内的局域网客户端提供访问Internet的途径
反向代理:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。
同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。
场景:反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
nginx实操篇:(在前后端分离开发时配置)
在后端的yml文件或properties文件里
server.context-path=/demo-service server.port=8088
在web前端的config.js
Constant = { gatewayURL: "/demo-service", loginURL: "/demo-web/pages/login.html", uploadUrl: "/demo-service", ...... }
注:
IDEA启动tomcat时,默认访问路径为:这里要将登陆页面的端口和 nginx里的 server端口保持一致:
nginx里添加的配置:
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 300;
gzip on;
upstream demo-web{
server localhost:8080;
ip_hash;
}
upstream demo-service{
server localhost:8094;
ip_hash;
}
server {
listen 8081;
server_name localhost;
charset utf-8;
location / {
add_header Cache-Control no-cache;
add_header Pragma no-cache;
add_header Expires 0;
}
location /demo-service {
proxy_pass http://demo-service/demo-service;
}
location /demo-web {
add_header Cache-Control no-cache;
add_header Pragma no-cache;
add_header Expires 0;
proxy_pass http://demo-web/demo-web;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}