nginx 代理转发 wcf接口
前言
以前对比过enginx和其他几个web服务器(IIS,Apache,lighttpd)的处理静态文件的能力,enginx是最好的,甚至超过其他的几倍。
虽说enginx官方声明在Windows上的表现不如Linux等OS,经过测试enginx的异步处理和响应真出乎意料。
正文
测试的目的和思路:
后台接口用wcf,json作为请求和响应的类型,HTTP协议。
纯前端用angular及路由,enginx作为web服务器。
凡请求后台接口enginx都代理转发到wcf处理。
测试上下文:
Firebird3.0.3标准版、ORM微框架FluentData、VS2015、WebStorm2017.
数据库访问:
class DbCxt
{
private static string _connStr = ""; static DbCxt()
{
FbConnectionStringBuilder connBuilder = new FbConnectionStringBuilder();
connBuilder.DataSource = "localhost";
connBuilder.UserID = "sysdba";
connBuilder.Password = "";
connBuilder.Database = "wms";
connBuilder.Charset = "utf8";
connBuilder.Dialect = ;
connBuilder.ServerType = FbServerType.Default; _connStr = connBuilder.ConnectionString; } public static IDbContext NewDbContext()
{
return new DbContext().ConnectionString(_connStr, new DB2Provider()
, FirebirdClientFactory.Instance);
} public static string ConnStr()
{
return _connStr;
}
}
wcf接口:
[ServiceContract]
public interface IWmsService
{
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
DtoResult<DtoUser> AddUser(DtoUser usr);
}
接口实现:
public class WmsService : IWmsService
{
public DtoResult<DtoUser> AddUser(DtoUser usr)
{
if (usr != null)
{
DateTime creTime = DateTime.Now;
DateTime.TryParse(usr.CreTime, out creTime);
using (var db = DbCxt.NewDbContext())
{
int count = db.Insert("m_user")
.Column("code", usr.Code)
.Column("label", usr.Label)
.Column("cre_time", creTime)
.Column("remark", usr.Remark)
.Execute();
return new DtoResult<DtoUser>() {State = , Data = usr};
}
}
return new DtoResult<DtoUser>() {State = , Msg = "用户不能为空"};
}
}
wcf宿主:
static void Main(string[] args)
{
ServiceHost host = new ServiceHost(typeof(Wms.Service.WmsService));
host.Open();
Console.WriteLine("已启动");
Console.WriteLine("回车键退出");
Console.ReadLine();
}
wcf配置:
<system.serviceModel>
<services> <service name="Wms.Service.WmsService" behaviorConfiguration="http" >
<host>
<baseAddresses>
<add baseAddress="http://localhost:20001/WmsService"/>
</baseAddresses>
</host>
<endpoint binding="webHttpBinding" contract="Wms.Service.IWmsService" behaviorConfiguration="web"></endpoint>
</service>
</services> <behaviors>
<serviceBehaviors>
<behavior name="mex">
<serviceMetadata/>
</behavior>
<behavior name="http">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp helpEnabled="true"/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
前端页面:

