博客
关于我
使用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/

你可能感兴趣的文章
MTCNN 人脸检测
查看>>
MyEcplise中SpringBoot怎样定制启动banner?
查看>>
MyPython
查看>>
MTD技术介绍
查看>>
MySQL
查看>>
MySQL
查看>>
mysql
查看>>
MTK Android 如何获取系统权限
查看>>
MySQL - 4种基本索引、聚簇索引和非聚索引、索引失效情况、SQL 优化
查看>>
MySQL - ERROR 1406
查看>>
mysql - 视图
查看>>
MySQL - 解读MySQL事务与锁机制
查看>>
MTTR、MTBF、MTTF的大白话理解
查看>>
mt_rand
查看>>
mysql /*! 50100 ... */ 条件编译
查看>>
mudbox卸载/完美解决安装失败/如何彻底卸载清除干净mudbox各种残留注册表和文件的方法...
查看>>
mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
查看>>
mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
查看>>
mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
查看>>
MySQL 8.0 恢复孤立文件每表ibd文件
查看>>