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 Cần giúp đỡ: Cấu hình Nginx làm reverse proxy  XML
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 23/03/2012 10:59:02 (+0700) | #1 | 259670
Mahoa
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
[Profile] [PM]
CENTOS 5.8

Mình đã cài đặt nginx 1.1.17 trên Centos 5.8 làm reverse proxy.

Nginx lắng nghe ở cổng 80
Apache lắng nghe ở cổng 8080

File cấu hình nginx như sau:

user nginx;
worker_processes 10;
worker_rlimit_nofile 100000;

error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;

}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/www1.abc.com.access.log main;

sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;

server {

listen 80;
server_name www1.abc.com;



access_log /var/log/nginx/www1.abc.com.access.log main;

location / {
include proxy.conf;
proxy_pass http://127.0.0.1:8080;
}
}
}



File cấu hình: proxy.conf

proxy_wwwect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
client_header_buffer_size 64k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 16k;
proxy_buffers 32 16k;
proxy_busy_buffers_size 64k;


Kết quả: nginx thực hiện thành công.

Nhưng: Khi mình truy cập vào forum.abc.com thì nginx vẫn cho truy cập được forum.abc.com mặc dù mình chưa cấu hình forum.abc.com trong nginx.

Mình muốn chỉ những domain hay subdomain được cấu hình trong nginx như: www1.abc.com mới được vào.

Mong các bạn giúp smilie
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 24/03/2012 09:40:33 (+0700) | #2 | 259749
[Avatar]
vitcon01
Member

