Nginx que corta pontas
Nginx é um web server do elevado desempenho e um proxy server do correio escrito por Igor Sysoev e uma boa recolocação para o httpd de Apache, lider do mercado. Nginx está aumentando ràpida sua parte de mercado com os Web site principais que juntam-se a lhe gosta de wordpress.com. No exame de junho 2008 Netcraft LiteSpeed perdeu mais de 600 mil locais durante este exame, quando o nginx ganhou mais do que milhão locais; mais do que dobrando nos números. O sistema blogging de WordPress converteu recentemente todos seus equilibradores da carga ao nginx, usando o módulo rio acima da mistura para serir 8-9 mil por segundo dos pedidos. Nós demasiado decidimos mover alguns de nossos Web site para Nginx. Estão aqui poucas pontas essenciais e orientações para configurar Nginx. Este não é um substituto para ler a documentação (RTFM). Entretanto quando você estiver furado mesmo depois a leitura e a releitura da documentação do nginx a seguir lido abaixo. Você compreenderá o valor das pontas abaixo somente então
Nós centrar-nos-emos sobre pontas gerais da configuração assim como para o acolhimento virtual.
Nota: Em virtual hospedando o use o mesmo IP address para Web site múltiplos. Cada Web site terá muito provável as limas separadas de .htaccess (que supor o foram hospedados inicialmente no web server do httpd de Apache), o diretório de raiz separado etc. por exemplo em um Web site que você tem wordpress, quando no outro você puder ter MODx e quem sabe talvez o phpBB no terço. Todas estas diretrizes orientadoras diferentes de .htaccess precisam de ir nas limas de configuração do nginx.
Nginx tem uma limitação principal em réguas da reescrita que você não pode impr condições múltiplas para uma régua da reescrita. O httpd de Apache de um lado fornece uma boa solução usando diretrizes orientadoras múltiplas de RewriteCond.
Nginx de um lado reserva se indicação. Você pode ter réguas da reescrita dentro se blocos. Entretanto se o bloco ele mesmo é limitado. Você não tem e ou nem não adiciona circunstâncias múltiplas a um único se bloco. Igualmente você não pode aninhar-se se blocos. Não há nenhuma indicação outra tampouco. Entretanto você pode usar expressões regulares assim que o seguinte é possível:
se ($request_method! ^ do ~ (COMEÇ|CABEÇA) $) {
retorno 501;
}
Entretanto você não pode verific duas variáveis de cada vez. Especialmente na encenação de acolhimento virtual tais limitações podem frequentemente ser percebidas como showstoppers. Entretanto eu encontrei que com acréscimo pequeno o pensar pode vir acima com soluções inovativas serir suas necessidades especiais. Por exemplo uma régua muito comum de .htaccess para o software baseado muitos PHP da correia fotorreceptora que inclui wordpress é:
RewriteEngine sobre
RewriteBase/
RewriteCond % {REQUEST_FILENAME}! - f
RewriteCond % {REQUEST_FILENAME}! - d
RewriteRule. /index.php [L]
Diz que se o nome de arquivo pedido não está atual e não é igualmente um diretório a seguir invoca index.php preferivelmente.
Entretanto quando o RewriteCond for o mesmo para a maioria de software baseado PHP o RewriteRule não é. Por exemplo uma parcela das réguas da reescrita para o phpBB é:
RewriteCond % {REQUEST_FILENAME}! - f
RewriteCond % {REQUEST_FILENAME}! - d
RewriteCond % {REQUEST_FILENAME}! - l
^ de RewriteRule [a-z0-9_-] +? (p ([0-9] +) \ .html)? $ /viewforum.php? start=$2 [QSA, L, NC]
Ignore o terceiro RewriteCond para agora. Igualmente verific para ver se há ligações simbólicas. Como você pode ver a régua da reescrita é diferente. Supor o precisar de hospedar WordPress e Web site do phpBB em um único IP address (único usuário). Porque as primeiras duas réguas são comuns você pode fazer escreve a seguinte régua que aplicará a ambos o usuário:
# se é uma lima, um diretório ou uma ligação simbólica
se (- e $request_filename) {
ruptura;
}
Isto faz a mesma coisa que o RewriteCond precedente faz e é aplicável a todos os Web site no usuário (o supr o coloc dentro do usuário).
Agora você pode ter réguas separadas da reescrita para seu usuário individual. Por exemplo você pode usar esta régua para seu blogue de WordPress:
# réguas da reescrita para blog.example.com
se (^blog do ~* de $host \ .example \ .com$) {
^ da reescrita (. *) $ /index.php? q=$1 duram;
ruptura;
}
A ruptura é assegurar-se de que nenhuma régua mais adicional esteja processada após todas as indicações precedentes no se a circunstância foi executada.
O último assegura-se de que nenhuma régua mais adicional da reescrita esteja executada quando a régua da reescrita combina.
Eu tenho escrito três artigos recentemente com ênfase no acolhimento virtual:
- Como funcionar o phpBB em com de Nginx/sem acolhimento virtual
- Nginx: como reparar a edição da definição do diretório assim como interno reorienta no acolhimento virtual
- Como configurar Nginx para o acolhimento virtual
Deixe-nos adicionar poucas mais pontas para terminar o capítulo, devemos nós?
Como impedir as limas que começam com. (como .htaccess) da vista em Nginx?
Adicione isto dentro de seu bloco do usuário perto da parte superior:
/do ~ da posição \. {
negue tudo;
}
Isto rejeitará todos os pedidos externos para limas com os nomes que começam com. (ponto).
Como reorientar URL de WWW às variações de não-WWW?
Por exemplo é aqui como você pode reorientar todos os pedidos como http://www.example.com/yourpage a http://example.com/yourpage:
se (^www do ~* de $host \. (. *)) {
ajuste $host_without_www $1;
reescreva o ^ (. *) permanent de $ http://$host_without_www$1; # $1 contem “/yourpage”, não 'www.example.net/yourpage'
}
Nota: Este exemplo é de seu Web site
Como converter réguas da reescrita do httpd de Apache a Nginx reescreva réguas?
Eu discuti alguns nuances acima e nos artigos. A única ponta que a mais grande eu posso dar está aquela no httpd de Apache a expressão regular em RewriteRule está combinada com o pedido URI sem o a/no início, quando em Nginx combinar com um uri do pedido com um corte no início. Tão por exemplo uma régua da reescrita do httpd de Apache tal como esta:
RewriteRule ^ [a-z0-9_-] *-f ([0-9] +)/? (p ([0-9] +) \ .html)? $ /viewforum.php? f=$1&start=$3 [QSA, L, NC]
torna-se isto no nginx:
reescrevem ^/[a-z0-9_-] *-f ([0-9] +)/? (p ([0-9] +) \ .html)? $ /viewforum.php? f=$1&start=$3 duram;
Simples, não é?
Nota: O RewriteCond precisa de ser utilização executada se diretrizes orientadoras como explicado acima.
Como parar de registrar a imagem/limas de estática?
Como especific uma data de expiração para a imagem/limas de estática?
# limas de estática do saque diretamente
~* ^.+ da posição. (jpg|JPEG|GIF|css|png|js|ico|HTML) $ {
access_log fora de;
expira 30d;
}
Sinta livre discutir sobre este artigo em nosso fórum.
Picosegundo. Caso que você está querendo saber o corte não é sobre a quebra de um software ou a utilização dele para finalidades maliciosas (se rachar é). Cortar é sobre o conhecimento de um assunto em detalhes íntimos. Infelizmente os journalistas dos imprimir-meios frequentemente confundem entre o corte e o rachamento e deram o corte de uma má fama.
PPS. O que eu não explorei ainda é a diferença do desempenho entre o nginx e o httpd de Apache. Eu actualizarei naquele mais tarde.
Arquivado sob o software da empresa, notícia de título, como a, linux, software livre, pro Blogging, nota da tecnologia, correia fotorreceptora, correia fotorreceptora 2.0, acolhimento de correia fotorreceptora, serviços de correia fotorreceptora, WordPress, nginx |
|
RSS 2.0 |
Trackback este artigo |
Envie por correio electrónico este artigo
Você pode igualmente gostar de ler |


Adicione aos favoritos de Technorati

































