Nginx反向代理及域名解析访问本地项目

···目录···········································

终极目标

首先啊,明确我们要做什么。

我现在访问本地的项目是这样的。

http://localhost:8020/

我不想这样,我觉得这样一点也体现不出来我的B格。

我想改成这个样子。

www.xiaolaoben.com

怎么做到呢?往下瞅瞅吧!

明确思路

www.baidu.com,访问的是百度,为什么不是IP地址加端口号访问百度啊,为什么用域名?

如果用IP地址加端口号访问百度,IP是多少,端口号是多少?

这就涉及到域名解析的知识。

域名解析

我们访问百度的时候,输入的www.baidu.com,在请求传送中,是被解析成一个或多个IP的,有的同学问了,为什么会有多个IP,百度穷的只有一台服务器,支撑数亿次访问,你信吗?

域名解析共分为两步

1、本地域名解析:

浏览器在本机hosts文件中,查找域名映射的IP地址,如果有映射,就返回IP,没有映射,进行域名服务器解析。

你的计算机,注意要说计算机,不要说电脑,B格不能丢。。。

你的计算机中的hosts文件地址为:

C:/Windows/System32/drivers/etc/hosts
在这里插入图片描述
2、域名服务器解析

域名服务器,是什么,大家应该听说过,申请域名,购买域名这个发家致富的方法,举个例子,2000年,你申请几个域名

www.baidu.com

www.jd.com //注意,京东的不是www.jingdong.com。哇,好奇怪

www.taobao.com

www.aliyun.com

嘿嘿,那你就老牛了,绝了,简直上天了!
在这里插入图片描述
简而言之,域名解析器有对应的域名和IP映射关系。

破解域名

你有钱的话,可以去买一个域名,也不贵,便宜的几十,贵的几百。突然就想到了秋天的第一杯奶茶商标注册,秋天的第一个柚子,秋天的第一个包包,我的第一包华子呢?

去C盘找到你的文件,进去修改如下。

C:/Windows/System32/drivers/etc/hosts
在这里插入图片描述

Nginx反向代理解决端口问题

现在域名没问题了,啥意思

就是说,你访问www.xiaolaoben.com就相当于你的localhost了。

有的同学想,这不就可以了吗,已经实现了啊。

哈哈,人才,www.xiaolaoben.com:8020。这样访问也不错哈。

访问百度就这样访问:www.baidu.com:8090。perfect,成功访问。
在这里插入图片描述
**注意:**当我们访问www.baidu.com等任意一个域名的时候,端口默认都是80端口。包括阿里云等服务器,开放的端口必有80端口,浏览器访问localhost,默认访问的是localhost:80。

也就是说,我们访问的是80端口,但是我们真实想访问的是8020端口,这里使用Nginx反向代理来实现这个功能。

反向代理思路:用户访问请求时,放到到达Nginx,Nginx根据自定义的路由规则进行请求的转发,从而实现路由功能。

即用户访问的不是真实的服务器,而是代理服务器。

完成测试

1、下载nginx安装包,网上随便找个绿色免安装的,跟tomcat一样。

2、自定义nginx配置。

3、启动nginx服务器。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下边很关键,这里多说两句。

nginx.conf文件里边,我们加了这句话,我们可以直接在配置文件里边写的,但是因为太乱了,所以我们新建了一个文件夹。

那么我们自定义的文件夹里的配置文件怎么写呢,参考nginx.conf,将注释以及一些乱七八糟的去掉,看看长什么样。

include vhost/*.conf;
	
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
include vhost/*.conf;
	
    server {
        listen       80;
        server_name  localhost;

        location / {           //这里指,url路径匹配到/时,进入nginx根目录下静态资源文件夹html.
            root   html;
            index  index.html index.htm;
        }

        
        #location ~ \.php$ {	//这里指,url路径匹配到/xiao,/lao,/niu时,代理,到下边的路径。
        #    proxy_pass   http://127.0.0.1;    /proxy就是代理。
        #}

       
    }

所以应该知道,自定义匹配规则怎么写了吧。
方法一:

server {
	listen       80;
	server_name  www.xiaolaoben.com;
	
	location / {
	    proxy_pass   http://localhost:8020;
		proxy_connect_timeout 600;
		proxy_read_timeout 5000;
	}
}

方法二(小老犇版):

upstream xiao-laoben{
	server	127.0.0.1:8020;		//upstream策略,负载均衡。
    							//对应机器。
    							//如果你有另外的机器往下加。
}


server {
	listen       80;		
	server_name  www.xiaolaoben.com;
	
	location / {
	    proxy_pass   http://xiao-laoben;        
		proxy_connect_timeout 600;
		proxy_read_timeout 5000;
	}
}

修改完毕,接下来启动nginx就可以了,注意,只要你修改了配置文件,一定要重新启动。
在这里插入图片描述
命令行启动:

start nginx.exe 启动

nginx.exe -s stop 关闭

nginx.exe -s reload 重启

注意事项

强调:都看到了上边有个nginx.exe,最简单的方法就是双击一下,但是你们是计算机高手啊,怎么可以用这么low的方式呢,(不要用这种方式,你双击启动了,你关的时候,去任务管理器多麻烦,并且如果你关不掉,再用命令行会报错)。
报错:

nginx: [error] CreateFile() "D:\software\nginx-1.14.0-windows\nginx-1.14.0/logs/nginx.pid" failed (2: The system cannot find the file specified)

解决:
双击启动这种方式不会在logs/目录下创建nginx.pid文件,命令行就没问题了,只要你碰到这种错误,问题不大,想办法将你的nginx杀干净就好了。最简单的方法,重启电脑,哈哈哈。

访问一下,www.xiaolaoben.com。没毛病,success,学会的掌声。
最终成果:
在这里插入图片描述
······································································
创作不易,半夜三更,当你们跟女朋友们或者五指山玩耍时,博主在努力的敲文字≧◇≦,若有帮助,请双击666,支持老铁一波。
你学废了吗

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值