博客
关于我
使用Nginx在80端口上代理多个.NET CORE网站
阅读量:459 次
发布时间:2019-03-06

本文共 4617 字,大约阅读时间需要 15 分钟。

有两个.NET CORE3.1网站部署在CentOS7上(内网IP是192.168.2.32),现在想实现访问http://192.168.2.32时访问A网站,访问http://192.168.2.32/bmd/ 时访问的是B网站。

在Nginx里配置两个location可以实现,但会导致B网站的样式和js丢失(B网站页面引用js和css的方式是/css/*和/js/*)。

经过摸索,通过在location /中配置$http_referer来进行跳转,即可完美实现A、B两个网站独立访问。

具体配置如下:

1 # For more information on configuration, see:  2 #   * Official English Documentation: http://nginx.org/en/docs/  3 #   * Official Russian Documentation: http://nginx.org/ru/docs/  4   5 user root;  6 worker_processes auto;  7 error_log /var/log/nginx/error.log;  8 pid /run/nginx.pid;  9  10 # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. 11 include /usr/share/nginx/modules/*.conf; 12  13 events { 14     worker_connections 1024; 15 } 16  17 http { 18     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' 19                       '$status $body_bytes_sent "$http_referer" ' 20                       '"$http_user_agent" "$http_x_forwarded_for"'; 21  22     access_log  /var/log/nginx/access.log  main; 23     gzip                on; 24  25     sendfile            on; 26     tcp_nopush          on; 27     tcp_nodelay         on; 28     keepalive_timeout   65; 29     types_hash_max_size 2048; 30  31     include             /etc/nginx/mime.types; 32     default_type        application/octet-stream; 33  34     # Load modular configuration files from the /etc/nginx/conf.d directory. 35     # See http://nginx.org/en/docs/ngx_core_module.html#include 36     # for more information. 37     include /etc/nginx/conf.d/*.conf; 38  39     server { 40         listen       80; 41         listen       [::]:80; 42         server_name  web; 43         #root         /usr/share/nginx/html; 44  45         # Load configuration files for the default server block. 46         include /etc/nginx/default.d/*.conf; 47  48         location / {             49             proxy_http_version 1.1; 50             proxy_set_header Upgrade $http_upgrade; 51             proxy_set_header Connection keep-alive; 52             proxy_set_header Host $host; 53             proxy_set_header X-Real-IP $remote_addr; 54             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 55             proxy_cache_bypass $http_upgrade; 56             proxy_set_header X-NginX-Proxy true; 57             if ($http_referer ~ 'bmd') 58              { 59                #permanent代表301永久跳转,redirect为302临时跳转,这里的配置是核心,凡是bmd的前缀都带上bmd,从而解决了/css和/js引用404的问题 60                rewrite ^/(.*)$ http://$host/bmd/$1 permanent; 61              } 62             proxy_pass http://127.0.0.1:5000/; 63         } 64         location ^~/bmd/ { 65             root /usr/local/whitelist; 66             proxy_http_version 1.1; 67             proxy_set_header Upgrade $http_upgrade; 68             proxy_set_header Connection keep-alive; 69             proxy_set_header Host $host; 70             proxy_set_header X-Real-IP $remote_addr; 71             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 72             proxy_cache_bypass $http_upgrade; 73             proxy_set_header X-NginX-Proxy true; 74             #rewrite ^/bmd/(.*)$ /$1 break; 75             #proxy_redirect ~^http://192.168.2.32/bmd/(.*)$ http://127.0.0.1:5001/$1; 76             proxy_pass http://127.0.0.1:5001/; 77         } 78        location /Nginxstatus { 79            stub_status on; 80            access_log /usr/local/nginx/logs/status.log; 81            auth_basic "NginxStatus"; 82         } 83  84         error_page 404 /404.html; 85             location = /40x.html { 86         } 87  88         error_page 500 502 503 504 /50x.html; 89             location = /50x.html { 90         } 91     } 92  93     server { 94         listen       8000; 95         listen       [::]:8000; 96         server_name  api; 97         #root         /usr/share/nginx/html; 98  99         # Load configuration files for the default server block.100         include /etc/nginx/default.d/*.conf;101 102         location /api/v1 {103             proxy_pass http://127.0.0.1:5003;104             proxy_http_version 1.1;105             proxy_set_header Upgrade $http_upgrade;106             proxy_set_header Connection keep-alive;107             proxy_set_header Host $host;108             proxy_set_header X-Real-IP $remote_addr;109             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;110             proxy_cache_bypass $http_upgrade;111         }112 113         error_page 404 /404.html;114             location = /40x.html {115         }116 117         error_page 500 502 503 504 /50x.html;118             location = /50x.html {119         }120     }121 }

 

转载地址:http://ruubz.baihongyu.com/

你可能感兴趣的文章
Net任意String格式转换为DateTime类型
查看>>
net包之IPConn
查看>>
net发布的dll方法和类显示注释信息(字段说明信息)[图解]
查看>>
Net和T-sql中的日期函数操作
查看>>
Net处理html页面元素工具类(HtmlAgilityPack.dll)的使用
查看>>
Net操作Excel(终极方法NPOI)
查看>>
Net操作配置文件(Web.config|App.config)通用类
查看>>
net网络查看其参数state_dict,data,named_parameters
查看>>
Net连接mysql的公共Helper类MySqlHelper.cs带MySql.Data.dll下载
查看>>
NeurIPS(神经信息处理系统大会)-ChatGPT4o作答
查看>>
neuroph轻量级神经网络框架
查看>>
Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(7)
查看>>
new Blob()实现不同类型的文件下载功能
查看>>
New Concept English three (35)
查看>>
NEW DATE()之参数传递
查看>>
New Journey--工作五年所思所感小记
查看>>
new Queue(REGISTER_DELAY_QUEUE, true, false, false, params)
查看>>
New Relic——手机应用app开发达人的福利立即就到啦!
查看>>
new work
查看>>
new 一个button 然后dispose,最后这个button是null吗???
查看>>