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

你可能感兴趣的文章
MySQL之DML
查看>>
Mysql事务。开启事务、脏读、不可重复读、幻读、隔离级别
查看>>
MySQL事务与锁详解
查看>>
MySQL事务原理以及MVCC详解
查看>>
MySQL事务及其特性与锁机制
查看>>
mysql事务理解
查看>>
MySQL事务隔离级别:读未提交、读已提交、可重复读和串行
查看>>
MySQL事务隔离级别:读未提交、读已提交、可重复读和串行
查看>>
mysql交互式连接&非交互式连接
查看>>
MySQL什么情况下会导致索引失效
查看>>
MySql从入门到精通
查看>>
MYSQL从入门到精通(二)
查看>>
mysql以服务方式运行
查看>>
mysql优化--索引原理
查看>>
MySQL优化配置详解
查看>>
mysql会员求积分_MySql-统计所有会员的最高前10次的积分和
查看>>
MySQL修改密码报错ERROR 1396 (HY000): Operation ALTER USER failed for ‘root‘@‘localhost‘
查看>>
Mysql全局优化参数
查看>>
MySQL全面瓦解:安装部署与准备
查看>>
MySQL内存表使用技巧
查看>>