Ngnix反向代理绑定域名

最近小站入手了一台阿里云服务器,其实是因为国外的服务器太卡了,连SSH连接都卡,根本没法用了,所以入手一台,但是那台国外的VPS更换了母鸡,中国电信的出口宽带又正常了,这样有了两台,正好最近又在看《实战Nginx》,又在网站看到了很多关于Ngnix代理的文章,所以打算实际动手试验一下:

1.首先反向代理的原理图来解析一下,给出一张来自互联网的图片:

从这张图可以看出,代理服务器处在客户端与服务器中间,所以可以兼做防火墙使用,现在小站手上其实有好多台VPS,但是闲置下来的只有两台,所以就使用一下,一台作为网站服务器,一台作为代理服务器。

2.在代理服务器端的设置应该首先安装WEB服务器,可以使用apache,但是为了轻巧,这里使用的是Nginx,小站采用的是LNMP脚本,在/usr/local/nginx/conf/下可以找到ngnix的配置文件nginx.conf,为了试验,我们首先把域名解析过来,取一个二级子域名:http://test.defel.net,在DNSPOD解析到代理服务器:

此处只是实验时下,可能以后会失效,所以不展示具体的IP了。设置代理服务器端新建一个虚拟服务器,启动vhost.sh,之后输入域名test.defel.net,然后一路y基本上就差不多了:

虚拟服务器建立完成之后进入到/usr/local/ngnix/conf/vhost目录下,编辑配置文件,先删除其中全部内容,然后在复制以下内容并修改图中所示:

以下是代码(将其中的服务器IP地址替换为真实的底层网站服务器IP):

 代码如下 复制代码

server
 {
 listen 80;
 server_name test.defel.net;
 location / {
 proxy_pass http://服务器IP地址:8080;
 proxy_redirect off;
 if ($request_filename ~* .*.(gif|jpg|jpeg|png|bmp|swf)$)
 {
 expires 30d;
 }
 if ($request_filename ~ .*.(js|css)?$)
 {
 expires 12h;
 }
 proxy_set_header Host 服务器IP地址;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Content-Type $content_type;
 #proxy_hide_header Content-Type;
 }
 }

此处的目标端口是8080,代理服务器将会通过8080端口代理底层的网站服务器,所以在接下来的网站服务器的配置中,就要使Ngnix监听8080端口,一旦代理端发起请求,及时响应,设置完成之后使用


1

nginx -t

测试配置文件是否有错误,出现nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok和nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful表示修改代码正确,之后使用命令


1

kill -HUP `cat /data/nginx/logs/nginx.pid`

平滑重启Ngnix。

3.设置网站服务器的配置文件,这里采用的是阿里云服务器,同样和代理服务器配置一样建立一个域名为test.defel.net的虚拟服务器,进入vhost文件夹下,更改其配置文件,在这个网站服务器上就不需要大动干戈全部更改,只需要更改一下其中的监听端口即可:

设置完成之后使用nginx -t检查一下配置文件有没有错误,改一个端口,应该不会有什么错误吧,所以我们重启一下Nginx,之后就可以使用域名http://test.defel.net访问测试了,记得之前先清理一下浏览器缓存,保证解析的正确性。

4.访问如下图:

这是我随便找了一个静态页面上传到了阿里云的服务器网站根目录下,只是为了看起来比单纯的hello world好看一点而已。

5.下面是路由追踪信息:

从路由器的追踪效果可以看出是无法查询网站的服务器IP地址的,其次网站的打开速度并不完全能由追踪信息反映出,我架设完成之后打开网站速度还是非常之快的,感觉很不错,速度也不错,喜欢的朋友可以试试,自己动动手。

时间: 2024-07-28 21:29:52

Ngnix反向代理绑定域名的相关文章

Nginx反向代理,负载均衡,redis session共享,keepalived高可用

相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此处可搭建服务器集群. redis服务器一台,用于session的分离共享. nginx主服务器:192.168.50.133 nginx备服务器:192.168.50.135 tomcat项目服务器1:192.168.50.137 tomcat项目服务器2:192.168.50.139 redis服

利用kangle反向代理解决一级和二级域名同一个IP,不同服务器,不同网站的问题

也许你看到这个题目比较长,但是为了能清楚我要表达的意思,只能这样了. 呵呵,这个问题算是让我纠结了一个周左右了,不过今天这个问题终于得到了圆满解决. 问题也如我标题所列出来的一样,我现在在公司内网有两台服务器一台是公司网站,一台是公司的OA系统.而公司对外只有一个IP地址,但是现在要求通过a.com可以访问公司的网站,oa.a.com访问公司的OA系统. 要解决这个问题,我们可以使用反向代理服务器来解决.如果说是在linux系统下,那么解决方案是比较多的.例如squid.nginx等.当然在wi

