现在流行的前后端分离的写法。拆成不同Web服务进行部署。客户端一般是多发一个option请求解决跨域问题。有多个通过api拉数据请求,就有多少个option请求,对性能影响很大。 使用Nginx可以把特定路径的请求转发到指定服务里。 把前端网站部署域名为blog.iwangtao.com,然后有个后台服务,之前的域名是api.iwangtao.com。现在可以在blog.iwangtao.com里做配置,把blog.iwangtao.com下的/api/*请求转发到原api.iwangtao.com下。 定义好一个后台的upstream是这样的 upstream say-hi { server 127.0.0.1:9000; server 127.0.0.1:9001; server 127.0.0.1:9002; server 127.0.0.1:9003; } 在server内,添加 location /api/ { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_pass http://say-hi/; } 「/api/」结尾一定要是「/」才会可以正常匹配。 普通前端匹配的路径,例如location / {} 抢占式前缀匹配的路径,例如location ^~ / {} 精确匹配的路径,例如location = / {} 命名路径,比如location @a {} 无名路径,比如if {}或者limit_except {}生成的路径 这样所有/api/请求都会转发到配置好的say-hi里......
当前显示的标签为: 「Nginx」的博文
我在Ubuntu使用的是nginx/1.18.0,默认已经启用了ngx_stream_core_module。如果没有安装可以使用 sudo apt-get install libnginx-mod-stream 安装。 修改之前先备份/etc/nginx/nginx.conf文件,然后在文件尾部,添加 stream { include /etc/nginx/tcp-enabled/*; } 新建/etc/nginx/tcp-enabled目录,把stream转发配置保存在tcp-enabled目录里。 接下来就跟添加http转发一样了: upstream pg { server 192.168.1.23:5432; } server { listen 5532 so_keepalive=on; proxy_connect_timeout 100s; proxy_timeout 300s; proxy_pass pg; } 完了保存。 sudo nginx -t sudo nginx -s reload 没报错就说明配置正常。 如果Nginx机器的IP是192.168.1.30,添加转发之后,就可以使用192.168.1.30:5532来连接PostgreSQL数据库......