[Minus]    0    [Plus]
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
[Profile] [PM]
---> lần sau post nội dung file config, bạn nên bỏ vô thẻ code hay quote để phân biệt.
---> Về yêu cầu của bạn, nginx xử lý request dựa vào server_name. Nếu “Host” header không phù hợp với bất kỳ server_name nào trong file config thì nginx sẽ định tuyến reuqest đến server mặc định. Trong cấu hình trên một trong những server mặc định là những server đầu tiên. Nếu bạn muốn chỉ định server mặc định có thể sử dụng tham số tùy chọn(default_serversmilie.
---> đọc bài này để hiểu rõ hơn http://nginx.org/en/docs/http/request_processing.html

--->yêu cầu của bạn có thể làm như sau
Code:
## Only requests to our Host are allowed
      if ($host !~ ^(abc.com|www.abc.com|subdomain.abc.com)$ ) {
         return 444;
      }
JK - JH
()()()
LTKT - LTT
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 24/03/2012 11:44:25 (+0700) | #3 | 259756
Mahoa
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
[Profile] [PM]
Cảm ơn bạn đã trả lời smilie
Mình đang cố gắng đọc tài liệu mà bạn tặng sau đó mình sẽ thực hiện.

Hi vọng là thành công.

[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 26/03/2012 10:05:06 (+0700) | #4 | 259859
Mahoa
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
[Profile] [PM]
Mình đã đọc tài liệu ở đây:

nginx.org/en/docs/http/request_processing.html

Mình cấu hình server như sau:

Code:
server {

        listen       192.168.1.3:80 default_server;
        server_name  www1.domain1.com;

        access_log  /var/log/nginx/www1.domain1.com.access.log  main;

        location / {
		include proxy.conf;
        proxy_pass   http://127.0.0.1:8080;
        }
        }

server {

        listen       192.168.1.3:80;
        server_name  forum.domain1.com;

        access_log  /var/log/nginx/forum.domain1.com.access.log  main;

        location / {
		include proxy.conf;
        proxy_pass   http://127.0.0.1:8080;
        }
        }

 server {

        listen       192.168.1.3:80;
        server_name  www.domain1.com domain1.com;

        access_log  /var/log/nginx/www.domain1.com.access.log  main;

        location / {
		include proxy.conf;
        proxy_pass   http://127.0.0.1:8080;
        }
        }

server {

        listen       192.168.1.3:80;
        server_name  www.domain2.com domain2.com;

        access_log  /var/log/nginx/www.domain2.com.access.log  main;

        location / {
		include proxy.conf;
        proxy_pass   http://127.0.0.1:8080;
        }
        }


server {
    listen       80;
    server_name  "";
    return       444;
}


Vậy mình đã cấu hình cho các domain và subdomain sau:

www1.domain1.com
domain1.com
www.domain1.com
forum.domain1.com

www.domain2.com
domain2.com

Khi mình truy cập vào những tên miền trên, mọi việc rất bình thường.

Nhưng khi mình truy cập vào:

abcf.domain1.com

hay

qahtyeu.domain2.com

Mình vẫn vào được.

Mình muốn là với những domain mình không cấu hình ở trên, thì khi truy cập vào:
Sẽ xuất hiện báo lỗi 404 hay từ chối truy cập hoặc là vào server mặc định www1.domain1.com


Mình đã thử, nhưng không được, mong các bạn giúp smilie
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 26/03/2012 10:37:04 (+0700) | #5 | 259863
miyumi2
Member

[Minus]    0    [Plus]
Joined: 11/03/2012 15:33:55
Messages: 57
Offline
[Profile] [PM]
Bạn thử dời đoạn này lên vị trí đầu tiên, trước các block sever { khác xem sao (thử bỏ luôn dòng sever_name ""):
Code:
server {
     listen       80;
     server_name  "";
     return       444;
 }


[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 26/03/2012 11:35:47 (+0700) | #6 | 259870
Mahoa
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
[Profile] [PM]

miyumi2 wrote:
Bạn thử dời đoạn này lên vị trí đầu tiên, trước các block sever { khác xem sao (thử bỏ luôn dòng sever_name ""):
Code:
server {
     listen       80;
     server_name  "";
     return       444;
 }


 



Mình đã thử, nhưng kết quả không thành công.
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 26/03/2012 15:00:29 (+0700) | #7 | 259891
Yoshika
Member

[Minus]    0    [Plus]
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
[Profile] [PM]
Bạn chèn block server này vào thử xem sao.
Code:
server {
                server_name  _;
                return 444;
        }
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 26/03/2012 15:09:17 (+0700) | #8 | 259893
Mahoa
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
[Profile] [PM]

Yoshika wrote:
Bạn chèn block server này vào thử xem sao.
Code:
server {
                server_name  _;
                return 444;
        }
 


Vừa thử xong.

Khởi động lại nginx OK.

Nhưng vẫn không có tác dụng.

Cảm ơn bạn đã nhiệt tình hổ trợ.
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 26/03/2012 15:31:06 (+0700) | #9 | 259896
Yoshika
Member

[Minus]    0    [Plus]
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
[Profile] [PM]
Bạn check lại xem như thế nào. Vì mình đã test trên server của mình với cấu hình:
Giả sử mình đặt tên của domain và subdomail trong file /etc/hosts:
Code:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.3.88    test.vn x1.test.vn x2.test.vn


File /etc/nginx/nginx.conf của mình:
Code:
http {
.......
server {
                server_name  _;  #default
                return 444;
        }


        server {
                listen       80;
                server_name  test.vn;
                root /var/www/html;
                index index.html;

                ## Proxy Server
                location / {
                        proxy_pass http://127.0.0.1:8080;
                        include /etc/nginx/proxy.conf;
                }
}


Mình gõ trên browser test.vn thì trả về kết quả trang index.html còn khi mình gõ x1.test.vn hay x2.test.vn thì trả về error 444. Mình kiểm tra thành công mà.
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 26/03/2012 16:04:17 (+0700) | #10 | 259898
Mahoa
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
[Profile] [PM]

Yoshika wrote:
Bạn check lại xem như thế nào. Vì mình đã test trên server của mình với cấu hình:
Giả sử mình đặt tên của domain và subdomail trong file /etc/hosts:
Code:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.3.88    test.vn x1.test.vn x2.test.vn


File /etc/nginx/nginx.conf của mình:
Code:
http {
.......
server {
                server_name  _;  #default
                return 444;
        }


        server {
                listen       80;
                server_name  test.vn;
                root /var/www/html;
                index index.html;

                ## Proxy Server
                location / {
                        proxy_pass http://127.0.0.1:8080;
                        include /etc/nginx/proxy.conf;
                }
}


Mình gõ trên browser test.vn thì trả về kết quả trang index.html còn khi mình gõ x1.test.vn hay x2.test.vn thì trả về error 444. Mình kiểm tra thành công mà.  



Thank bạn đã trợ giúp mình.

Lúc trước mình dùng nginx 0.8x rồi sau đó cập nhật lên phiên bản 1.12 mọi chuyện vẫn diễn biến tốt đẹp.

Nhưng cách đây 2 hôm, mình update lên phiên bản nginx 1.17 thì gặp vấn đề này.

Mình vẫn chưa hiểu rõ nguyên nhân ...

Nếu được bạn cho mình xin nick Yh hay Skype để tiện trao đổi, nếu có thể bạn login vào server của mình để xem giúp ^^
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 26/03/2012 16:14:17 (+0700) | #11 | 259899
Yoshika
Member

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

Mahoa wrote:

Yoshika wrote:
Bạn check lại xem như thế nào. Vì mình đã test trên server của mình với cấu hình:
Giả sử mình đặt tên của domain và subdomail trong file /etc/hosts:
Code:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.3.88    test.vn x1.test.vn x2.test.vn


File /etc/nginx/nginx.conf của mình:
Code:
http {
.......
server {
                server_name  _;  #default
                return 444;
        }


        server {
                listen       80;
                server_name  test.vn;
                root /var/www/html;
                index index.html;

                ## Proxy Server
                location / {
                        proxy_pass http://127.0.0.1:8080;
                        include /etc/nginx/proxy.conf;
                }
}


Mình gõ trên browser test.vn thì trả về kết quả trang index.html còn khi mình gõ x1.test.vn hay x2.test.vn thì trả về error 444. Mình kiểm tra thành công mà.  



Thank bạn đã trợ giúp mình.

Lúc trước mình dùng nginx 0.8x rồi sau đó cập nhật lên phiên bản 1.12 mọi chuyện vẫn diễn biến tốt đẹp.

Nhưng cách đây 2 hôm, mình update lên phiên bản nginx 1.17 thì gặp vấn đề này.

Mình vẫn chưa hiểu rõ nguyên nhân ...

Nếu được bạn cho mình xin nick Yh hay Skype để tiện trao đổi, nếu có thể bạn login vào server của mình để xem giúp ^^ 


Bạn nên sử dụng package stable của Nginx thay vì sử dụng package development.
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 26/03/2012 16:21:46 (+0700) | #12 | 259900
Mahoa
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
[Profile] [PM]
Mình cũng nghĩ vậy ... dùng phiên bản stable thì an toàn và ổn định hơn.

Nhưng tính mình lại thích cái nào mới nhất ... tiếc rằng mới nhất không hẳn là xịn nhất !!!

[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 26/03/2012 16:28:32 (+0700) | #13 | 259901
Mahoa
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
[Profile] [PM]

Mahoa wrote:
Mình cũng nghĩ vậy ... dùng phiên bản stable thì an toàn và ổn định hơn.

Nhưng tính mình lại thích cái nào mới nhất ... tiếc rằng mới nhất không hẳn là xịn nhất !!!

 


Mình đang viết mail xin hổ trợ cho nhóm phát triển.

Nếu vấn đề được giải quyết, mình sẽ thông báo cho các bạn, và gởi cho các bạn cách giải quyết của họ.

Cảm ơn các bạn nhiều smilie
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 26/03/2012 16:28:42 (+0700) | #14 | 259902
Yoshika
Member

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

Mahoa wrote:
Mình cũng nghĩ vậy ... dùng phiên bản stable thì an toàn và ổn định hơn.

Nhưng tính mình lại thích cái nào mới nhất ... tiếc rằng mới nhất không hẳn là xịn nhất !!!

 

Thật ra package 1.1.17 đối với development không phải là mới hơn so với 1.0.14 đối với stable đâu bạn à. Cả hai đều là những package mới được release.
PS: Mình đã pm vào hộp thư inbox của bạn rồi đó.
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 26/03/2012 22:11:38 (+0700) | #15 | 259922
Mahoa
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
[Profile] [PM]

Mahoa wrote:

Mahoa wrote:
Mình cũng nghĩ vậy ... dùng phiên bản stable thì an toàn và ổn định hơn.

Nhưng tính mình lại thích cái nào mới nhất ... tiếc rằng mới nhất không hẳn là xịn nhất !!!

 


Mình đang viết mail xin hổ trợ cho nhóm phát triển.

Nếu vấn đề được giải quyết, mình sẽ thông báo cho các bạn, và gởi cho các bạn cách giải quyết của họ.

Cảm ơn các bạn nhiều smilie
 



Sau khi được sự tư vấn của cộng đồng sử dụng nginx ở nginx-bounces@nginx.org

Mình đã giải quyết được vấn đề:

Trích nguyên văn email trợ giúp:

Code:
Try:

server {
    listen [::]:80 default_server;
    server_name _;
    return 444;
}

You'll have to define *all valid* hosts in each server block


Mình đã cấu hình:

Code:
server {
listen       192.168.1.3:80 default_server;

                 server_name  _;
                 return 444;
         }
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 27/03/2012 10:46:00 (+0700) | #16 | 259955
[Avatar]
somenuchi
Member

[Minus]    0    [Plus]
Joined: 08/10/2011 09:19:02
Messages: 55
Offline
[Profile] [PM]
mình cũng đang đọc về Nginx nhưng ở phần localtion có đoạn không thể hiểu được.
Code:
location
syntax: location [=|~|~*|^~|@] /uri/ { ... }

default: no

context: server

This directive allows different configurations depending on the URI. It can be configured using both literal strings and regular expressions. To use regular expressions, you must use a prefix:

[b]"~" for case sensitive matching[/b]
[b]"~*" for case insensitive matching[/b]
there is no syntax for NOT matching a regular expression. Instead, match the target regular expression and assign an empty block, then use location / to match anything else.
The order in which location directives are checked is as follows:

Directives with the "=" prefix that match the query exactly (literal string). If found, searching stops.
All remaining directives with conventional strings. If this match used the "^~" prefix, searching stops.
Regular expressions, in the order they are defined in the configuration file.
If #3 yielded a match, that result is used. Otherwise, the match from #2 is used.


mình không hiểu được sự khác nhau giữa hai prefix là ~ và ~*. Bạn nào có thể giải thích giúp mình điểm khác biệt khi sử dụng hai prefix này không
vô thường
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 27/03/2012 11:33:04 (+0700) | #17 | 259958
Yoshika
Member

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

somenuchi wrote:
mình cũng đang đọc về Nginx nhưng ở phần localtion có đoạn không thể hiểu được.
Code:
location
syntax: location [=|~|~*|^~|@] /uri/ { ... }

default: no

context: server

This directive allows different configurations depending on the URI. It can be configured using both literal strings and regular expressions. To use regular expressions, you must use a prefix:

[b]"~" for case sensitive matching[/b]
[b]"~*" for case insensitive matching[/b]
there is no syntax for NOT matching a regular expression. Instead, match the target regular expression and assign an empty block, then use location / to match anything else.
The order in which location directives are checked is as follows:

Directives with the "=" prefix that match the query exactly (literal string). If found, searching stops.
All remaining directives with conventional strings. If this match used the "^~" prefix, searching stops.
Regular expressions, in the order they are defined in the configuration file.
If #3 yielded a match, that result is used. Otherwise, the match from #2 is used.


mình không hiểu được sự khác nhau giữa hai prefix là ~ và ~*. Bạn nào có thể giải thích giúp mình điểm khác biệt khi sử dụng hai prefix này không 


Bạn nên tham khảo tài liệu Nginx HTTP Server.
Code:
~: 
The requested URI must be a case-sensitive match to the specified
regular expression.
server {
server_name website.com;
location ~ ^/abcd$ {
[...]
}
}
The ^/abcd$ regular expression used in this example specifies that the
pattern must begin (^) with /, be followed by abc, and finish ($) with d.
Consequently, the configuration in the location block:
• Applies to http://website.com/abcd (exact match)
• Does not apply to http://website.com/ABCD (case-sensitive)
• Applies to http://website.com/abcd?param1¶m2
   (regardless of query string arguments)
• Does not apply to http://website.com/abcd/ (trailing slash)
   due to the specified regular expression
• Does not apply to http://website.com/abcde (extra
   characters) due to the specified regular expression
Note: With operating systems such as Microsoft Windows, ~ and ~* are
both case-insensitive, as the OS is case-insensitive itself.

~*:
The requested URI must be a case-insensitive match to the specified
regular expression.
server {
server_name website.com;
location ~* ^/abcd$ {
[...]
}
}
The regular expression used in the example is similar to the previous one.
Consequently, the configuration in the location block:
• Applies to http://website.com/abcd (exact match)
• Applies to http://website.com/ABCD (case-insensitive)
• Applies to http://website.com/abcd?param1¶m2
   (regardless of query string arguments)
• Does not apply to http://website.com/abcd/ (trailing slash)
   due to the specified regular expression
• Does not apply to http://website.com/abcde (extra
   characters) due to the specified regular expression
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 27/03/2012 14:30:26 (+0700) | #18 | 259978
[Avatar]
somenuchi
Member

[Minus]    0    [Plus]
Joined: 08/10/2011 09:19:02
Messages: 55
Offline
[Profile] [PM]
cảm ơn Yoshika mình hiểu được phần này rồi smilie
vô thường
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 27/03/2012 15:58:18 (+0700) | #19 | 259988
traunui
Member

[Minus]    0    [Plus]
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
[Profile] [PM]
Nhân tiện có vụ Nginx + Apache làm Reverse proxy. Em định tạo theard mà thấy có rồi nên nhờ chủ thớt luôn

Đọc thử mấy bài về Nginx + Apache + Memcache để làm Reverse proxy cho Apache. Để giảm tải cho apache và tăng hiệu suất của webserver.

Làm thử theo cái tuts này
http://blog.cuongnv.com/2009/08/su-dung-nginx-va-memcached-e-tang-toc.html

Mọi thứ có vẻ ổn.
Nhưng khi thử down 1 source code để test thì thấy nó như vậy

Qua Apache
[URL=http://imageshack.us/photo/my-images/100/screenshot524p.png/]
[/URL]

Qua Nginx
[URL=http://imageshack.us/photo/my-images/338/screenshot525.png/]
[/URL]

Xác định lỗi đó là do đoạn này

location ~* ^.+.(jpg|jpeg|gif|png|ico|css|tar|mid|midi|wav|js)$ {
expires max;
set $memcached_key "$scheme://$host$request_uri";
memcached_pass 127.0.0.1:11211;
error_page 404 = /fallback;
}
 


Bác nào làm cái memcache này vào góp vui chút
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 27/03/2012 16:28:00 (+0700) | #20 | 259990
Yoshika
Member

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

traunui wrote:
Nhân tiện có vụ Nginx + Apache làm Reverse proxy. Em định tạo theard mà thấy có rồi nên nhờ chủ thớt luôn

Đọc thử mấy bài về Nginx + Apache + Memcache để làm Reverse proxy cho Apache. Để giảm tải cho apache và tăng hiệu suất của webserver.

Làm thử theo cái tuts này
http://blog.cuongnv.com/2009/08/su-dung-nginx-va-memcached-e-tang-toc.html

Mọi thứ có vẻ ổn.
Nhưng khi thử down 1 source code để test thì thấy nó như vậy

Qua Apache
[URL=http://imageshack.us/photo/my-images/100/screenshot524p.png/]
[/URL]

Qua Nginx
[URL=http://imageshack.us/photo/my-images/338/screenshot525.png/]
[/URL]

Xác định lỗi đó là do đoạn này

location ~* ^.+.(jpg|jpeg|gif|png|ico|css|tar|mid|midi|wav|js)$ {
expires max;
set $memcached_key "$scheme://$host$request_uri";
memcached_pass 127.0.0.1:11211;
error_page 404 = /fallback;
}
 


Bác nào làm cái memcache này vào góp vui chút 


Xin hỏi khi bạn tham khảo http://blog.cuongnv.com/2009/08/su-dung-nginx-va-memcached-e-tang-toc.html

Bạn đã chạy service memcached?
Bạn đã chạy file .php để load những file tĩnh vào memcached chưa vậy?
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 28/03/2012 08:13:10 (+0700) | #21 | 260031
traunui
Member

[Minus]    0    [Plus]
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
[Profile] [PM]
Các service em đã start lên hết rồi, file để load cache cũng đã chạy

[root@ngix cron.daily]# service memcached start
Starting memcached: [ OK ]
[root@ngix cron.daily]# php cache_static_file.php
 


[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 28/03/2012 08:26:11 (+0700) | #22 | 260032
Yoshika
Member

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

traunui wrote:
Các service em đã start lên hết rồi, file để load cache cũng đã chạy

[root@ngix cron.daily]# service memcached start
Starting memcached: [ OK ]
[root@ngix cron.daily]# php cache_static_file.php
 


 


Xin hỏi bạn đã tích hợp memcahe vào php chưa? Cụ thể là gói php-pecl-memcached.
Và sau khi chạy pecl install memcache, bạn đã add dòng sau "extension=memcached.so" vào file php.ini chưa vậy?
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 28/03/2012 09:03:48 (+0700) | #23 | 260040
traunui
Member

[Minus]    0    [Plus]
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
[Profile] [PM]
Đây là thông tin tích hợp memcache vào php

[root@ngix nginx]# php -i | grep memcache
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 8192 => 8192
memcache.default_port => 11211 => 11211
memcache.default_timeout_ms => 1000 => 1000
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => standard => standard
memcache.max_failover_attempts => 20 => 20
Registered save handlers => files user memcache
[root@ngix nginx]#
 


Tks.
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 28/03/2012 09:26:43 (+0700) | #24 | 260043
Yoshika
Member

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

traunui wrote:
Đây là thông tin tích hợp memcache vào php

[root@ngix nginx]# php -i | grep memcache
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 8192 => 8192
memcache.default_port => 11211 => 11211
memcache.default_timeout_ms => 1000 => 1000
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => standard => standard
memcache.max_failover_attempts => 20 => 20
Registered save handlers => files user memcache
[root@ngix nginx]#
 


Tks. 


Những thông số mà bạn chưa có.
Code:
memcached
memcached support => enabled
libmemcached version => 1.0.2
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 28/03/2012 09:59:30 (+0700) | #25 | 260052
traunui
Member

[Minus]    0    [Plus]
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
[Profile] [PM]
Cấu hình memcached em theo link này
http://diendanmaychu.vn/showthread.php/333-How-To-Install-memcached-with-memcache-PHP-Extension-on-CentOS-5.x-!

Em đã cài các gói sau

[root@ngix cron.daily]# yum search memcached
============================== Matched: memcached ===============================
libmemcached.i386 : Client library and command line tools for memcached server
libmemcached-devel.i386 : Header files and development libraries for libmemcached
memcached.i386 : High Performance, Distributed Memory Object Cache
memcached-devel.i386 : Files needed for development using memcached protocol
perl-Cache-Memcached.noarch : Perl client for memcached
php-pecl-memcache.i386 : Extension to work with the Memcached caching daemon
php-pecl-memcached.i386 : Extension to work with the Memcached caching daemon
python-memcached.noarch : A Python memcached client library
python-shove.noarch : Common object storage frontend
redis.i386 : A persistent key-value database
 


Đây là kết quả check lại

[root@ngix cron.daily]# php -i|grep memcached
/etc/php.d/memcached.ini,
memcached
memcached support => enabled
libmemcached version => 0.31
Registered save handlers => files user memcache memcached
[root@ngix cron.daily]# php -i|grep memcache
/etc/php.d/memcache.ini,
/etc/php.d/memcached.ini,
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 8192 => 8192
memcache.default_port => 11211 => 11211
memcache.default_timeout_ms => 1000 => 1000
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => standard => standard
memcache.max_failover_attempts => 20 => 20
memcached
memcached support => enabled
libmemcached version => 0.31
Registered save handlers => files user memcache memcached
[root@ngix cron.daily]#
 


Nhưng trong file php.ini em không add 2 dòng extension="memcache.so" hay extension="memcached.so" vì khi add chạy file cron nó báo đã tồn tại.

Tks.
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 28/03/2012 10:12:19 (+0700) | #26 | 260054
Yoshika
Member

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

traunui wrote:
Cấu hình memcached em theo link này
http://diendanmaychu.vn/showthread.php/333-How-To-Install-memcached-with-memcache-PHP-Extension-on-CentOS-5.x-!

Em đã cài các gói sau

[root@ngix cron.daily]# yum search memcached
============================== Matched: memcached ===============================
libmemcached.i386 : Client library and command line tools for memcached server
libmemcached-devel.i386 : Header files and development libraries for libmemcached
memcached.i386 : High Performance, Distributed Memory Object Cache
memcached-devel.i386 : Files needed for development using memcached protocol
perl-Cache-Memcached.noarch : Perl client for memcached
php-pecl-memcache.i386 : Extension to work with the Memcached caching daemon
php-pecl-memcached.i386 : Extension to work with the Memcached caching daemon
python-memcached.noarch : A Python memcached client library
python-shove.noarch : Common object storage frontend
redis.i386 : A persistent key-value database
 


Đây là kết quả check lại

[root@ngix cron.daily]# php -i|grep memcached
/etc/php.d/memcached.ini,
memcached
memcached support => enabled
libmemcached version => 0.31
Registered save handlers => files user memcache memcached
[root@ngix cron.daily]# php -i|grep memcache
/etc/php.d/memcache.ini,
/etc/php.d/memcached.ini,
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 8192 => 8192
memcache.default_port => 11211 => 11211
memcache.default_timeout_ms => 1000 => 1000
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => standard => standard
memcache.max_failover_attempts => 20 => 20
memcached
memcached support => enabled
libmemcached version => 0.31
Registered save handlers => files user memcache memcached
[root@ngix cron.daily]#
 


Nhưng trong file php.ini em không add 2 dòng extension="memcache.so" hay extension="memcached.so" vì khi add chạy file cron nó báo đã tồn tại.

Tks. 


Bạn có thể post lên quá trình của bạn thực hiện được không? Khi bạn chay cron để đưa static file vào memcahed thì output như thế nào vậy?
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 28/03/2012 13:35:00 (+0700) | #27 | 260086
traunui
Member

[Minus]    0    [Plus]
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
[Profile] [PM]
Các bước e làm như sau

1. Cài các service, lib: apache, nginx, memached, php-pecl-memcahed, php-pecl-memcached

2. Config apache
Sửa thông tin như sau

Listen 8080
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerAdmin admin@domain.local
DocumentRoot /home/domain
ServerName domain.local
ServerAlias www.domain.local
ErrorLog logs/domain.local-error_log
CustomLog logs/domain.local-access_log common
</VirtualHost>
 


3. Config Nginx
- Tạo file proxy vi /etc/nginx/conf.d/proxy.conf, có nội dung

proxy_wwwect off;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;
client_body_buffer_size 128k;

proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;

proxy_buffer_size 4k;
proxy_buffers 32 4k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
 


- Sửa file config của Nginx, vi /etc/nginx/nginx.conf đoạn


#gzip on;

#
# The default server
#
server {
listen 80;
server_name domain.local www.domain.local;

access_log /var/log/nginx/domain.local.access.log ;
error_log /var/log/nginx/domain.local.error.log ;

location / {
proxy_pass http://domain.local:8080/ ;
include /etc/nginx/conf.d/proxy.conf;
}
location ~ \.php$ {
proxy_pass http://domain.local:8080;
include /etc/nginx/conf.d/proxy.conf;
}
location ~* \.(jpg|jpeg|gif|png|ico|css|tar|mid|midi|wav|js)$ {
expires max;
set $memcached_key "$scheme://$host$request_uri";
memcached_pass 192.168.6.10:11211;
}
}
}
 


4. Tạo cron có nội dung

<?php
function rscandir($base = '', &$data = array())
{
$array = array_diff(scandir($base), array('.', '..'));

foreach ($array as $value)
{
if (is_dir($base.$value))
{
$data = rscandir($base . $value . '/', $data);
}
elseif (is_file($base.$value))
{
$rest = substr($value, -4);
if ((!strcmp($rest,'.jpg')) ||
(!strcmp($rest,'.png')) ||
(!strcmp(substr($value, -3),'.js')) ||
(!strcmp($rest,'.css')) ||
(!strcmp($rest,'.gif')) )
{
$data[] = $base.$value;
}
}
}
return $data;
}
$mylist=rscandir("/home/domain"smilie;

$srch = array('/home/domain');
$newval = array('http://domain.local');

$memcache_obj = memcache_connect('192.168.6.10', 11211);

while (list($key, $val) = each($mylist))
{
$url = str_replace($srch, $newval, $val);
echo "$key => $url -> " . filesize($val) . "\n";
$value = file_get_contents($val);
memcache_add($memcache_obj, $url, $value, false, 0);
}
?>
 


- Chạy thử

[root@ngix cron.daily]# php cache_static_file.php


[root@ngix cron.daily]#
 

[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 28/03/2012 14:55:20 (+0700) | #28 | 260116
traunui
Member

[Minus]    0    [Plus]
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
[Profile] [PM]
fixed.

Loăng quăng nghịch ngợm chút giờ okie rồi bác smilie



[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 28/03/2012 15:33:59 (+0700) | #29 | 260123
consoko
Member

[Minus]    0    [Plus]
Joined: 11/10/2008 00:48:33
Messages: 26
Offline
[Profile] [PM]
Bị lỗi ở đâu vậy bạn
[Up] [Print Copy]
  [Question]   Cần giúp đỡ: Cấu hình Nginx làm reverse proxy 28/03/2012 15:40:44 (+0700) | #30 | 260127
traunui
Member

[Minus]    0    [Plus]
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
[Profile] [PM]
Trong file cron có dòng $newval = array('http://domain.local');
bạn sửa thành $newval = array('');
[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|