博客
关于我
使用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-触发器及创建触发器失败原因
查看>>
MySQL-连接
查看>>
mysql-递归查询(二)
查看>>
MySQL5.1安装
查看>>
mysql5.5和5.6版本间的坑
查看>>
mysql5.5最简安装教程
查看>>
mysql5.6 TIME,DATETIME,TIMESTAMP
查看>>
mysql5.6.21重置数据库的root密码
查看>>
Mysql5.6主从复制-基于binlog
查看>>
MySQL5.6忘记root密码(win平台)
查看>>
MySQL5.6的Linux安装shell脚本之二进制安装(一)
查看>>
MySQL5.6的zip包安装教程
查看>>
mysql5.7 for windows_MySQL 5.7 for Windows 解压缩版配置安装
查看>>
Webpack 基本环境搭建
查看>>
mysql5.7 安装版 表不能输入汉字解决方案
查看>>
MySQL5.7.18主从复制搭建(一主一从)
查看>>
MySQL5.7.19-win64安装启动
查看>>
mysql5.7.19安装图解_mysql5.7.19 winx64解压缩版安装配置教程
查看>>
MySQL5.7.37windows解压版的安装使用
查看>>
mysql5.7免费下载地址
查看>>