Nginx实例
一、反向代理
反向代理实例一
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实例的更多相关文章
- Docker学习笔记--Docker 启动nginx实例挂载目录权限不够(转)
今天在启动一个docker 运行nginx实例,在挂载目录时,出现访问静态目录时,权限不够 执行的命令是: docker run --name my-nginx -d -p 80:80 --resta ...
- saltstack SLS 安装haproxy+nginx实例分析学习
本文主要以实例的形式去熟悉sls的部署流程及相关模块的使用 文件下载:https://github.com/unixhot/saltbook-code 目录结构 [root@k8s_master sa ...
- docker安装nginx实例
1.拉取nginx镜像: docker pull nginx 2.查看本地镜像文件: docker images 3.创建挂载目录: mkdir -p /docker_data/nginx/{con ...
- Nginx模块参考手册:HTTP核心模块
FROM: http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=17238776&id=2982697 这些模块默认会全部编 ...
- LINUX测试环境部署nginx(五)
安装配置nginx 安装编译环境:yum -y install pcre-devel openssl openssl-devel 拷贝nginx压缩文件到目标目录后,解压tar -zxvf nginx ...
- Nginx介绍
原文:http://www.aosabook.org/en/nginx.html 作者: Andrew Alexeev nginx(发音"engine x")是俄罗斯软件工程师Ig ...
- Nginx 的启动、停止、平滑重启、信号控制和平滑升级
Nginx 的启动 假设 nginx 安装在 /usr/local/nginx 目录中,那么启动 nginx 的命令就是: [root@localhost ~]# /usr/local ...
- Linux下Nginx的安装、升级及动态添加模块
系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...
- nginx 1.安装
nginx 1.安装 nginx的众多优点这里就不多说了,直接开始吧. 基本依赖 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel ...
随机推荐
- solr之functionQuery(函数查询)【转】
函数查询 让我们可以利用 numeric域的值 或者 与域相关的的某个特定的值的函数,来对文档进行评分. 怎样使用函数查询 这里主要有两种方法可以使用函数查询,这两种方法都是通过solr http 接 ...
- 教你怎么写jQuery的插件
jQuery(以下简称JQ)是一个功能强大而又小巧的JS框架,现在很多网站都在使用JQ,本站也不例外.本文教大家如何写一个属于你自己的JQ插件. 本JQ插件例子是在你网站的文章结尾处添加你的版权. J ...
- skywalking8.1.0(一) 安装与部署
skywalking部署 背景介绍 目前公司后端服务全部为微服务并运行在kubernetes集群上,而大量的微服务的背后拥有很复杂的调用关系,纵使你是公司的资深开发也很难理清每一个后端服务之间的依赖关 ...
- 实战四:Gateway网关作全局路由转发
Gateway网关的作用主要是两个:路由转发,请求过滤.此篇讲的是路由转发,下篇介绍请求过滤. 一,创建网关module,添加依赖 1,new -> module -> maven 或直接 ...
- JavaScript 正则表达式:字符串中查找数字
以下代码是在一段字符串中,用正则表达式找到数字,使用 replace() 方法,用找到的数字的两倍值替换原数字.replace() 方法的第二个参数为一个函数,返回找到数字的两倍值. <scri ...
- redis client原理分析
代码库地址:https://github.com/garyburd/redigo 1:连接池 2:发送命令 3:解析结果 1:连接池 连接池结构体如下: type Pool struct { // D ...
- SpringMVC找不到js等文件,有两种方式可以解决这个问题。
(1)当你选择不过滤任何文件时,必须去springmvc.xml去设置默认加载. (2)如果你在web.xml中设置的过滤请求那么你就不用设置默认加载,但请求的url必须符合格式.
- AtCoder 1807 食塩水
题意 有 \(n\) 瓶食盐水,第 \(i\) 瓶为质量 \(w_i\),浓度 \(p_i\%\) 的食盐水,需要选出 \(k\) 瓶食盐水混合在一起,问最大浓度. \(\texttt{Data Ra ...
- nb-iot技术能自组网吗
NB-IoT是运营商主导的网络,运营在授权频段上,LoRa运营在开放频段上,可以由企业自主建设.NB-IoT构建于蜂窝网络,只消耗大约180KHz的带宽,可直接部署于GSM网络.UMTS网络或LTE网 ...
- PuTTY SSH 使用证书免密码登录
1.用PuTTY SSH 密钥生成工具puttygen.exe生成密钥.生成的密钥类型和位数按照默认的就OK,SSH-2 RSA,1024位生成密钥时你需要在空白区域移动鼠标,以便产生随机数据点击保存 ...