一、nginx安装在服务器,本机运行服务,如何使用远程nginx代理本机服务?

打开nginx配置文件,位置:/usr/local/nginx/conf/nginx.conf,在http模块中添加以下server代码段:

http {

server {

listen 18088;

server_name localhost; # 服务器地址172.40.252.38

location / {

proxy_pass http://172.39.128.90:18088; # 目的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;

}

}

}

server_name默认为localhost,不用修改,实际为服务器地址。它将监听端口18088。在location /段中,我们将请求代理到本地主机的端口18088上。注意,proxy_pass指令的参数应该是代理服务器的URL,此处为本机的ip地址(对于服务器就是代理的目标IP地址)。添加了一些代理头,如Host,X-Real-IP和X-Forwarded-For,以确保代理服务器可以正确地处理请求。保存配置文件,进入sbin文件夹,-t命令验证配置文件是否正确,显示ok和successful则表示配置文件语法没问题。

cd /usr/local/nginx/sbin

./nginx -t

重启nginx

./nginx -s reload

本地机运行idea项目,springboot启动服务,浏览器中输入网址能获取数据信息:http://172.39.128.90:18088/pms-production-command-center/dict/listAll,服务启动成功。使用nginx服务代理访问该服务,在浏览器中输入:http://172.40.252.38:18088/pms-production-command-center/dict/listAll,访问成功,获取数据。

二、同一个服务,实际项目发给不同的线下环境进行测试或生产需要加后缀,配置文件中如何处理?(不同的机器,不同的生产环境,不同的服务)

需求:服务没有-test,添加-test后缀请求转发给另一台机器,且能访问原服务,另一台机器IP地址172.39.128.237,不带后缀的服务本机依然可以访问。

打开配置文件,添加location模块

http {

server {

listen 18088;

server_name localhost; # 服务器地址172.40.252.38

location /pms-production-command-center-test {

proxy_pass http://172.39.128.237:18088/pms-production-command-center; # 目的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;

}

location / {

proxy_pass http://172.39.128.90:18088; # 本机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启动服务,访问http://172.39.128.90:18088/pms-production-command-center/dict/listAll,能够获取数据信息,启动成功。本机浏览器访问http://172.40.252.38:18088/pms-production-command-center/dict/listAll,能够获取数据信息,nginx代理成功。另一台机器访问http://172.40.252.38:18088/pms-production-command-center-test/dict/listAll,能够获取数据信息,nginx代理另一台机器成功。

三、Nginx简单访问静态资源

目录下存放图片 /usr/data/images/pic.png 配置文件添加location

location / images{

root /usr/data;

try _files $uri $uri=404; # 找不到文件报错404

}

访问http://172.40.252.38:18088/images/pic.png,显示图片访问成功

四、Nginx代理网关

开通服务器中的网关,通过网关端口19000访问服务:http://172.40.252.38:19000/pms-production-command-center-test/dict/listAll,报错404?

404页面未找到两种情形

网关没权限,找不到服务 (带-test) 找到服务(服务名正确),sci权限登陆成功,再访问,请求地址拼写错误或者验证信息错误(token令牌:_rt),例如访问的是:http://172.40.252.38:19000/pms-production-command-center-test/dict/listAllaaa

通过nginx代理网关,访问服务,nginx配置文件

网关ip地址就是服务器地址,只是提供一个权限端口访问

http {

server {

listen 18088;

server_name localhost; # 服务器地址172.40.252.38

location / {

proxy_pass http://172.40.252.38:19000; # 网关IP地址与端口19000

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

}

502错误

网关关闭

超时504-gateway timeout

nginx–网关–服务,下游服务处理时间过长,超时前置服务–niginx–网关–服务,前置服务设置12秒超时,来回响应时间超时

好文推荐

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: