[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
|
0 |
|
|
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
|
|
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 |
|
|
|
|
[Question] Cần giúp đỡ: Cấu hình Nginx làm reverse proxy |
24/03/2012 09:40:33 (+0700) | #2 | 259749 |
|
vitcon01
Member
|
0 |
|
|
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
|
|
---> 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_server.
---> đọ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 |
|
|
|
[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
|
0 |
|
|
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
|
|
Cảm ơn bạn đã trả lời
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.
|
|
|
|
|
[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
|
0 |
|
|
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
|
|
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 |
|
|
|
|
[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
|
0 |
|
|
Joined: 11/03/2012 15:33:55
Messages: 57
Offline
|
|
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;
}
|
|
|
|
|
[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
|
0 |
|
|
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
|
|
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. |
|
|
|
|
[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
|
0 |
|
|
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
|
|
Bạn chèn block server này vào thử xem sao.
Code:
server {
server_name _;
return 444;
}
|
|
|
|
|
[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
|
0 |
|
|
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
|
|
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ợ. |
|
|
|
|
[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
|
0 |
|
|
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
|
|
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à. |
|
|
|
|
[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
|
0 |
|
|
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
|
|
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 ^^ |
|
|
|
|
[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
|
0 |
|
|
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
|
|
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. |
|
|
|
|
[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
|
0 |
|
|
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
|
|
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 !!!
|
|
|
|
|
[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
|
0 |
|
|
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
|
|
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
|
|
|
|
|
[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
|
0 |
|
|
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
|
|
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 đó. |
|
|
|
|
[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
|
0 |
|
|
Joined: 06/07/2006 20:39:38
Messages: 56
Offline
|
|
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
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;
}
|
|
|
|
|
[Question] Cần giúp đỡ: Cấu hình Nginx làm reverse proxy |
27/03/2012 10:46:00 (+0700) | #16 | 259955 |
|
somenuchi
Member
|
0 |
|
|
Joined: 08/10/2011 09:19:02
Messages: 55
Offline
|
|
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 |
|
|
|
[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
|
0 |
|
|
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
|
|
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
|
|
|
|
|
[Question] Cần giúp đỡ: Cấu hình Nginx làm reverse proxy |
27/03/2012 14:30:26 (+0700) | #18 | 259978 |
|
somenuchi
Member
|
0 |
|
|
Joined: 08/10/2011 09:19:02
Messages: 55
Offline
|
|
cảm ơn Yoshika mình hiểu được phần này rồi |
|
vô thường |
|
|
|
[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
|
0 |
|
|
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
|
|
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 |
|
|
|
|
[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
|
0 |
|
|
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
|
|
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? |
|
|
|
|
[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
|
0 |
|
|
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
|
|
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
|
|
|
|
|
[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
|
0 |
|
|
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
|
|
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? |
|
|
|
|
[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
|
0 |
|
|
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
|
|
Đâ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. |
|
|
|
|
[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
|
0 |
|
|
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
|
|
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
|
|
|
|
|
[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
|
0 |
|
|
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
|
|
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. |
|
|
|
|
[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
|
0 |
|
|
Joined: 01/12/2009 04:15:44
Messages: 15
Offline
|
|
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? |
|
|
|
|
[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
|
0 |
|
|
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
|
|
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"
$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]#
|
|
|
|
|
[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
|
0 |
|
|
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
|
|
fixed.
Loăng quăng nghịch ngợm chút giờ okie rồi bác
|
|
|
[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
|
0 |
|
|
Joined: 11/10/2008 00:48:33
Messages: 26
Offline
|
|
[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
|
0 |
|
|
Joined: 28/02/2012 20:23:08
Messages: 62
Offline
|
|
Trong file cron có dòng $newval = array('http://domain.local');
bạn sửa thành $newval = array(''); |
|
|
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|
|
|