js提交代码:Note 请求URL最前的/不能省,因为后面enginx配置代理时不允许前缀后面加/
$scope.data = {
Code: '', Label: '', CreTime: new Date().Format('yyyy-MM-dd hh:mm:ss'), Remark: '', Pwd:'123456'
};
$scope.save = function () {
$http.post('/wmsService/addUser', $scope.data).then(function (value) {
console.log(value);
})
};
enginx代理转发部分配置:~*表示URL不区分大小写匹配,因为默认wcf也不区分。
location ~* /WmsService/ {
proxy_pass http://127.0.0.1:20001;
}
enginx其他配置都取默认,除端口改为10005以外。
nginx 代理转发 wcf接口的更多相关文章
- Nginx代理转发Apache+svn
1.安装svn和httpd yum install httpd yum install subversion mod_dav_svn 创建仓库目录 mkdir -p /var/www/svn 3.创建 ...
- 10分钟学会windows中iis搭建服务器集群实现负载均衡和nginx代理转发
前言 我们之前聊过 10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡:https://www.cnblogs.com/xiongze520/p/103087 ...
- 【转】Nginx反向代理转发tomcat
http://blog.csdn.net/mlc1218559742/article/details/53117520 最近刚接触nginx,在网上查阅了相关资料,看到最多的形容nginx的词就是反向 ...
- nginx 1.15.10 前端代理转发 将多个地址,代理转发到一个地址和端口 多系统公用一个cookie 统一token
nginx 1.15.10 前端代理转发 将多个地址,代理转发到一个地址和端口 多系统公用一个cookie 统一token 注意: proxy_pass http://192.168.40.54:22 ...
- 使用Nginx代理和转发Websocket连接
1.Websocket 简介 WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端. 2.Nginx 简介 ...
- nginx反向代理转发后页面上的js css文件无法加载【原创】
故障现象:nginx做代理转发后,发现页面上的js css文件无法加载,页面样式乱了. 原因:没有配置静态资源 解决js css文件无法加载无法访问的问题 解决办法: 修改配置文件nginx.conf ...
- nginx反向代理转发apache配置 之 cookie去哪儿了?
在公司接手了个微信项目,由于微信环境下访问网站需要使用对外开放的域名,所以有相关问题,都是直接运维同事帮忙处理. 原理是这样: 方案一: 1. 将域名解析指向测试服务器的地址: 2. 开放相关端口访问 ...
- 医院内外网之间通过网闸交互,通过端口转发加nginx代理实现内网访问外网
首先介绍下主要需求,很简单,就是要在医院his系统内嵌公司的平台,实现内网直接访问外网 这是院方给我提供的网闸相关配置,105是医院内网的服务器,120是外网的服务器,中间通过网闸配置的几个端口实现互 ...
- Next.js 配置接口跨域代理转发
使用 create-next-app 创建的 Next.js 项目配置接口跨域代理转发需要用到 custom server 功能. 先安装好 express 和 http-proxy-middlewa ...
随机推荐
- ES6——数据结构 Map
数据结构 Map 字典: 用来存储不重复key的 Hash结构.不同于集合(Set)的是,字典使用的是 [键,值] 的形式来存储数据的. JavaScript 的对应那个(Object:{}) 只能用 ...
- java 统计字符串中子字符串个数
方法一: public class StatisticalStringNumber1 { public static void main(String args[]){ String string=& ...
- VSM(Virtual Storage Manager) add new osd 代码分析
vsm add new osd 流程 后台获取可用设备 | 选择可用设备及osd相关信息等 | 点击add按钮,把准备部署的osd信息添加到需要部署的item列表中 | 点击submit按钮,添加it ...
- Centos6.9下PXE安装centos 7
一.简介 这篇文章是无kickstart下安装centos7的,本篇大部分内容同我另外一篇文章相似,只是Centos7 中的isolinux.cfg有一些不太一样需要说明一下. https://www ...
- bzoj1009GT考试
题目链接 没啥好说的,矩阵优化+$kmp$字符串匹配 上代码: /************************************************************** Prob ...
- 洛谷P5050 【模板】多项式多点求值
传送门 人傻常数大.jpg 因为求逆的时候没清零结果调了几个小时-- 前置芝士 多项式除法,多项式求逆 什么?你不会?左转你谷模板区,包教包会 题解 首先我们要知道一个结论\[f(x_0)\equiv ...
- AutoCAD.Net圆弧半径标注延长线
#region 注册RegApp public static void CheckRegApp(string regapptablename) { Database db = HostApplicat ...
- tableView下沉
出现问题的界面如下,并附有大致介绍: 而我想做的界面应该是自定义的headerView和tableView是一起滑动的,而不是headerView在tableView滑动的时候始终在顶部位置,而且ta ...
- 2016级算法第二次上机-G.ModricWang's Real QuickSort
873 思路 这是一道非常基础的题,目的是帮助大家回顾快排相关的知识.大家完成此题之后应该就对快排有比较深刻的印象了. 对于整个快排的流程,题目描述中已经给了清晰完整的伪代码.需要自己加工的部分就是, ...
- 求一个n元一次方程的解,Gauss消元
求一个n元一次方程的解,Gauss消元 const Matrix=require('./Matrix.js') /*Gauss 消元 传入一个矩阵,传出结果 */ function Gauss(mat ...