banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Apache hay Nginx ?  XML
  [Discussion]   Apache hay Nginx ? 14/02/2012 09:46:32 (+0700) | #1 | 253604
pntri85
Member

[Minus]    0    [Plus]
Joined: 25/08/2011 07:37:41
Messages: 83
Offline
[Profile] [PM]
Chào mọi người !
Em đang dự tính xây dựng 1 web server để chạy website của cty với số lượng kết nối đồng thời có khi lên đến 1000 kết nối. Server IBM x3650 với cấu hình 4GB Ram,Xeon QuadCore E5506 2.13Ghz.
EM đang phân vân chọn Apache hay Nginx để chạy web server ,vì số lượng request tương đối lớn nên em sợ với cấu hình của Server như trên thì Apache sẽ ko chịu nỗi, ko biết với với Nginx thì có thể đáp ứng được nhu cầu của em ko?website em chạy là website bán hàng sử dụng php-mysql. Mong mọi người tư vấn giúp em .Cảm ơn mọi người
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 14/02/2012 10:02:34 (+0700) | #2 | 253609
[Avatar]
vulehcm
Member

[Minus]    0    [Plus]
Joined: 21/11/2011 20:37:50
Messages: 46
Offline
[Profile] [PM]
Apache làm Webserver, Nginx làm reverse proxy. Đây là mô hình được khá nhiều người sử dụng hiện nay. Bạn nên tham khảo qua mô hình này xem sao.
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 14/02/2012 10:11:47 (+0700) | #3 | 253611
pntri85
Member

[Minus]    0    [Plus]
Joined: 25/08/2011 07:37:41
Messages: 83
Offline
[Profile] [PM]

vulehcm wrote:
Apache làm Webserver, Nginx làm reverse proxy. Đây là mô hình được khá nhiều người sử dụng hiện nay. Bạn nên tham khảo qua mô hình này xem sao. 


Nếu Nginx làm reverse cho Apache thì so với chỉ dùng Nginx thì sao bạn,cái nào cho performance cao hơn?Mong nghe ý kiến của bạn
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 14/02/2012 10:42:55 (+0700) | #4 | 253617
[Avatar]
Ikut3
Elite Member

[Minus]    0    [Plus]
Joined: 24/09/2007 23:47:03
Messages: 1429
Location: Nhà hát lớn
Offline
[Profile] [PM] [Yahoo!]
Hello pntri85

Việc so sánh performance nào cao hơn theo mình tự tay bạn làm kiểm chứng sẽ rõ nhất. Cái này có thể dùng autobench & httperf.
Về mặt performance Nginx đứng trước chịu trách nhiệm front end cho các apache request phía sau mình nghĩ cũng vẫn có mặt hạn chế nếu như các statics cache file làm việc không tốt. Ngoài ra có 1 điểm bất lợi khác mà nginx mắc phải, đó là các file configuration không có dynamically , tất cả các cấu hình ngnix nó store trong file config đó. Vậy nên việc thay đổi có tính áp dụng ngay tức thì sẽ không thể. Theo mình điều này cũng hạn chế ít nhiều đến việc apply hay change trong thời điểm run time. Đặc biệt là các hệ thống yêu cầu có tính ổn định 24/7

Bạn nghiên cứu và so sánh thêm các sản phẩm khác như lighttpd hay varnish xem sao

Thanks
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 14/02/2012 10:56:11 (+0700) | #5 | 253625
[Avatar]
vulehcm
Member

[Minus]    0    [Plus]
Joined: 21/11/2011 20:37:50
Messages: 46
Offline
[Profile] [PM]
Ngoài ra nếu server chỉ có một website duy nhất thì bạn cũng có thể dùng món này : http://www.cherokee-project.com/ làm webserver.

http://www.sharms.org/blog/2009/04/the-cherokee-webserver-great-choice-for-vpss/
http://c6s.co.uk/webdev/209
http://nbonvin.wordpress.com/2011/03/14/apache-vs-nginx-vs-varnish-vs-gwan/
http://www.whisperdale.net/11-nginx-vs-cherokee-vs-apache-vs-lighttpd.html
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 14/02/2012 12:15:30 (+0700) | #6 | 253647
vd_
Member

[Minus]    0    [Plus]
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
[Profile] [PM]
nginx handle connections, apache detect anomaly (modsec), app server sau cùng (php-fgci v.v...)
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 14/02/2012 14:54:17 (+0700) | #7 | 253721
Yoshika
Member

[Minus]    0    [Plus]
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
[Profile] [PM]
Đã có nhiều bài viết bàn luận về vấn đề này. Theo mình, bạn có thể áp dụng: Apache + Nginx + Memcached.
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 15/02/2012 00:00:15 (+0700) | #8 | 253811
pntri85
Member

