一、反向代理

反向代理实例一

1.实现效果

打开浏览器,在浏览器地址栏输入地址www.pluto.com,跳转到 liunx 系统 tomcat 主页面中

2.准备工作

[1].安装tomcat

[root@host79 sbin]# cd /opt/apache-tomcat-7.0.70/

[root@host79 apache-tomcat-7.0.70]# ls

bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work

[root@host79 apache-tomcat-7.0.70]# cd bin/

[root@host79 bin]# ./startup.sh

Using CATALINA_BASE:   /opt/apache-tomcat-7.0.70

Using CATALINA_HOME:   /opt/apache-tomcat-7.0.70

Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.70/temp

Using JRE_HOME:        /opt/jdk1.7.0_79

Using CLASSPATH:       /opt/apache-tomcat-7.0.70/bin/bootstrap.jar:/opt/apache-tomcat-7.0.70/bin/tomcat-juli.jar

Tomcat started.

[root@host79 bin]# cd ..

[root@host79 apache-tomcat-7.0.70]# cd logs/

[root@host79 logs]# ls

catalina.2020-07-20.log      host-manager.2020-08-12.log          localhost_access_log.2020-08-12.txt

catalina.2020-07-29.log      localhost.2020-07-20.log             manager.2020-07-20.log

catalina.2020-08-12.log      localhost.2020-07-29.log             manager.2020-08-12.log

catalina.out                 localhost.2020-08-12.log

host-manager.2020-07-20.log  localhost_access_log.2020-07-20.txt

[root@host79 logs]# tail -f catalina.out

八月 12, 2020 11:21:04 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Deploying web application directory /opt/apache-tomcat-7.0.70/webapps/ROOT

八月 12, 2020 11:21:04 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Deployment of web application directory /opt/apache-tomcat-7.0.70/webapps/ROOT has finished in 183 ms

八月 12, 2020 11:21:04 下午 org.apache.coyote.AbstractProtocol start

信息: Starting ProtocolHandler ["http-bio-8080"]

八月 12, 2020 11:21:04 下午 org.apache.coyote.AbstractProtocol start

信息: Starting ProtocolHandler ["ajp-bio-8009"]

八月 12, 2020 11:21:04 下午 org.apache.catalina.startup.Catalina start

信息: Server startup in 5663 ms

[2].开放端口

[root@host79 /]# vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

[root@host79 /]# service iptables restart

[root@host79 /]# /etc/init.d/iptables status

3.具体配置

[1].windows系统修改hosts文件

在 windows 系统的 host 文件进行域名和 ip 对应关系的配置

#C:\Windows\System32\drivers\etc\hosts

192.168.188.188 www.pluto.com

[2].nginx反向代理配置(请求转发配置)

[root@host79 /]# cd /usr/local/nginx/conf/

[root@host79 conf]# vim nginx.conf

[3].测试

[root@host79 /]# cd /usr/local/nginx/sbin/

[root@host79 sbin]# ./nginx -s reload

反向代理实例二

1.实现效果

使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中nginx 监听端口为 8001.

访问 http://192.168.188.188:8001/edu/ 直接跳转到 127.0.0.1:8080

访问 http://192.168.188.188:8001/vod/ 直接跳转到 127.0.0.1:8081

2.准备工作

[1].准备两个tomcat服务器,一个8080端口,一个8081端口

#8080tomcat

[root@host79 bin]# pwd

/opt/tomcat8080/apache-tomcat-7.0.70/bin

[root@host79 bin]# ./start

#8081tomcat

[root@host79 conf]# pwd

/opt/tomcat8081/apache-tomcat-7.0.70/conf

[root@host79 conf]# vim server.xml

<Server port="8015" shutdown="SHUTDOWN">

<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

<Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />

[2].将端口添加到防火墙

[root@host79 conf]# vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT

[3].测试页面

[4].创建文件夹

[root@host79 /]# cd /opt/tomcat8080/apache-tomcat-7.0.70/webapps/

[root@host79 webapps]# mkdir edu

[root@host79 webapps]# cd edu

[root@host79 edu]# vim a.html

<h1>8080</h1>

[root@host79 /]# cd /opt/tomcat8081/apache-tomcat-7.0.70/webapps/

