nginx服务代理配置

一、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,运维)