1. 先解释下什么是反向代理?
反向代理是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
正向代理代理客户端,反向代理代理服务器。对于反向代理服务端对于客户端访问时无感的,不需要做任何配置。
2. 如何设置二级域名和nginx反向代理
步骤:
- 解析一个二级域名
首先得去解析一个二级域名,去你买的域名那解析如图
这个jenkins就是我解析的一个二级域名(直接访问那肯定都访问的80端口啦)解析完如果能正常访问80端口那就解析没问题
- 配置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;
}
}
- 重启下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反向代理你就可以解析多个二级域名,再也不需要通过不同端口访问项目啦。是不是很爽。