千家信息网

怎么使用Nginx搭建WCF集群

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,这篇文章主要介绍"怎么使用Nginx搭建WCF集群",在日常操作中,相信很多人在怎么使用Nginx搭建WCF集群问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么使用N
千家信息网最后更新 2025年02月06日怎么使用Nginx搭建WCF集群

这篇文章主要介绍"怎么使用Nginx搭建WCF集群",在日常操作中,相信很多人在怎么使用Nginx搭建WCF集群问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么使用Nginx搭建WCF集群"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一:准备的材料

\1. 话不多说,一图胜千言,图中的服务器都是采用vmware虚拟化,如下图:

三台windows机器 ,两个WCF的windows服务器承载(192.168.23.187,192.168.23.188),一台Client的服务器(192.168.23.1)

一台Centos机器,用来承载web复杂均衡nginx(192.168.23.190)。

在所有的Client的Hosts文件中增加host映射:【192.168.23.190 cluster.com】,方便通过域名的形式访问nginx所在服务器的ip地址。

二:环境搭建

1、WCF程序

既然是测试,肯定就是简单的程序,代码就不完全给出了。

public class HomeService : IHomeService{   public string DoWork(string msg)   {       var ip = Dns.GetHostAddresses(Dns.GetHostName()).FirstOrDefault(i => i.AddressFamily ==                                                          AddressFamily.InterNetwork).ToString();       return string.Format("当前 request 由 server={0} 返回", ip);   }}

App.Config代码

"v4.0" sku=".NETFramework,Version=v4.5.2" />"">"true" httpsGetEnabled="true" />"false" />"WcfService.HomeService">"/HomeService" binding="basicHttpBinding" contract="WcfService.IHomeService">"localhost" />"mex" binding="mexHttpBinding" contract="IMetadataExchange" />"http://192.168.23.187:8733" />

因为windows的两台机器的ip地址是192.168.23.187,192.168.23.188,所以部署的时候注意一下config中的baseAddress地址。

2、centos上的nginx搭建

nginx我想大家用的还是比较多的,去官网下载最新的就好【nginx-1.13.6】:http://nginx.org/en/download.html,下载之后,就是常规的三板斧安装!!!

[root@localhost nginx-1.13.6]# ./configure --prefix=/usr/myapp/nginx[root@localhost nginx-1.13.6]# make && make install

然后在nginx的安装目录下面找到conf文件,修改里面的nginx.conf 配置。

详细配置如下,注意下面"标红"的地方,权重按照1:5的方式进行调用,关于其他的配置,大家可以在网上搜一下就可以了。

#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;#gzip on;upstream cluster.com{server 192.168.23.187:8733 weight=1;server 192.168.23.188:8733 weight=5;}server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;proxy_pass http://cluster.com;#设置主机头和客户端真实地址,以便服务器获取客户端真实IPproxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Server $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {# proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {# deny all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {# listen 8000;# listen somename:8080;# server_name somename alias another.alias;# location / {# root html;# index index.html index.htm;# }#}# HTTPS server##server {# listen 443 ssl;# server_name localhost;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 5m;# ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;# location / {# root html;# index index.html index.htm;# }#}}

3、 client端的程序搭建

第一件事就是将 192.168.23.190 映射到本机的host中去,因为服务不提供给第三方使用,所以加host还是很轻松的。

192.168.23.190 cluster.com

然后就是client端程序添加服务引用,因为添加了host映射,所以服务引用地址就是"http://cluster.com"。 代码如下:

class Program{static void Main(string[] args){for (int i = 0; i "hello world!");Console.WriteLine(info);System.Threading.Thread.Sleep(1000);}Console.Read();}

最后来执行以下程序,看看1000次循环中,是不是按照权重1:5 的方式对后端的wcf进行调用的???

看到没有,是不是很牛逼,我只需要通过cluster.com进行服务访问,nginx会自动给我复杂均衡,这就是我们开发中非常简单化的wcf复杂均衡。

到此,关于"怎么使用Nginx搭建WCF集群"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

服务 就是 地址 服务器 程序 集群 学习 复杂 均衡 代码 机器 配置 客户 客户端 文件 方式 更多 权重 端的 还是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 基岩版2b2t服务器怎么用 网络安全技术的重要性论文 服务器安全狗管理版本 服务器拒绝某一台电脑访问方法 公务员八小时之外网络安全 有线电视网络安全技术培训 数据库模板间关系 软件开发很容易 洛阳吖呼网络技术有限公司 数据库连接池测试 数据库在电子商务中的作用 0基础怎么学网络安全就业 网络安全渗透书籍pdf 服务型app需要服务器吗 网络安全渗透测试工程师相关内容 上海正规软件开发价格服务标准 服务器上的游戏是干嘛的 湖北hp服务器虚拟化多少钱 阿坝软件开发简介 魔兽世界造水书数据库 数据库大数据技术专业 存储管理服务器与磁盘阵列 数据库原理第十章课后答案 卫计局信息与网络安全责任制 软件开发在未来的发展 第一部网络安全法时间 网络安全 党员心得体会 网络安全基础复习题 软件开发公司环境工具 网络安全信息和发布
0