时间:2022-02-04 08:54:48 | 栏目:Nginx | 点击:次
Nginx反向代理(Reverse Proxy):反向代理是指服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在。

目的:隐藏8081端口,通过访问80端口实现访问8081端口
我们配置api 在8081端口,并且成功部署,此时8081对外开放,所以可访问

以Ubuntu环境为例
$ cd /etc/nginx/ $ vim nginx.conf
Nginx http节点下 配置8081端口反向代理如下
server {
listen 80 default_server;
listen [::]:80 default_server;
location /api/ {
proxy_pass http://127.0.0.1:8081;
}
location /apidocs/ {
proxy_pass http://localhost:8081/api/;
index swagger-ui.html;
error_page 404 http://localhost:8081/api/swagger-ui.html;
}
}
配置完成后重启Nginx服务
$ service nginx restart
访问http://ip/apidocs/swagger-ui.html 成功

我们可以关掉服务器安全组规则,去掉8081端口-安全组规则,可以登录阿里云配置,以阿里云为例,其他同理
http://ip/apidocs/swagger-ui.html 依然可以访问
http://ip:8081/api/swagger-ui.html 不可访问

至此,我们实现了nginx反向代理8081端口,通过访问80端口,代理到8081端口的目的
重点理解Ngnix location&proxy_pass字段规则
在http节点下,加入upstream节点
upstream demo {
server ip:8080;
server ip:8081;
}
将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称
location / {
proxy_pass http://demo;
}
##
# add cnn SSL Settings
##
server{
listen 443;
server_name demo.com;
ssl on;
ssl_certificate /etc/nginx/cert/test.pem;
ssl_certificate_key /etc/nginx/cert/test.key;
ssl_session_timeout 5m;
location / {
#根域名或者ip
proxy_pass http://demo.com;
}
}