Nginx本地代理,Nginx代理服务配合本地host映射,解决本地代码跑测试环境服务

问题描述:项目登录使用cas单点登录,并不在前端自己登录,本地启动起来之后调用接口,后端会判断是否经过认证登录,如果没有,则会返回cas登录的页面,登录成功后直接跳转至测试环境的系统首页。问题就出在登录之后,不使用token认证,是后端自己的服务判断,因为本地是localhost,而cas登录成功后跳转的是服务器上的测试环境,所以本地每次请求接口都会认为是未登录状态,导致无法进行本地开发

解决方法:

  1. 看看后端是否可以改为返回token,前端每次请求携带token
  2. 在后端无法绕开认证的情况下,我们可以在本地启动一个nginx代理服务,搭配host映射;nginx监听端口9999,host将本地127.0.0.1映射到我们测试环境的域名xxx.xxx.com,我们本地项目启动之后,访问xxx.xxx.com:9999/ 就可以直接跑我们本地的代码了;

Host映射

127.0.0.1 xxxdev.xxx.com  --- 本地开发使用这个
#10.5.253.145  xxxdev.xxx.com  --- 访问测试环境使用这个

Nginx代理配置

server {
        listen       8899;
        server_name  miccdev.nsfocus.com localhost;
        #charset koi8-r;
        access_log logs/access.log combined;
		error_log logs/error.log debug;
        location / {
            root    M:\work\Nsfocus_Manager\dev\hm_callcenter\html;
            index index.html;
		#上传文件大小控制
    	client_max_body_size 80M;
        }
		location ^~ /400/ {
			proxy_pass  http://58.48.122.206:8517;
        }
        error_page   500 502 503 504 404 403  /errorPage.html;
        location = /errorPage.html {
            root    M:\work\Nsfocus_Manager\dev\CallCenter\nsfocus-seats;
        }
		
				#callcenter_seats
       location ^~ /seatsapi/ {
                        proxy_pass  http://callcenterSeats;
                        proxy_set_header   Host             $host:$server_port;
                        proxy_set_header   X-Real-IP        $remote_addr;
                        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                        client_max_body_size 80M;
        }
}

你可能感兴趣的:(nginx,host,运维)