Nginx同一個域名配置多個項目的實現方法

使用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同域名配置多項目內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!