Nginx配置负载均衡及反向代理

简单介绍: 1.Nginx优点 Nginx 负均衡实现比较简单,可配置性很强,可以按URL做负载均衡,默认对后端有健康检查的能力.后端机器少的情况下(少于10台)负载均衡能力表现好.其优点主要有: 1)功能强大,支持高并发连接,内存消耗少:官方测试能够支撑5万并发连接,在实际生产环境中跑到2-3 万并发连接数,且在3万并发连接下,开启的10个Nginx 进程才消耗150M内存(15M*10=150M). 2)成本低廉:Nginx 为开源软件,免费使用. 3)Nginx 工作在网络的7 层,所以它

利用Nginx反向代理功能架设Ubuntu升级源

北师大的网络情况以前说过了,学校里必须过验证网关才能上外网.为了方便校内同学方便地(不费流量地)升级Ubuntu,也可以充分利用服务器的资源,做了个Ubutu校内的升级源. 机器比较老,没有很大的硬盘,做个源的话至少需要上百G的空间,不太现实.于是Kangzj想了出这个方法,在校内一台能上外网的服务器上反向代理一个速度快的Ubuntu源.我选择的是中科大的Ubuntu源(谢谢),速度可以到10M.非常简单,建了一个虚拟主机,然后就解决问题了,下面附上nginx配置文件: server {    

Linux防火墙上的Apache反向代理

[导读]本文着重介绍在企业防火墙上安装具有代理和重写规则功能的Web服务器--Apache的方法,以及编译和设置Apache的具体步骤.在成功安装后,弹性的虚拟主机设置可以允许外部用户通过防火墙访问内部局域网上多个Web服务器. 一.测试环境与网络结构 本文所使用的测试环境是Redhat Linux 7.2.Apache 1.3.24,公司域名假设是company.com. 公司的典型网络构造如附图所示. 注意: 附图中的防火墙上安装了2块网卡,其中e0端口的外部公共地址为1.2.3.4,e1端

基于反向代理的Web缓存加速——可缓存的CMS系统设计

web|缓存|设计 对于一个日访问量达到百万级的网站来说,速度很快就成为一个瓶颈.除了优化内容发布系统的应用本身外,如果能把不需要实时更新的动态页面的输出结果转化成静态网页来发布,速度上的提升效果将是显著的,因为一个动态页面的速度往往会比静态页面慢2-10倍,而静态网页的内容如果能被缓存在内存里,访问速度甚至会比原有动态网页有2-3个数量级的提高. 动态缓存和静态缓存的比较 基于反向代理加速的站点规划 基于apache mod_proxy的反向代理加速实现 基于squid的反向代理加速实现 面向

使用Nginx反向代理实现简单的负载均衡

Nginx反向代理的原理优点: 反向代理可以简单的理解为:代理服务器来接收internet上的服务器请求,然后将请求转发给内部的服务器上,然后将结果返回给internet上请求的客户端,所以代理服务器对外表现出来的只是一台服务器.反向代理服务器也称为Web服务器加速,针对web服务器提供加速功能.他作为代理服务器,并不针对浏览器用户,而是针对一台或者多台特定的web服务器.可以缓存web的页面,降低web服务器的访问量,从而来降低web服务器的负载,实施反向代理,只要将反向代理设备放置在一台或多

Linux Squid的反向代理

一.基本原理 1.公网中的客户机 client 200.168.10.2 2.squid反向代理服务器 eth0 200.168.10.2 eth1 192.168.10.1 3.内部web服务器 web 192.168.10.2 二.修改squid.conf文件 #配置虚拟80端口,防止数据报文直接丢失 http_port 200.168.10.1:80 vhost #重定向的web服务器 0表示不使用上一级缓存 cache_peer 192.168.10.2 parent 80 0 orig

源代码构建Apache反向代理及SSL配置

由rpm构建的apache是适合大多数场合的应用,它包含了大多数的模块,而我们只是用它去构建反向代理,过多大模块反而不好,影响了性能,所以我们选择了针对性的源代码编译,让apache去适应我们的平台. 下载源代码: wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.25.tar.gz 解压 tar zxvf httpd-2.2.25.tar.gz cd httpd-2.2.25 编译安装的前提条件 yum install -y gcc gcc