服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - Nginx同一个域名配置多个项目的实现方法

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

2021-05-20 19:02cc_want Nginx

这篇文章主要介绍了Nginx同一个域名配置多个项目的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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个二级域名到同一个主机

?
1
2
3
4
5
6
7
8
9
10
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

?
1
2
3
4
5
6
7
8
9
10
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

?
1
2
3
4
5
6
7
8
9
10
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同域名配置多项目内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/cc_want/article/details/83780435

延伸 · 阅读

精彩推荐