Nginx同一個域名配置多個專案
阿新 • • 發佈:2018-12-12
使用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.啟用二級域名,不同的專案分配不同的二級域名
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訪問會存在跨域問題。