微服务实战(二)nginx配置

说明1:

我选择在自己的Windows电脑上做服务器后台和nginx配置。

说明2:

虽然用提供服务的服务器ip+端口的方式能访问到每一个具体的服务,但是麻烦且不够优雅。本文利用SwitchHosts.exe可以做到让浏览器通过我们设定的虚假域名访问到我们的nginx所在的服务器80端口,再让正在监听80端口的nginx根据输入的二级域名不同(如manage.leyou.com和api.leyou.com),让用户不用输入端口号也能找到具体的服务。

一、通过域名找到nginx

1.1以管理员身份运行SwitchHosts.exe,在Windows电脑本地注册虚假域名解析,让我们虚构一个名为manage.leyou.com和api.leyou.com的域名,解析地址为自己的nginx运行处的ip地址。因为我用的是本机Windows做的nginx,因此我可以设置解析地址为127.0.0.1(本地回调地址)或者cmd窗口输入ipconfig查看本机地址后设置为本机地址。微服务实战(二)nginx配置_第1张图片
1.2测试能不能解析成功:ping manage.leyou.com,ping manage.leyou.com。如果ping失败,则代表本地host文件创建失败,重试第一步。

二、

2.1Vue工程里的config/index.js文件修改host为0.0.0.0(图里是localhost),port设为9001.
微服务实战(二)nginx配置_第2张图片

2.2在build/webpack.dev.conf.js中取消host验证:disableHostCheck: true微服务实战(二)nginx配置_第3张图片

三、nginx带用户找到服务器地址+端口号

3.1nginx安装目录不要有中文。修改nginx安装目录conf/nginx.conf文件为




events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    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   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
	
	server {
        listen       80;
        server_name  manage.leyou.com;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
            proxy_pass http://192.168.52.1:9001;	
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
        }
    }
	
    server {
        listen       80;
        server_name  api.leyou.com;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
            proxy_pass http://192.168.52.1:10010;
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
        }
    }

}

其中192.168.52.1是我的本机ip地址,也就是用户真正想请求的服务器地址,端口号9001是我的Vue工程(后台管理页面)。

总结

从域名找到正在监听80端口的nginx,再从已经配置好路径的nginx找到提供服务的服务器地址+端口。这样就不需要用户输入提供服务的服务器ip地址和端口也能访问。
课件资料:https://wws.lanzous.com/b01zzgg4d
密码:fhk6
源码:https://download.csdn.net/download/qq_40056044/15561394
微服务实战(二)nginx配置_第4张图片
ps:若nginx和端口号为9001的vue项目都运行在同一机器的话,如果nginx内配置了listen 9001,那么nginx和端口号为9001的vue项目只能启动一个。解决办法是让nginx运行在虚拟机上。

你可能感兴趣的:(笔记)