nginx的虚拟主机和反向代理和一些技巧应用
前言
nginx是什么,一般用来做反向代理,也可以用来放静态htnl等文件..当然代理tcp协议也没啥问题,但做好是别用哈.性能不咋样.
虚拟主机
什么是虚拟主机?
个人理解,比如一台主机装一个nginx,配置端口为80,向外提供服务。如果要配置第二个同样的服务,需要再另外一台主机上安装或者本机在装相同软件(注意本机端口不能重复),同样进行配置。有了虚拟主机功能,我们可以在一台主机上配置N个不同的端口,分别对外提供服务.
上配置:
server {
listen 801; #监听端口
server_name localhost; #主机名,如果拥有域名,填上域名,如果有对外提供的IP,填公网IP,localhost代表,只能通过内网访问
access_log logs/home801.access.log main; #日志文件
location / { #位置,当用户输入wwww.aa.com或ip,或localhost时,匹配的根路径..具体是那个,根据server_name决定
root html/pc; #root后面 代表你实际网站存放的相对路径
index index.html; #默认主页
}
location =/favicon.ico {
log_not_found off;
access_log off;
}
}
像这样的一个配置,就是一个虚拟主机,如果配置多个,复制改下参数即可
反向代理
什么是方向代理呢?
个人理解:比如nginx对外提供服务的端口是80,真实的应用却部署在另外的多台主机上,nginx通过client端的访问,把请求转向后端的真实服务器,最后把结果原路返回至client
上配置:
upstream yingyong_proxy { #上游真实后端地址
server 192.168.1.2: weight=;
server 192.168.1.3: weight=;
check interval= rise= fall= timeout=;
}
#外网虚拟主机
server {
listen ; #监听端口
server_name www.aa.com; #对外提供的域名,如果对内部,就用内网IP,或localhost
access_log logs/yingyong.access.log main;
#重写url
location =/ {
rewrite ^ /yingyong last; #如果你的应用没在根目录但在根目录的子目录,不想用户每次访问输入www.aa.com/yingyong ,就需用到重写.
}
location /yingyong { #获取重写位置
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://yingyong_proxy; #把请求转向真实的后端服务
}
location =/favicon.ico {
log_not_found off;
access_log off;
}
}
像这样的一个配置,就是一个虚拟主机的反向代理,如果配置多个,复制改下参数即可
高级应用,根据pc和iphone导向不同的页面
#pc和iphone导向不同的页面
upstream index_pc_proxy { #先定义iphone和pc对应的虚拟主机服务
server 127.0.0.1:;
}
upstream index_mb_proxy {
server 127.0.0.1:;
}
server {
listen ;
server_name www.aa.com;
access_log logs/home.access.log main;
if ($http_user_agent ~* Android|iPhone){ #匹配成功
set $shouji "index_mb_proxy"; #设置变量
}
if ($http_user_agent !~* Android|iPhone){ #匹配不成功
set $shouji "index_pc_proxy"; #设置变量
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://$shouji; #反向代理
}
location =/favicon.ico {
log_not_found off;
access_log off;
}
}
总结
适合有nginx使用经验的人参考...
nginx的虚拟主机和反向代理和一些技巧应用的更多相关文章
- nginx配置虚拟主机、反向代理和负载均衡
为了实现这个功能,需要修改nginx的配置文件,将nginx.conf清理一下,使结构更清晰. worker_processes ; events { worker_connections ; } h ...
- nginx之安装、多虚拟主机、反向代理和负载均衡
一.web服务器与web框架 1.web服务器简介 Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的Web服务器会通过 HTTP(超文 ...
- Nginx安装、配置虚拟主机、反向代理、负载均衡
1. nginx安装 下载nginx: 官方网站: http://nginx.org/ 使用的版本是1.8.0版本. Nginx提供的源码. 1.1. 要求的安装环境 1.需要安装gcc的环境.y ...
- wamp2.4.4 如何配置虚拟主机及反向代理(解决跨域问题)
一.找到安装目录下的httpd.conf文件 1. 删除Include conf/extra/httpd-vhosts.conf前面的#号(开启虚拟主机的配置) 2. 删除LoadModule pro ...
- Nginx HTTP负载均衡和反向代理配置
当前大并发的网站基本都采用了Nginx来做代理服务器,并且做缓存,来扛住大并发.先前也用nginx配置过简单的代理,今天有时间把整合过程拿出来和大家分享,不过其中大部分也是网上找来的资源. nginx ...
- Nginx服务器部署 负载均衡 反向代理
Nginx服务器部署负载均衡反向代理 LVS Nginx HAProxy的优缺点 三种负载均衡器的优缺点说明如下: LVS的优点: 1.抗负载能力强.工作在第4层仅作分发之用,没有流量的产生,这个特点 ...
- nginx的使用,以及反向代理,负载均衡,从安装到使用,全部步骤。
先总结nginx实现负载均衡的原理,在这之前先的知道反向代理,因为nginx的负载均衡是在反向代理的基础上实现的: 1.反向代理:通过在nginx的配置文件 (vim /opt/nginx196/co ...
- Nginx中虚拟主机配置
一.Nginx中虚拟主机配置 1.基于域名的虚拟主机配置 1.修改宿主机的hosts文件(系统盘/windows/system32/driver/etc/HOSTS) linux : vim /etc ...
- 烂泥:使用nginx利用虚拟主机搭建WordPress博客
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近开始打算学习nginx web服务器,既然是学习还是以实用为目的的.我们在此以搭建WordPress博客为例. 搭建WordPress博客,我们需要 ...
随机推荐
- python基础:3.高级运算符
1.异或运算 十进制的异或运算,先转成二进制进行异或,按位进行比较,对应位置相同则为0,对应位置不同则为1,,再从异或结果转成十进制. python中: 1 ^ 1 = 0 1 ^ 2 = 3 1 ^ ...
- spark大数据快速分析第二章
1.驱动程序通过一个SparkContext对象来访问Spark,此对象代表对计算集群的一个连接.shell已经自动创建了一个SparkContext对象.利用SparkContext对象来创建一个R ...
- Jenkins之配置GitHub-Webhook2
什么是持续集成(Continuous integration) 提出者Martin Fowler本人对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每 ...
- STM32 NVIC中断优先级分组说明
STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个) 中断管理方法 首先,对STM32中断进行分组,组0~4.同时,对每个中断设置一个抢占优先级和一个响应优先级值. 分组配置是 ...
- 08-图8 How Long Does It Take(25 分)邻接表和队列
Given the relations of all the activities of a project, you are supposed to find the earliest comple ...
- delphi 判断MDI窗体的子窗体是否存在
//***************************************************************************//函 数名: CreateForm //返 ...
- (转)Windows下安装Docker, GitBash环境配置
转:https://blog.csdn.net/chengly0129/article/details/68944269 官网介绍: https://docs.docker.com/toolbox/t ...
- appium定位学习
前面也介绍过appium的一些定位方法,今天看到一篇博客,里面的方法总结的,就转载过来. 本文转自:https://www.cnblogs.com/Mushishi_xu/p/7685966.html ...
- MVC路由解析---IgnoreRoute
MVC路由解析---IgnoreRoute 文章引导 MVC路由解析---IgnoreRoute MVC路由解析---MapRoute MVC路由解析---UrlRoutingModule Are ...
- 记C函数指针的“小坑”
今天遇到一个C函数指针的小坑,索性记下来. 我在a.c 文件里面,引用b.c 文件的函数声明作为指针引用 比如在a.c生命一个函数指针 typedef void (*free)(void *val) ...