欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Nginx同一个域名配置多个项目的实现方法

程序员文章站 2022-03-19 09:04:39
使用nginx要在同一个域名下配置多个项目有两种方式: nginx按不同的目录分发给不同的项目 启用二级域名,不同的项目分配不同的二级域名1.nginx按不同的目录分发给不同的项目:server...

使用nginx要在同一个域名下配置多个项目有两种方式:

  • nginx按不同的目录分发给不同的项目
  • 启用二级域名,不同的项目分配不同的二级域名

1.nginx按不同的目录分发给不同的项目:

server {
  listen  80;
  server_name example.com;
 
  location ^~ /project1 {
    proxy_pass   http://localhost:8081;
    proxy_set_header host    $host;
    proxy_set_header x-real-ip  $remote_addr;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  }
 
  location ^~ /project2 {
    proxy_pass   http://localhost:8082;
    proxy_set_header host    $host;
    proxy_set_header x-real-ip  $remote_addr;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  }
 
  location / {
    proxy_pass   http://localhost:8080;
    proxy_set_header host    $host;
    proxy_set_header x-real-ip  $remote_addr;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  }
}

这里配置了三个项目:

  • http://example.com/project1路径分发到http://localhost:8081
  • http://example.com/project2路径分发到http://localhost:8082
  • 其他路径分发到http://localhost:8080

2.启用二级域名,不同的项目分配不同的二级域名

注意:很多同学说无效,原因是一定要先对二级域名添加a记录到主机,同一个域名可以添加n个二级域名到同一个主机

server {
  listen  80;
  server_name example.com;
  location / {
    proxy_pass   http://localhost:8080;
    proxy_set_header host    $host;
    proxy_set_header x-real-ip  $remote_addr;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  }
}

project1

server {
  listen  80;
  server_name project1.example.com;
  location / {
    proxy_pass   http://localhost:8081;
    proxy_set_header host    $host;
    proxy_set_header x-real-ip  $remote_addr;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  }
}

project2

server {
  listen  80;
  server_name project2.example.com;
  location / {
    proxy_pass   http://localhost:8082;
    proxy_set_header host    $host;
    proxy_set_header x-real-ip  $remote_addr;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  }
}

注意:这三个项目属于不同的域名,项目之间通过http访问会存在跨域问题。

到此这篇关于nginx同一个域名配置多个项目的实现方法的文章就介绍到这了,更多相关nginx同域名配置多项目内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!