[Minus]    0    [Plus]
Joined: 25/08/2011 07:37:41
Messages: 83
Offline
[Profile] [PM]
Cảm ơn mọi người đã góp ý. Mục đích e dùng Nginx để tăng khả năng handle số lượng connection.Ko biết khi dùng Nginx làm reverse cho Apache thì nếu trường hợp có 1000 request đồng thời thì lúc đó Nginx cũng sẽ gửi 1000 request tới cho Apache xử lý, vậy thì lúc đó Apache với khả năng tiếp nhận số request kém hơn Nginx thì nó sẽ xử lý như thế nào,có chịu nổi ko?
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 15/02/2012 09:16:24 (+0700) | #9 | 253833
[Avatar]
vulehcm
Member

[Minus]    0    [Plus]
Joined: 21/11/2011 20:37:50
Messages: 46
Offline
[Profile] [PM]
Bạn tìm hiểu thêm về mencached và cách hoạt động của nó là bạn sẽ tìm hiểu ra được vấn đề tại sao nên sử dụng nginx làm reverse proxy. Thực ra apache cũng có mod proxy và memcached, nhưng người ta thường sử dụng nginx hơn, đây cũng là một vấn đề bạn nên tìm hiểu kĩ.
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 15/02/2012 09:35:03 (+0700) | #10 | 253841
vd_
Member

[Minus]    0    [Plus]
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
[Profile] [PM]
@ptri85
1000 connections đến server có nhiều loại, static và dynamic, static có thể serve trực tiếp từ nginx, chỉ forward dynamic đến apache -> giảm tải. chưa kể reverse proxy có thể gửi đến nhiều backend server -> load balancing (clustering)
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 15/02/2012 23:18:37 (+0700) | #11 | 253963
pntri85
Member

[Minus]    0    [Plus]
Joined: 25/08/2011 07:37:41
Messages: 83
Offline
[Profile] [PM]
Cảm ơn mọi người đã nhiệt tình thảo luận. Vì lúc trước em có dùng Apache để chạy website của cty nhưng bị thất bại .Lúc đó em config Apache sử dụng MPM Prefork để chạy PHP nên với số lựong truy cập lớn thì Apache ngốn Ram rất nhiều dẫn đến treo Server.Vì lần này ko được thất bại nữa do đó em rất phân vân ko biết có nên dùng Nginx làm reverse cho Apache hay sử dụng luôn Nginx làm web server.Không biết Nginx kết hợp với PHP-Mysql có ổn ko?Mong mọi người cho ý kiến
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 16/02/2012 13:41:32 (+0700) | #12 | 254014
Yoshika
Member

[Minus]    0    [Plus]
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
[Profile] [PM]

pntri85 wrote:
Cảm ơn mọi người đã nhiệt tình thảo luận. Vì lúc trước em có dùng Apache để chạy website của cty nhưng bị thất bại .Lúc đó em config Apache sử dụng MPM Prefork để chạy PHP nên với số lựong truy cập lớn thì Apache ngốn Ram rất nhiều dẫn đến treo Server.Vì lần này ko được thất bại nữa do đó em rất phân vân ko biết có nên dùng Nginx làm reverse cho Apache hay sử dụng luôn Nginx làm web server.Không biết Nginx kết hợp với PHP-Mysql có ổn ko?Mong mọi người cho ý kiến 

Bạn có thể tham khảo: http://cachcaidat.com/2010/01/s%E1%BB%AD-d%E1%BB%A5ng-nginx-va-memcached-d%E1%BB%83-tang-t%E1%BB%91c-apache-tren-debian-lenny/
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 25/02/2012 20:16:14 (+0700) | #13 | 255467
[Avatar]
camaptrang
Member

[Minus]    0    [Plus]
Joined: 11/11/2004 01:43:32
Messages: 188
Location: US
Offline
[Profile] [PM] [Yahoo!]

pntri85 wrote:
sử dụng luôn Nginx làm web server.Không biết Nginx kết hợp với PHP-Mysql có ổn ko?Mong mọi người cho ý kiến 

Nginx ok với php và mysql bạn à , còn việc 1000 connections của bạn thực sự là 1000 request đồng thời điểm và bạn cũng cần dự phòng cho trường hợp bạ có nhiều hơn số truy cập không mong muốn, bạn sử dụng 2 server để phân tải dự phòng vẫn hơn là 1.
Mỗi một đồng mua sản phẩm tàu, có thể sẽ trở thành một viên đạn bắn vào đồng bào chiến sĩ Vietnam ...
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 26/02/2012 05:41:49 (+0700) | #14 | 255535
[Avatar]
.lht.
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 10:06:38
Messages: 75
Location: Inside you
Offline
[Profile] [PM]

