nginx实现前后台分离部署
2.1 前后台分离部署
(一) 组网图
(二) 简要说明:
如标题所示,至于为什么要前后台分离部署,个人理解的原因有三
(一) 便于部署
前台代码由nginx启动,无需再做前后台集成打包,节省升级维护资源。
(二) 便于维护
由于前后台分离而不是集成在一个tomcat中运行,此时如果需要对前端代码进行迭代部署时,仅需要对特定目录下的前端代码进行替换即可,无需前后台集成打包后又再次部署。节省升级维护资源。
(三) 解决跨域问题
首先我们一起理解一下什么是跨域。
当两个地址在协议、主机或者端口不一致的时候,即判定为跨域。
如果有兴趣的朋友可以查看附件链接查看详解资料。
如:我在192.168.1.110上部署的前端代码 需要向192.168.1.111的后台发送请求,此时就会出现跨域问题。
那么 nginx可以完美的解决此类问题,无论的内网跨域甚至是外网均可以正常访问。
(三) nginx配置
#user nobody;
worker_processes 1; #开启niginx工作进程,一般几个CUP核心写几个
error_log /usr/local/nginx/logs/error.log;
events {
worker_connections 1024; #一个进程能同时处理1024个请求
}
http {
gzip on; #开启gzip压缩
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 6;
gzip_types text/plain text/css test/javascript application/json application/javascript application/x-javascript application/xml;
#设置需要压缩的数据格式
gzip_vary on;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
types_hash_max_size 2048;
# 日志配置
access_log /usr/local/nginx/access.log;
server {
listen 88;
server_name relaxsystem.relax.com; #注意这里我该了下访问域名
charset utf-8;
root /usr/local/123; #前端代码访问路径,
index index.html;
#定义index页面
error_page 404 /index.html;
location ^~ /api/ #反向代理通配所有的API接口
{
proxy_pass http://192.168.1.60:15587; #访问的后台
proxy_send_timeout 1800;
proxy_read_timeout 1800;
proxy_connect_timeout 1800;
client_max_body_size 2048m;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded=-Proto $scheme;
}
}
测试备份配置文件:
查看前端代码放置路径
(四) 本地配置域名解析便于外网访问
a) Windows配置访问验证
访问C:\Windows\System32\drivers\etc 下打开hosts文件 加入
relaxsystem027.gnway.cc relaxsystem.relax.com
上面的配置信息可以看到,我们用的192.168.1.119的前端代码向192.168.1.60的后台发送请求。所以我们
使用Postman向relaxsystem.relax.com:10388发送请求,并查看内网60访问的日志信息。
可以看到Postman发送成功且60的日志有相关日志信息,说明由119前端向60的后台发送的请求并得到相应的回执,这里跨域的问题就完美解决了。
b) 验证升级
我们一起试试60映射后的外网IP看看是不是真的实现了跨域。
路由器将192.168.1.60的15587端口映射至外网,外网端口为1060
然后修改配置文件
将之前的内网设置改为外网访问
重启nignx服务
再次发送请求
后台采用外网访问也是OK的。
a) Linux配置访问验证
访问编辑/etc/hosts
内容参考windows下配置
验证内容:略
nginx实现前后台分离部署的更多相关文章
- 【转】Nginx+php-fpm+MySQL分离部署详解
转:http://www.linuxidc.com/Linux/2015-07/120580.htm Nginx+php-fpm+MySQL分离部署详解 [日期:2015-07-26] 来源:Linu ...
- nginx+php-fpm+mysql分离部署详解
相信大家将这三者部署到同一台主机应该已经不陌生了,今天在这里,给大家演示一下如何将三者部署到三台主机上. 实验系统:CentOS 6.6_x86_64 实验前提:大部分软件使用编译安装,请提前准备好编 ...
- nginx静态资源分离部署
修改nginx.conf文件,用于nginx处理静态资源. 主要配置如下(在server配置中加入location配置即可): server { listen 80; server_name 123. ...
- 前后台分离部署时,Niginx上的部署
upstream bowenpay_backend { server 127.0.0.1:9002; } server { listen 80; server_name wx.bowenpay.com ...
- Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
今天想把之前的一个demo用Nginx把资源分离开来,在网上看了一天,整整弄了一天,硬是没弄出来. 要么全是同样的内容的,要么就是环境跟我这里不一样的.再加上对Nginx没接触过,给我都整哭了差点. ...
- LNMP下动静分离部署phpmyadmin软件包
LNMP环境肯定是先要配置好的.可以参考我之前的博客.那我们直接进行配置,我这里使用了三台机器进行动静分离部署,第一台负责nginx反向代理,第二台负责php-fpm应用程序以及mariadb的服务器 ...
- 《nginx 五》nginx实现动静分离
Nginx+Tomcat动静分离 动态页面与静态页面区别 静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源. 动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变. 什么是动 ...
- Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)
Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...
- lamp的动静分离部署
一.lamp分离部署工作图 二.LAMP的安装与配置 1.环境准备 2.对 PHP 服务器进行部署 #以下为安装PHP及其依赖 [root@php ~ ]# .tar.gz -C /usr/src [ ...
随机推荐
- Windows下NFS服务器SFU设置(可以共享linux系统)
一.安装SFU1.下载软件SFU http://download.microsoft.com/download/a/1/c/a1ca7af1-a6e3-46e7-874a-4c5d8c0fb3b7/S ...
- 基于jquery,php实现AJAX长轮询(LongPoll),类似推送机制
HTTP是无状态.单向的协议,用户只能够通过客服端向服务器发送请求并由服务器处理发回一个响应.若要实现聊天室.WEBQQ.在线客服.邮箱等这些即时通讯的应用,就要用到“ 服务器推送技术(Comet)” ...
- .NET webAPI中集成swagger
最近做的项目使用winform三层+webapi,对于webAPI路由文档管理一直觉得单独做一些管理比较麻烦,并且测试的时候项目内的代码测试运行起来也比较麻烦,所以在网上开始检索相关办法,发现热度比较 ...
- MySQL存储引擎简介-MyISAM和InnoDB的区别
上篇文章<MySql逻辑结构简介>我们聊到了存储引擎,可以说MySQL可插拔的多元化存储引擎给我们的使用者带来了很灵活的选择. 这篇文章我们来聊一下目前主流的两种存储引擎MyISAM和In ...
- ERP 到底是什么? 一则故事搞懂ERP
你知道什么是ERP? ERP是什么? 你知道什么是ERP吗? (通俗易懂版) 一个故事搞懂“ERP” 一天中午,丈夫在外给家里打电话:“亲爱的老婆,晚上我想带几个同事回家吃饭可以吗?”(订货意向) 妻 ...
- 前端技术之:JSON.stringfy详细说明
JSON.stringify() 语法JSON.stringify(value[, replacer[, space]]) value 被序列化为字符串的对象 replacer 根据类型不同,其行为也 ...
- 定制linux镜像并自动化安装
最近碰到个需求:要在内网环境安装centos6.5系统并搭建服务,但由于自动部署脚本里安装依赖包使用的是yum安装,而服务器无法连接外网,实施人员也不会本地yum源搭建….. 本来想法是打算把需要的依 ...
- 在线热备份数据库之innobackupex 完整备份InnoDB
在线热备份数据库innobackupex 完整备份InnoDB XtraBackup xtrabackup C程序,支持InnoDB/XtraDB innobackupex : 以Perl脚本封装xt ...
- 使用FinalShell 安装jdk和tomcat流程(Linux系统是centOS7.5)
本文是作者原创,版权归作者所有.若要转载,请注明出处 我今天刚刚买了一个一年的百度云服务器,85元,还是很便宜的,正好用来练练linux,至于为什么使用FinalShell 而不是xshell,因为F ...
- day 2 上午 挂饰 背包
#include<iostream> #include<algorithm> #include<cstring> #include<cstdio> us ...