[root@host79 webapps]# mkdir vod

[root@host79 webapps]# cd vod

[root@host79 webapps]# vim a.html

<h1>8081</h1>

3.具体配置

[1].nginx配置文件(反向代理配置)

[root@host79 conf]# pwd

/usr/local/nginx/conf

[root@host79 conf]# vim nginx.conf

#通过以下命令查看防火墙是否放行8080 8081 8001端口

[root@host79 conf]# service iptables status

[root@host79 sbin]# pwd

/usr/local/nginx/sbin

[root@host79 sbin]# ./nginx -s reload

#若出现nginx: [emerg] invalid URL prefix in URL/nginx.conf,则配置nginx.conf时一定出错了

#若出现nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

,则是https://www.cnblogs.com/houss/p/11291629.html

[2].测试

二、负载均衡

1.实现效果

浏览器地址栏输入地址 http://192.168.188.188/edu/a.html,负载均衡效果,平均 8080和 8081 端口中

2.准备工作

[1].准备两个tomcat服务器,一个8080端口,一个8081端口

#8080tomcat

[root@host79 bin]# pwd

/opt/tomcat8080/apache-tomcat-7.0.70/bin

[root@host79 bin]# ./start

#8081tomcat

[root@host79 conf]# pwd

/opt/tomcat8081/apache-tomcat-7.0.70/conf

[root@host79 conf]# vim server.xml

<Server port="8015" shutdown="SHUTDOWN">

<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

<Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />

[2].将端口添加到防火墙

[root@host79 conf]# vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT

[3].创建文件

[root@host79 ~]# cd /opt/tomcat8080/apache-tomcat-7.0.70/webapps/

[root@host79 webapps]# mkdir pluto

[root@host79 webapps]# cd pluto

[root@host79 pluto]# vim a.html

<h1>8080!!!!!!</h1>

[root@host79 ~]# cd /opt/tomcat8081/apache-tomcat-7.0.70/webapps/

[root@host79 webapps]# mkdir pluto

[root@host79 webapps]# cd pluto

[root@host79 pluto]# vim a.html

<h1>8081!!!!!!!!!</h1>

[4].测试

3.nginx配置文件(负载均衡配置)

[root@host79 conf]# pwd

/usr/local/nginx/conf

[root@host79 conf]# vim nginx.conf

#gzip  on;

    upstream myserver{

        server 192.168.188.188:8080;

        server 192.168.188.188:8081;

    }

