1.关于nginx:个人理解的nginx它的主要用途就是负载均衡,当然可能还有其他一些功能可能我们不长用到,我们通过nginx可以干什么呢?为什么要引入它呢?原因是当有高并发访问服务器时,服务器可能会垮掉。为此,我们需要把一部分用户分配给其他的主机服务器,减缓主服务器的压力。当然,对于超大并发的情况我们这里提到的仅靠ngix是远远不够的,还需要做缓存(Redis),容器(Docker),检索优化(Lucene)等一系列技术,从而达到服务广大人群的目的。

2.原理简介:

这是网上借来的一张图片,我们看到,多个客户端本来是访问同一个web服务器的,但是,当用户量特别大的时候,我们就需要多个服务器来分流了,但是,如何保证这一点呢?如果我们把项目发包后直接通过不同的域名解析达到这一目的,这显然很不合适。那怎么把他们关联起来呢?这时候nginx就有用武之地了,它作为一种反向代理,很像是一个核心枢纽来控制流往它的请求,然后根据某种机制对这些请求进行分配,让对应的主机去提供服务。这就达到了我们的目的。

3.关于如何搭建环境请参考这篇文章,写的很好:https://www.cnblogs.com/taiyonghai/p/6728707.html

4.接下来就是对nginx的配置文件/etc/nginx/nginx.conf文件进行配置:

#user  nobody;
worker_processes ;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
keepalive_timeout ;
#gzip on; upstream www.testgwb.com {                     //配置轮询机制,名字可以随便起,关键字upstream
ip_hash;                           //ip_hash可以保证session域对象的共享问题
server 192.168.43.169: weight=;          //这是我配置的本主机tomcat服务器
server 192.168.43.1: weight=;          //另一台服务器tomcat配置
}
server{
listen ;                           //监听80端口
server_name www.testgwb.com;                //这里的域名你就可把它理解成为对应得主机服务器解析的主机
location / {
proxy_pass http://www.testgwb.com;   //这里需要配置,代表让该代理通过
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}

5.开启两台服务器各自的tomcat,然后配置各服务器的hosts文件,添加域名映射

  5-1.windows主机为例:在C:\Windows\System32\drivers\etc下找到hosts文件,打开后添加域名映射如下图:

  

  5.2.如果是centos,打开终端,输入指令:vim /etc/hosts,添加域名:

6.通过ping指令看看域名是否解析成功,拿window来说:

如果看到可以ping通,说明已经解析成功了。

7.打开浏览器输入设置的域名:www.testgwb.com,发现无法访问,但是刚才明明可以ping通,说明主机已经连通,唯一有问题的可能就是端口号没开放了:

可以在命令行输入:systemctl stop firewalld.service先关闭防火墙,然后访问,发现通了。

ok,那既然是端口未放问题可以开放80端口

root:systemctl start firewalld.service

root:firewall-cmd --zone=public --add-port=80/tcp --permanent

8.关于配置文件明明没有问题,但就是不能通过域名直接访问到主服务器下的资源问题结局方案,centos开机警示信息:You must tell SELinux about this by enabling the 'httpd_can_network_connect' boolean. You can read 'None' man page for more details. setsebool -P httpd_can_network_connect 1

  解决:其实类似问题都属于linux系统的一个自我保护机制,具体关于SELinux的详细机制可以自己搜以下,我的理解是它是一个系统保护机制,和防火墙类似,但不是同一个东西。为此,遇到此错误可以切换到root用户执行:

  $root:semanage port -a -t http_port_t -p tcp 8081

  $root:semodule -i my-nginx.pp

在centos7下搭建nginx环境,并配置负载均衡,最终能达到通过域名直接访问的目的的更多相关文章

  1. Hyperledger超级账本在Centos7下搭建运行环境

    超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,加入成员包括:荷兰银行(ABN AMRO).埃森哲(Accenture)等十几个不同利益体 ...

  2. centos7 yum搭建lnmp环境及配置wordpress超详细教程

    yum安装lnmp环境是最方便,最快捷的一种方法.源码编译安装需要花费大量的人类时间,当然源码编译可以个性化配置一些其它功能.目前来说,yum安装基本满足我们搭建web服务器的需求. 本文是我根据近期 ...

  3. Linux系统:centos7下搭建Nginx和FastDFS文件管理中间件

    本文源码:GitHub·点这里 || GitEE·点这里 一.FastDFS简介 1.基础概念 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件上传 ...

  4. 搭建nginx+tomcat+Java的负载均衡环境

    转载  未测 供参考 另外这篇文章也不错.http://blog.csdn.net/wang379275614/article/details/47778201 一.简介: Tomcat在高并发环境下 ...

  5. 【转】搭建nginx+tomcat+Java的负载均衡环境

    一.简介: Tomcat在高并发环境下处理动态请求时性能很低,而在处理静态页面更加脆弱.虽然Tomcat的最新版本支持epoll,但是通过Nginx来处理静态页面要比通过Tomcat处理在性能方面好很 ...

  6. nginx和tomcat配置负载均衡和session同步

    一.背景 因业务需求,现需配置多台服务器,实现负载均衡. 二.解决方案 使用 nginx + tomcat,在这一台应用服务器部署一个nginx和两个tomcat.通过nginx修改配置后reload ...

  7. CentOS7下搭建Nginx+PHP7的安装配置

    一.安装编译工具及库文件: yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 环境要求 nginx是C ...

  8. centos7下搭建nginx+php7.1+mariadb+memcached+redis

    一.环境准备 1.首先介绍一下环境,以及我们今天的主角们 我用的环境是最小化安装的centos7,mariadb(江湖传言mysql被oracle收购后,人们担心像java一样毁在oracle手上于是 ...

  9. CentOs7下搭建LAMP环境

    ● 环境搭建 参考: http://blog.csdn.net/zph1234/article/details/51248124 http://www.jb51.net/os/188488.html ...

随机推荐

  1. 2018年东北农业大学春季校赛 B wyh的矩阵【规律】

    题目链接 https://www.nowcoder.com/acm/contest/93/B 思路 先加入 中间的那行 和中间的那列 再减去 最中间那个数 因为它 加了两次 然后逐行往下加 会发现是一 ...

  2. CSS3学习笔记(2)—左右跳动的红心

    还在为无法表达内心澎湃的心情而着急吗?还在为制作跳动的心而烦恼吗?哈哈,今天我就把代码全部奉上,为你们追妹子添点贡献,下面来看最终的动态效果(事先说明一下:我用的截屏gif制作软件是绿色版的,所以gi ...

  3. U盘安装Ubuntu 14.04 LTS正式版

    Ubuntu 14.04 LTS正式版发布,而且提供五年的支持和维护服务.Ubuntu 14.04是Ubuntu开发团队历经五年的心血之作.许多新手都喜欢把Linux安装文件刻录成光盘再安装,而安装好 ...

  4. codeforces A. Nuts 解题报告

    题目链接:http://codeforces.com/problemset/problem/402/A 题目意思:几经辛苦,终于体明题目噶意思了 = =,完全是考验一个人是否清醒的最简便方法- -! ...

  5. 【Spring MVC】 - @ModelAttribute使用

    @ModelAttribute一个具有如下三个作用: ①绑定请求参数到命令对象:放在功能处理方法的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑 定流程,而且自动暴露为模型数据用于视图页面 ...

  6. Python: PS 滤镜--旋涡特效

    本文用Python 实现 PS 滤镜的旋涡特效,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/42215 ...

  7. 基于WinDbg的内存泄漏分析

    在前面C++中基于Crt的内存泄漏检测一文中提到的方法已经可以解决我们的大部分内存泄露问题了,但是该方法是有前提的,那就是一定要有源代码,而且还只能是Debug版本调试模式下.实际上很多时候我们的程序 ...

  8. JSON标准格式

    标准JSON的合法符号:{(左大括号)  }(右大括号)  "(双引号)  :(冒号)  ,(逗号)  [(左中括号)  ](右中括号) JSON字符串:特殊字符可在字符前面加 \ 或使用 ...

  9. HDU2874(LCA应用:求两点之间距离,图不连通)

    Connections between cities Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (J ...

  10. Win7点击文件夹右键可打开cmd控制台,并获取当前目录

    当我们用cmd时,有时要切换到某个文件夹的目录,可以在当前目录下,按住shift单击右键打开控制台,也可以在鼠标右键中添加cmd启动命令: 1.在开始搜索框输入regedit,打开注册表: 2.打开 ...