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博客,我们需要 ...
随机推荐
- spark数据分析导论
1.spark的定义 spark是一个用来实现快速而通用的集群计算平台,高效的支持更多计算模式,包括交互式查询和流处理. 主要特点就是能够在内存中进行计算,即使在磁盘上进行计算依然比mapreduce ...
- ImageField 字段的使用
Django模型中的ImageField和FileField的upload_to选项是必填项,其存储路径是相对于MEIDA_ROOT而来的.
- 关于vue2.x使用axios以及http-proxy-middleware代理处理跨域的问题
axios现在以及是尤大大推荐使用的了,官方不在维护vue-reresource. 由于是地第一次使用axios, 在使用过程中猜了很大的坑 首先我们使用vue-cli创建的项目, 访问接口肯定是跨域 ...
- txt操作
C#解决读写包含汉字的txt文件时乱码的问题 C#解决读写包含汉字的txt文件时乱码的问题 当我们用System.IO.StreamReader读取包含汉字的txt文件时,经常会读出乱码(Stream ...
- 51nod 1486 大大走格子(容斥+dp+组合数)
传送门 解题思路 暴力容斥复杂度太高,无法接受,考虑用\(dp\).设\(f(i)\)表示从左上角开始不经过前面的阻断点,只经过\(i\)的阻断点.那么可以考虑容斥,用经过\(i\)的总方案数减去前面 ...
- Activator.CreateInstance with parameters
https://docs.microsoft.com/en-us/dotnet/api/system.activator.createinstance?view=netframework-4.8#Sy ...
- 不同字符串,HashCode可能相同
不同的字符串,hashcode可能相同. 先看例子: @Test public void test6(){ System.out.println("ABCDEa123abc".ha ...
- centos7运行yum报如下提示:Run "yum repolist all" to see the repos you have
centos7运行yum报如下提示: There are no enabled repos. Run "yum repolist all" to see the repos you ...
- linux svn 服务器搭建问题
我的svn版本 svn, version 1.7.14 (r1542130) compiled Nov 20 2015, 19:25:09 Copyright (C) 2013 The Apache ...
- QTP中类的使用(转)
Call Test Class Tester Dim mvarTesterName,mvarAge,mvarGender Sub Class_Initia ...