server {

        listen       80;

        server_name  192.168.188.188;

location / {

root   html;

            proxy_pass http://myserver;

index  index.html index.htm;

}

4.nginx分配服务器策略

[1].轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

[2].weight

weight 代表权重默认为 1,权重越高被分配的客户端越多.weight 和访问比率成正比,用于后端服务器性能不均的情况。

[root@host79 conf]# pwd

/usr/local/nginx/conf

[root@host79 conf]# vim nginx.conf

#gzip  on;

    upstream myserver{

        server 192.168.188.188:8080 weight=10;

        server 192.168.188.188:8081 weight=5;

    }

server {

        listen       80;

        server_name  192.168.188.188;

location / {

root   html;

            proxy_pass http://myserver;

index  index.html index.htm;

}

[3].ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题

    upstream myserver{

        ip_hash

        server 192.168.188.188:8080;

        server 192.168.188.188:8081;

    }

[4].fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    upstream myserver{

        server 192.168.188.188:8080;

        server 192.168.188.188:8081;

        fair

    }

三、动静分离

1.实现效果

2.准备工作

[root@host79 /]# mkdir data

[root@host79 data]# mkdir www

[root@host79 data]# mkdir image

[root@host79 data]# ll

总用量 8

drwxr-xr-x. 2 root root 4096 8月  13 15:43 image

drwxr-xr-x. 2 root root 4096 8月  13 15:49 www

[root@host79 data]# cd www/

[root@host79 www]# vim a.html

<h1>test html!!!</h1>

[root@host79 data]# cd /data/image/

#上传一张图片

3.具体配置

[root@host79 /]# cd /usr/local/nginx/conf/

[root@host79 conf]# vim nginx.conf

4.测试

注:因为nginx.conf中添加了autoindex on;所以会自动列出所有的文件信息

Nginx实例的更多相关文章

  1. Docker学习笔记--Docker 启动nginx实例挂载目录权限不够(转)

    今天在启动一个docker 运行nginx实例,在挂载目录时,出现访问静态目录时,权限不够 执行的命令是: docker run --name my-nginx -d -p 80:80 --resta ...

  2. saltstack SLS 安装haproxy+nginx实例分析学习

    本文主要以实例的形式去熟悉sls的部署流程及相关模块的使用 文件下载:https://github.com/unixhot/saltbook-code 目录结构 [root@k8s_master sa ...

  3. docker安装nginx实例

    1.拉取nginx镜像: docker pull nginx 2.查看本地镜像文件: docker images 3.创建挂载目录:  mkdir -p /docker_data/nginx/{con ...

  4. Nginx模块参考手册:HTTP核心模块

    FROM: http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=17238776&id=2982697 这些模块默认会全部编 ...

  5. LINUX测试环境部署nginx(五)

    安装配置nginx 安装编译环境:yum -y install pcre-devel openssl openssl-devel 拷贝nginx压缩文件到目标目录后,解压tar -zxvf nginx ...

  6. Nginx介绍

    原文:http://www.aosabook.org/en/nginx.html 作者: Andrew Alexeev nginx(发音"engine x")是俄罗斯软件工程师Ig ...

  7. Nginx 的启动、停止、平滑重启、信号控制和平滑升级

    Nginx 的启动         假设 nginx 安装在 /usr/local/nginx 目录中,那么启动 nginx 的命令就是: [root@localhost ~]# /usr/local ...

  8. Linux下Nginx的安装、升级及动态添加模块

    系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...

  9. nginx 1.安装

    nginx 1.安装 nginx的众多优点这里就不多说了,直接开始吧. 基本依赖 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel ...

随机推荐

  1. centos8平台安装gitosis服务

    一,git服务器端:准备gitosis需要的各依赖软件 1,确认openssh是否存在?如不存在,以下列命令进行安装 [root@yjweb ~]# yum install openssh opens ...

  2. SQL 查询当天,本月,本周的记录 sql 查询日期

    SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111)   ORDE ...

  3. 正式班D11

    2020.10.20星期二 正式班D11 bash解释器交互式环境特性 命令和文件自动补全(Tab只能补全命令和文件) 快捷键 CTRL+C ==>终止前台运行的程序 CTRL+D ==> ...

  4. GO用内置包写爬虫

    一.要点 爬虫被想太多,把他当做一个模拟别人的请求响应即可了,所有呢go写爬虫关键是写请求 二.get请求 package main import ( "bytes" " ...

  5. docker-compose启动consul集群

    version: '2.0' services: consul-server1: image: consul:latest hostname: "consul-server1" p ...

  6. ATOM基础教程一使用前端插件emmet(16)

    emmet简介 http://blog.csdn.net/zsl10/article/details/51956791 emmet的前身是Zen coding,从事Web前端开发的工程师对该插件并不陌 ...

  7. 关于nodejs中的增删改查

    1.增加 router.post('/insert',function(req,res){  var name = req.body.name;  var num = req.body.num;  v ...

  8. kubelet拉取pause镜像报错pull access denied for 172.20.59.190:81/kubernetes/pause-amd64, repository does not exist or may require 'docker login': denied

    目录 1 背景说明 2 现象 pod无法启动,一直显示ContainerCreating 3 问题分析 kubelet的启动参数如下 4 尝试的解决方法 4.1 本地docker login登录镜像仓 ...

  9. ## 【分布式事务】面试官问我:MySQL中的XA事务崩溃了如何恢复??

    写在前面 前段时间搭建了一套MySQL分布式数据库集群,数据库节点有12个,用来测试各种分布式事务方案的性能和优缺点.测试MySQL XA事务时,正当测试脚本向数据库中批量插入数据时,强制服务器断电! ...

  10. Lucas(卢卡斯)定理模板&&例题解析([SHOI2015]超能粒子炮·改)

    Lucas定理 先上结论: 当p为素数: \(\binom{ N }{M} \equiv \binom{ N/p }{M/p}*\binom{ N mod p }{M mod p} (mod p)\) ...