vd_ wrote:
nginx handle connections, apache detect anomaly (modsec), app server sau cùng (php-fgci v.v...) 


Mình thấy tận dụng 1 số module của nginx dành cho việc detect abnomal request ... cũng khá ổn và tốt (tuy không bằng mod_security) smilie
Trash from trash is the place for new good things ~
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 27/02/2012 08:12:31 (+0700) | #15 | 255663
vd_
Member

[Minus]    0    [Plus]
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
[Profile] [PM]
@.lht.
ý bạn nói là http://code.google.com/p/naxsi/ ?

Ý tưởng whitelisting url pattern để chặn các abnormal request cũng khá hay, tuy nhiên việc maintain có lẽ là không dễ khi web app được cập nhật thường xuyên. Tui cũng đang theo dõi coi độ phổ biến của naxsi để lúc nào đó dùng thử.
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 27/02/2012 15:43:17 (+0700) | #16 | 255814
pntri85
Member

[Minus]    0    [Plus]
Joined: 25/08/2011 07:37:41
Messages: 83
Offline
[Profile] [PM]
Cảm ơn mọi người đã nhiệt tình giúp đỡ
Sau khi setup Nginx,php-fpm và mysql và thực hiện bechmark trang index với ab tool được kết quả như sau:


Concurrency Level: 1000
Time taken for tests: 83.143 seconds
Complete requests: 10000
Failed requests: 86
(Connect: 0, Receive: 0, Length: 86, Exceptions: 0)
Write errors: 0
Non-2xx responses: 28
Total transferred: 967168678 bytes
HTML transferred: 964043708 bytes
Requests per second: 120.27 [#/sec] (mean)
Time per request: 8314.292 [ms] (mean)
Time per request: 8.314 [ms] (mean, across all concurrent requests)
Transfer rate: 11359.97 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 1 471 1304.5 177 21186
Processing: 492 7546 8158.6 5799 64531
Waiting: 156 2166 7587.2 246 60938
Total: 493 8017 8198.8 6258 64559

Percentage of the requests served within a certain time (ms)
50% 6258
66% 7854
75% 9045
80% 9921
90% 12892
95% 17474
98% 48984
99% 53300
100% 64559 (longest request) 


Ko biết với kết quả trên thì có ổn ko , Server em có thể chịu tải được khoảng 1000 request cùng lúc ko ?Mọi người đánh giá giúp em với vì em cũng chưa rõ lắm với kết quả benchmark trên

[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 29/02/2012 22:47:39 (+0700) | #17 | 256329
centos
Member

[Minus]    0    [Plus]
Joined: 28/03/2008 17:13:12
Messages: 219
Offline
[Profile] [PM]

pntri85 wrote:
Cảm ơn mọi người đã nhiệt tình giúp đỡ
Sau khi setup Nginx,php-fpm và mysql và thực hiện bechmark trang index với ab tool được kết quả như sau:


Concurrency Level: 1000
Time taken for tests: 83.143 seconds
Complete requests: 10000
Failed requests: 86
(Connect: 0, Receive: 0, Length: 86, Exceptions: 0)
Write errors: 0
Non-2xx responses: 28
Total transferred: 967168678 bytes
HTML transferred: 964043708 bytes
Requests per second: 120.27 [#/sec] (mean)
Time per request: 8314.292 [ms] (mean)
Time per request: 8.314 [ms] (mean, across all concurrent requests)
Transfer rate: 11359.97 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 1 471 1304.5 177 21186
Processing: 492 7546 8158.6 5799 64531
Waiting: 156 2166 7587.2 246 60938
Total: 493 8017 8198.8 6258 64559

Percentage of the requests served within a certain time (ms)
50% 6258
66% 7854
75% 9045
80% 9921
90% 12892
95% 17474
98% 48984
99% 53300
100% 64559 (longest request) 


Ko biết với kết quả trên thì có ổn ko , Server em có thể chịu tải được khoảng 1000 request cùng lúc ko ?Mọi người đánh giá giúp em với vì em cũng chưa rõ lắm với kết quả benchmark trên

 


Hi bạn

Cái branchmark chủ yếu để test vòng ngoài, ko đánh giá hết được khả năng xử lý của hệ thống đâu vì nó test trên một static page. Nó còn phụ thuộc vào request đến db....

Nếu bạn đã đặt ra với request 1000 connection đồng thời thì mình thấy ko ổn cho cái mà bạn đang sử dụng trên cùng một server như vậy. NGINX chỉ làm reverse proxy. nên nếu bạn để như vậy thì apache chết nginx cũng ko thể xử lý được.

Do vậy, NGINX trong mô hình này làm reverse proxy và loadbancing cho apache thì hợp lý hơn
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 29/02/2012 23:02:48 (+0700) | #18 | 256333
pntri85
Member

[Minus]    0    [Plus]
Joined: 25/08/2011 07:37:41
Messages: 83
Offline
[Profile] [PM]

centos wrote:

pntri85 wrote:
Cảm ơn mọi người đã nhiệt tình giúp đỡ
Sau khi setup Nginx,php-fpm và mysql và thực hiện bechmark trang index với ab tool được kết quả như sau:


Concurrency Level: 1000
Time taken for tests: 83.143 seconds
Complete requests: 10000
Failed requests: 86
(Connect: 0, Receive: 0, Length: 86, Exceptions: 0)
Write errors: 0
Non-2xx responses: 28
Total transferred: 967168678 bytes
HTML transferred: 964043708 bytes
Requests per second: 120.27 [#/sec] (mean)
Time per request: 8314.292 [ms] (mean)
Time per request: 8.314 [ms] (mean, across all concurrent requests)
Transfer rate: 11359.97 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 1 471 1304.5 177 21186
Processing: 492 7546 8158.6 5799 64531
Waiting: 156 2166 7587.2 246 60938
Total: 493 8017 8198.8 6258 64559

Percentage of the requests served within a certain time (ms)
50% 6258
66% 7854
75% 9045
80% 9921
90% 12892
95% 17474
98% 48984
99% 53300
100% 64559 (longest request) 


Ko biết với kết quả trên thì có ổn ko , Server em có thể chịu tải được khoảng 1000 request cùng lúc ko ?Mọi người đánh giá giúp em với vì em cũng chưa rõ lắm với kết quả benchmark trên

 


Hi bạn

Cái branchmark chủ yếu để test vòng ngoài, ko đánh giá hết được khả năng xử lý của hệ thống đâu vì nó test trên một static page. Nó còn phụ thuộc vào request đến db....

Nếu bạn đã đặt ra với request 1000 connection đồng thời thì mình thấy ko ổn cho cái mà bạn đang sử dụng trên cùng một server như vậy. NGINX chỉ làm reverse proxy. nên nếu bạn để như vậy thì apache chết nginx cũng ko thể xử lý được.

Do vậy, NGINX trong mô hình này làm reverse proxy và loadbancing cho apache thì hợp lý hơn  


Cảm ơn bạn đã góp ý.
Cái này là mình test trang index của website, trang index là trang động và có kết nối đến database. Vì mình nghĩ trước khi đưa ra chạy chính thức thì mình cần test performance của nó nên mình mới hỏi về kết quả test
Còn bạn nói ko ổn ở đây là gì mình chưa hiểu lắm, đâu nhất thiết sử dụng Nginx làm reverse proxy đâu,theo mình tìm hiểu thì với website có số request lớn thì người ta khuyên sài Nginx, nghe nói Nginx có khả năng handle số lượng request lớn hơn nhiều so với Apache mà lại ít tốn resource hơn. Còn dùng Nginx để loadbalacing thì tốn chi phí quá vì cần phải thêm ít nhất 2 server ở backend nữa
Mong nhận được góp ý của bạn
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 04/03/2012 21:50:28 (+0700) | #19 | 256864
[Avatar]
plamduy
Member

[Minus]    0    [Plus]
Joined: 19/06/2011 21:34:47
Messages: 4
Offline
[Profile] [PM]
Bạn dùng hẳn luôn Nginx làm server đi. Kết hợp với php5-fpm, + memcached nữa là ổn. Về 1000 request thì ko phải lo, nginx chịu dc 10.000 luôn (C10k-problem). Một số mạng xã hội lớn bây giờ dùng nginx đấy (ZingMe là một ví dụ điển hình)

Xem giới thiệu của nó nhé: http://wiki.nginx.org/Main
[Up] [Print Copy]
  [Discussion]   Apache hay Nginx ? 11/03/2012 10:33:15 (+0700) | #20 | 257845
[Avatar]
longvnit
Member

[Minus]    0    [Plus]
Joined: 11/01/2007 12:02:01
Messages: 9
Offline
[Profile] [PM]
Việc chọn Nginx hay Apache cũng không phải là yếu tố quyết định ở trường hợp này. Hệ thống của bạn đã áp dụng caching layer nào chưa ?
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|