随笔 - 23,  文章 - 0,  评论 - 0,  阅读 - 12164

   背景介绍,新进公司之前后台是php开发的外包做的,比较难以满足现在的业务,所以让我写一套系统 满足现在的业务,外包做的项目环境搭建是ubun18.04+mysql+php+nginx(php发布使用端口是80),里面php程序的话有个数据上传接口,Get:url/project/UploadData.php,与外部交互。这个地方就需要做跳转

   1直接在程序里面做转发

   找到php程序发布的目录,找到project目录下的UploadData.php文件顶部

< ?php 
header("Location: https://www.cnblogs.com/axyls/"); 
exit;
?>  

这个方法可以用但是转了好几层,先是用户请求到nginx,然后到php程序,然后到自己写的.net core中,用了一段时间后直接取消了,感觉不太好

 

  2直接Nginx里面做转发

  找到nginx配置文件nginx.conf,在etc/nginx/下

1
2
3
4
5
6
http {
    server {
            server_name 127.0.0.1;
  
            location /project/UploadData.php <br>           {
                    proxy_pass https://www.cnblogs.com/axyls;           } <br>      } <br>  }

  这样就可以转发了,但是如果数据多了请求频繁了就要在nginx里面做限制,要求一个ip一秒访问一次UploadData.php这个接口网页,

1
limit_req_zone $binary_remote_addr zone=one2:10m   rate=1r/s;

  然后跳转我的网页,但是最后发现.net core如果要区分用户请求ip是无法区分的,因为都是nginx转发到.net core,(nginx应该可以做到转发得到时候用户请求的是什么ip就抓发什么ip)

 3直接正在.net core里面设置接收这个请求

   在 Startup.cs里面添加

1
2
3
4
5
6
7
8
9
10
11
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Login}/{action=Index}/{id?}");
 
endpoints.MapControllerRoute(
name: "project",
pattern: "{controller=project}/{action=UpdateData}.php");
     
});

  然后将程序发布到80端口,在program.cs里面

1
2
3
4
5
6
7
8
9
10
11
12
13
    public static IHostBuilder CreateHostBuilder(string[] args) =>
              Host.CreateDefaultBuilder(args)
                  .ConfigureWebHostDefaults(webBuilder =>
                  {
                      webBuilder.UseStartup<Startup>()
       
                    .UseUrls("http://0.0.0.0:80")
               
                   ;
                  })
              .UseNLog()
              .UseServiceProviderFactory(new AutofacServiceProviderFactory());
}

  卸载nginx,或者关掉nginx,这样接口接收到请求数据

 

posted on   啊修  阅读(704)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示