1. 先解释下什么是反向代理?

反向代理是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
正向代理代理客户端,反向代理代理服务器。对于反向代理服务端对于客户端访问时无感的,不需要做任何配置。

2. 如何设置二级域名和nginx反向代理

步骤:

  1. 解析一个二级域名
    首先得去解析一个二级域名,去你买的域名那解析如图
    这个jenkins就是我解析的一个二级域名(直接访问那肯定都访问的80端口啦)解析完如果能正常访问80端口那就解析没问题

nginx 配置二级域名 打不开 nginx二级域名绑定_前端

  1. 配置nginx反向代理
    进入nginx配置目录

    配置如下:
server {
       listen 80; // 监听80端口
       server_name jenkins.xxxx.cn; //你的二级域名
       location / {
        proxy_redirect http://jenkins.xxx.cn:8080/ /; // 这是代理重定向地址为二级域名的8080端口(因为我的jenkins配置默认是8080端口)
        proxy_pass http://127.0.0.1:8080/; // 代理的地址 主机ip+端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
  1. 重启下nginx
service nginx restart

到这里配置就完了是不是很简单!!!

可能遇到的问题 ?
1,配置了访问还是和主域名打开的东西一样?
答:你不妨清除下浏览器缓存在试下😊😊😊
2,配置代理了访问出现502 ?
答:代理是一个server, 是不是忘了配置项目的server ?
代理配置其他项目(jenkins 默认是8080)那么本身server 监听肯定也不能少的么。例如

server {
       listen 4399; 
       server_name  vuedemo.xxx.cn;
       root /var/www/demo/dist;
       index index.html;
       location / {
               try_files $uri $uri/ =404;
     	}
     }

server {
       listen 80; // 监听80端口
       server_name vuedemo.xxxx.cn; //你的二级域名
       location / {
        proxy_redirect http://vuedemo.xxx.cn:4399/ /;
        proxy_pass http://127.0.0.1:4399/; 
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

这样你就可以将4399这个端口的项目通过nginx反向代理到你二级域名下啦。

总结: 通过nginx反向代理你就可以解析多个二级域名,再也不需要通过不同端口访问项目啦。是不是很爽。