1.最近简单学了下nginx如何配置反向代理和负载均衡,记录如下,菜鸟入门,如有错误欢迎指出
2.关于nginx的启动和停止
首先:window下切换到nginx文件夹下
(1)启动:.\nginx.exe或者start nginx
(2)停止:.\nginx.exe -s stop(强制停止,结束进程。不保存当前任务)
.\nginx.exe -s quit(停止,保存当前任务)
3.nginx.conf文件,反向代理配置
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
gzip_types text/plain application/javascript text/css;
keepalive_timeout 65;
server {
#nginx监听8080端口
listen 8080;
#配置访问nginx的ip,实际场景中改为本机ip
server_name localhost;
#浏览器输入localhost时匹配的location
location / {
#根文件夹
root html/webApp;
#try_files:检查文件; $uri:监测的文件路径; /index.html:文件不存在重定向的新路径
try_files $uri /index.html;
#默认打开网页
index index.html;
}
#~ 正则匹配,区分大小写
#~* 正则匹配,不区分大小写
#^~ 普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一
#般用来匹配目录
#= 普通字符精确匹配
location ^~/test/ {
# 把 /test路径下的请求转发给真正的后端服务器
proxy_pass http://192.168.0.1:1234/project;
# 把host头传过去,后端服务程序将收到真正请求的ip地址, 否则收到的是localhost
proxy_set_header Host $http_host;
# 把cookie中的path部分从/project替换成/test,若不替换session匹配失效
proxy_cookie_path /project /test;
#cookie中的域名替换
# 把cookie的cookie_domain部分从/project替换成/test
proxy_cookie_domain /project /test;
#设置跨域请求头
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers "Origin,X-Requested-With,Content-Type,Accept";
add_header Access-Control-Allow-Methods "GET,POST,OPTIONS";
}
}
}
4.nginx.conf文件,负载均衡配置
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
gzip_types text/plain application/javascript text/css;
keepalive_timeout 65;
upstream api_server {
#加权轮询 访问3次 8080服务接受一次8090接受两次
#server 192.168.0.1:8080 weight=1;
#server 192.168.0.1:8090 weight=2;
#源地址哈希法 对访问用户的IP进行hash后的结果进行分配,每次用户请求同一个后端服务
#器,能够解决session的问题
#ip_hash;
#server 192.168.0.1:8080;
#server 192.168.0.1:8090;
#响应时间轮询,服务器响应时间越短,越先进行分发
#fair;
#server 192.168.0.1:8080;
#server 192.168.0.1:8090;
keepalive 2000;
}
server {
listen 80;
#配置访问nginx的ip,实际场景中改为本机ip
server_name localhost;
client_max_body_size 1024M;
location / {
root html/webapp;
index index.html;
}
location /api/ {
proxy_pass http://api_server/;
}
}
}