Như đã đề cập ở trên, ta có thể config nhiều server contex trong cùng một Configuration File, vậy ta phải config như thế nào để giúp nginx hiểu và handle request như ý ta muốn.
Đầu tiên, chúng ta sẽ sử dụng directive listen
để xác định server context
đang hoạt động trên port nào. Theo dõi ví dụ sau:
http {
server {
listen 80;
server_name nglearns.test;
return 200 "hello from port 80!\n";
}
server {
listen 8080;
server_name nglearns.test;
return 200 "hello from port 8080!\n";
}
}
Tại ví dụ trên, ta sử dụng các Directive :
Với config như trên, ta sẽ thực nghiệm bằng câu lệnh sau cho PORT 80
curl nglearns.test:80
Kết quả
# hello from port 80!
Tương tự, ta thực nghiệm cho PORT 8080
curl nglearns.test:8080
Kết quả
# hello from port 8080!
Sau ví dụ trên, ta thấy được nginx đã handle tốt cho cả hai PORT 80 và 8080.
Ngoài cách sử dụng listen
, ta còn có thể sử dụng server_name
để thay thế.
Hãy theo dõi ví dụ sau :
http {
server {
listen 80;
server_name nglearns.test;
return 200 "your local nglearns!\n";
}
server {
listen 80;
server_name ws.nglearns.test;
return 200 "welcome dear ws.nglearns!\n";
}
}
Với config như trên, ta sẽ thực nghiệm bằng câu lệnh sau cho "nglearns.test"
curl http://nglearns.test
kết quả
# your local nglearns!
Tương tự, ta thực nghiệm cho "ws.nglearns.test"
curl http://ws.nglearns.test
kết quả
# welcome dear ws.nglearns!
Nếu xảy ra lỗi về domain, bạn cần phải kiểm tra lại file hosts
để thêm hai domain để cho phép chúng hoạt động trên hệ thống.
192.168.20.20 nglearns.test
192.168.20.20 ws.nglearns.test