Halusin tietää, ylityöt, kuinka monta välimuisti osumaa ja piti minun esimerkiksi oli tulossa. Etsitty paljon ja lopulta löytyi tämä perl script:

http://code.google.com/p/memcache-top/

Käyttö on hyvin yksinkertaista. Tallenna tiedosto, anna sen toteuttaminen oikeuksia, sitten vain ajaa:

. / Memcache-top.pl-komentoja-kumulatiivinen

Seuraavassa on esimerkki tuotannosta:

memcache-top.pl output example

Tuntuu I'm doing fine, caching oikeus osia! Hit yli 80% ja vain puolet minun osoitetaan memcached muistia käytössä ... (se on, koska olen ollut viime aikoina uudelleen sitä, joten yleensä pitää sitä täynnä).

Olen kirjoittanut siitä, miten määrittää Apache, mod_python ja Django ja miten toteuttaa lighttpd taakse Apache.

Viime aikoina olen päättänyt järjestää minun suosituimmista verkkosivuilla eri VPS tarjoaja [1], ja alkoi pyrkimys päivittää tietoa Django käyttöönottoa. Olen tehnyt asioita eri tavalla tällä kertaa, käyttäen mod_wsgi (suositeltu tapa käyttöönottoon Apache ja Django), ja määrittämällä lighttpd takana Apache dynaamista sisältöä (toisin sanoen, lighttpd toimii staattisen median).

Tein kaiken alle parin viime päivinä, eikä kirjoitti mitä olin tekemässä, koska se liittyi paljon kokeilua (ja erehdys) minulle. Sellaisenaan, olen kirjallisesti tämän artikkelin perusteella muistiin ja tarkkailun minun config-tiedostoja. Jos sinulla on ongelmia, jätä kommentti, ja aion selvittää mahdolliset puutteet.

Kerrotaan, miten tehdä se:

Asenna tavanomaiset epäillyt

En valita Ubuntu minun Linux häiritä, ja asennus mitään on helppoa sitä. sudo apt-get install package-name Tämä osa on hyvin kattaa internetistä, joten en kommentoi yksityiskohtaisesti, miten se on tehty. Riittää sanoa, joitakin paketteja olen asentanut olivat apache2 libapache2-mod-wsgi ja lighttpd

Konfiguroida Apache ja mod_wsgi lataamaan projektin

Koska lighttpd toimii ensisijaisena palvelimen oman verkkotunnuksen, olen päättänyt siirtyä Apache satamaan 81:

sudo vi / etc/apache2/ports.conf

Korvaa olemassa ip: portti yhteyksien nämä:

NameVirtualHost 127.0.0.1:81
Kuuntele 81

Jos laitat oman Python-moduuleja uudempia Ubuntu laitosten muuttunut /usr/local/lib/python2.6/dist-packages/ Siksi olen ladannut Django, projektin ja muut tarvittavat moduulit (joita ei asenneta apt-get tähän hakemistoon, jolloin minulle seuraavaa rakennetta:

/ Usr/local/lib/python2.6/dist-packages/django /
/ Usr/local/lib/python2.6/dist-packages/my_project_name /

Mod_wsgi asiakirjat on erinomainen artikkeli Django integraatiota, mutta se on melko pitkä. Kannattaa lukea sen silti, koska on paljon vaihtoehtoja, että saatat haluta käyttää. Here's cheatsheet.xml:

Luo asiakirja juurena verkkotunnuksesi nimi:

sudo mkdir / var / www / example.com

Luo tiedosto, joka voidaan ladata mod_wsgi kanssa projektin kokoonpano:

sudo mkdir / usr/local/lib/python2.6/dist-packages/project_name/apache /
sudo vi / usr/local/lib/python2.6/dist-packages/project_name/apache/django.wsgi

Näiden sisältö:

import sys
tuonti os

sys.path.append ( '/ usr/local/lib/python2.6/dist-packages)
os.environ [ 'DJANGO_SETTINGS_MODULE'] = 'project_name.settings "

tuonti django.core.handlers.wsgi

hakemuksen = django.core.handlers.wsgi.WSGIHandler ()

Luo verkkotunnuksen konfiguraatiotiedosto Apache:

sudo vi / etc/apache2/sites-available/example.com

Näiden sisältö:

<VirtualHost 127.0.0.1:81>
Palvelinnimi example.com
ServerAdmin username@example.com

DocumentRoot / var / www / example.com

Alias / media / / usr/local/lib/python2.6/dist-packages/django/contrib/admin/media /
<directory /usr/local/lib/python2.6/dist-packages/django/contrib/admin/media>
Valinnat-indeksit
Tilaa kieltää, jotta
Salli kaikkien
</ Directory>

Alias / project_media_dir / / usr/local/lib/python2.6/dist-packages/project_name/templates/project_media_dir /
<directory /usr/local/lib/python2.6/dist-packages/project_name/templates/project_media_dir>
Valinnat-indeksit
Tilaa kieltää, jotta
Salli kaikkien
</ Directory>

WSGIScriptAlias / / usr/local/lib/python2.6/dist-packages/project_name/apache/django.wsgi
WSGIDaemonProcess example.com
WSGIProcessGroup example.com

<directory /usr/local/lib/python2.6/dist-packages/project_name/apache>
Tilaa kieltää, jotta
Salli kaikkien
</ Directory>
</ VirtualHost>

Sen käyttöön:

CD / etc/apache2/sites-enabled /
sudo ln-s .. / sites-available / example.com

Määritä lighttpd on proxy kuin staattisen median pyyntöjä Apache

Käytin MySQL Esitys blogin "Lighttpd kuin käänteinen valtakirja", artikkeli, jonka pohjalta oman kokoonpanon. Siksi me on URL http://example.com/server-status joka edellyttää todennusta, jotta voimme nähdä Apache-palvelimen tila.

Luo hakemiston virhelokit:

sudo mkdir / var / log / lighttpd / example.com

Luo verkkotunnuksen kokoonpano tiedoston lighttpd:

sudo vi / etc/lighttpd/conf-available/20-example.com.conf

Näiden sisältö:

server.modules + = ( "mod_auth",
"Mod_status",
"Mod_proxy",
)

$ HTTP [ "host"] = ~ "(^ | \.) Esimerkki \. Com $" (
$ HTTP [ "url"]! ~ "\. (JS | CSS | gif | jpg | png | ico | txt | SWF | html | htm) $" (
proxy.server = ( "=> (
( "Host" => "127.0.0.1", "portti" => 81)
))
)

server.document-root = "/ var / www / example.com /"
server.errorlog = "/ var / log / lighttpd / example.com / error.log"
Kerro listing.activate = "Disable"

auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/ var / www /. htpasswd"
auth.require = ( "/ server-status" => (
"Menetelmä" => "basic",
"Valtakunta" => "status",
"Vaadi" => "valid-user"
)
)
)

On linjat syytä mainita kokoonpano edellä

$ HTTP [ "host"] = ~ "(^ | \.) Esimerkki \. Com $" (

Tämä kääri sisällä direktiivejä sovelletaan vain sellaisiin pyyntöihin example.com.

$ HTTP [ "url"]! ~ "\. (JS | CSS | gif | jpg | png | ico | txt | SWF | html | htm) $" (
proxy.server = ( "=> (
( "Host" => "127.0.0.1", "portti" => 81)
))
)

Nämä lähettää pyyntöjä asiakirjoja ei päättyy määritelty laajennukset IP 127.0.0.1, portti 81, jossa Apache asuu. Pohjimmiltaan kaikki on staattinen sisältö (tai tarkemmin eriteltyinä | erotettu säännöllinen lauseke), tulee palvelee lighttpd.

cd / etc / lighttpd / conf-enabled /
sudo ln-s .. / conf-käytettävissä / example.com.conf

Kerro tiedostojärjestelmä jossa projektin ja Django's admin staattinen sisältö sijaitsevat:

sudo ln-s / usr/local/lib/python2.6/dist-packages/django/contrib/admin/media / / var / www / example.com / media
sudo ln-s / usr/local/lib/python2.6/dist-packages/project_name/templates/project_media_dir / / var / www / example.com / project_media_dir /

Lopuksi käynnistä kaikkensa, jotta uusimmat asetukset voidaan soveltaa

sudo / etc/init.d/apache2 restart
komento sudo / etc / init.d / lighttpd restart

Joten, mitä todella tapahtuu?

Kun kävijä siirtyy sivustoosi (example.com), pyyntö osuma lighttpd ensimmäinen. Jos asiakirjan polku ei pääty merkkijono listalta staattisen sisällön laajennuksia, pyyntö välityspalvelimella on Apache portista 81, muuten lighttpd palvelee itse.

Ja se on siinä, jos muistan oikein. Did I miss anything? Kommentti mieleisekseen.

[1] Linode, jos olet kiinnostunut. Pääasiassa siksi, kaistanleveys on halvempaa. Jos etsit Linode asian, Linode Linode alennus koodin tai edistäminen koodi, allekirjoittaa tämän linkin luoton minulle asian. Kiitos :)

Joten .... järjetöntä

I, Sergio ja Mi hypätä :)

Löin pääni hieman löytää säännöllinen lauseke, mutta nyt se alkaa:

PHP:
  1. ( "/( \r \n | \n | \r )+/" , " \n " , $string ) ; $ String = preg_replace ( "/ (\ r \ n | \ n | \ r) + /", "\ n", $ string);

Quick Vihje: Linuxin komentoriviltä. Vain laittaa lainausmerkkeihin ja yksinkertainen. Tässä menee:

scp username@192.168.0.1:"'tem espacos aqui'"

Olen tehnyt testisivu miten viitteet (sekä server-side ja Javascript) toimii, jos Google muuttaa URL-Kyselymerkkijonon hakutulossivuilla:

http://www.inerciasensorial.com.br/referrer-test/index.php

Määrä Web-sovellukset, jotka on indeksoi Web-muodossa tai toisessa on niin valtava, ja se on yhä suurempi jokapäiväistä, että olen joko Stupidest henkilön Earth ja Google ei pysty kunnolla tai siellä kukaan myy Web-indeksoinnin palveluja.

Ihmiset, jonkun täytyy tehdä tämän. Mitatusta palvelu (esimerkiksi S3), jossa makuun löytyy kyselyn voit app. indeksoinnin tuloksia.

Aion antaa teille kaksi syytä, miksi minun pitäisi tehdä tämän itse.

Syy numero yksi:
Se on halvempi eikä jonkun muun ydinosaamista. Miten Friendfeed hakemisto kaikkia näitä sivuja? Who cares? Niitä ei pitäisi tehdä tätä. Kirjoittaminen hyvä web crawler on kova. He tarvitsevat * tietoja * kun se on * uusi *.

Syy numero kaksi:
Minulla on niin paljon ideoita, mutta haluan keskittyä prototyyppien niitä sen sijaan kirjoittaa indeksoijan. Se todella auttaa devs ympäri maailmaa, jos he voisivat vain käyttää joitakin API indeksoida sivuja.

Sanoin API? Yes, that's the point. Jonkun on kirjoittaa indeksoijalle API:

POST / api / i = http://www.example.com/file.html
user = name
pass = sana
kun = 00 00,12 * * 1-5
expires = 2592000

Joo, se on crontab syntaksia. "kun" olisi myös hyväksyttävä "kun" ja "OnChange".

"päättyy" on määrä sekunnissa (sillä hetkellä), että indeksointi ei enää tarvita.

Tämä pyyntö palauttaa "id", jota käytetään myöhemmin, kun asiakastuki on valmis ladata verkkosivun meiltä.

Tietysti on olemassa myös:

POST / api / i = regex
format = rss
content_regex = some_string (.*) sucks?

Joten tiedät, kun joku sanoo tuotteen sucks. Ja:

POST / api / i = regex
name = (jpg, gif)
width = LT200
height = LT200
type = kuva

LT alle, että olisi myös GT ja EQ.

Niin, / api / i = on lisätä indeksoinnin pyynnöstä. Voit pyynnöstä verkkosivuja / api / g =

POST / api / g = http://www.example.com/file.html
vain = # some_node_id. some_node_class

XPath on "vain".

Koska asiakastuki maksaisi siirretyistä mennessä, se imee saada asiakastuki kysely / api / g = aina, hän tarvitsee jotain. Ja se ei ole kovin erilainen kuin kirjallisesti oman indeksoijasta ei ole? Oikeastaan se johtuu robots.txt-, html parsing, palvelimen kuormaa, ja paljon muuta. Mutta monet ihmiset ajattelevat, että kirjoittaminen on helppoa indeksoijat ja skaalautuva.

Silti! Taika tapahtuu, kun indeksoida verkkosivun, ja se vastaa noin sääntöä, jonka joku puvuista. Nyt sinun tarvitsee vain kertoa heille luettelon aiemmin lähettänyt tunnukset / api / i =, jotka ovat valmiita. Ne yhteyden palvelimeen ja ladata tiedostoja.

Ja jos sinulla on tunnukset:

POST / api / g = 111112113
pienennys = True

Joka tuotto lisätä pyynnöt tunnukset 111 ja 112 ja 113 ja zip-tiedosto.

Vielä yksi hyvä asia: mittakaavaetuja. Jokaisella on uusin RSS-syötteet. Voi olla kymmeniä puvuista pyytää samaa rehua, mutta sinun tarvitsee vain napata sen jälkeen.

Tämä palvelu ei ole mitään tekemistä sen kanssa, etsiä, Google, deep web, semanttinen web riippumatta. Varmista vain, että ihmiset tietävät, kun verkkosivu on päivitetty.

Joten juuri lukenut, kuinka Britannica suunnittelee uutta website, lähinnä "kilpailla" Wikipedian kanssa. Britannica toimitusjohtaja puhutaan myös suhdetta Googlen tulosten ja Wikipedian sivuilla.

Ainakin yksi kritiikki on voimassa, Wikipedia-artikkeleita ei aina ole paras tietolähde aiheesta. Ja tämän on kirjoittanut joku, joka etsii päivittäin Googlessa ehdoin jälkeen sana "wikipedia", koska Wikipedia on yleensä tulokset ovat riittävän hyviä.

Joten tässä on minun ajatus, dump Wikipedia tietokannan artiklan nimikettä, ja antaa ihmisten tehdä linkit näihin osastoihin. Ja antaa käyttäjien äänestys Punertava-Digg-tyyliin. Löytää tapa käsitellä roskapostittajan Bot ja olet valmis tekemään.

Esimerkiksi Wikipedia-artikkelin "Design_pattern_ (computer_science)" (jota olen auki välilehti juuri nyt) olisi vain joukko linkkejä muille sivuille, joita käyttäjät voivat tehdä mitä haluat heidän tekevän niin voit lajitella linkit päivämäärän.

Kuten olen sanonut minun edellinen postitse, olen tuntenut laiska tapahtumat, muuten menisin ja toteuttaa.

Saatat kysyä, miksi ei vain lisätä linkkejä, että käyttäjät upvote on Wikipedia? No, harvinaisia ovat artikkeleita Wikipedia jotka hyväksyvät "täydellinen" linkkejä sen viittaukset osassa. Useimmat linkit ovat järjestetään viitteet, ja nämä ovat vain käyttää perusteena pieni teksti / sanontoja osittain / tosiasiat, ei koko verkkosivuja. Ja "ulkoisten linkkien" osa Wikipedia-artikkeleita ei ole lajiteltu, ja se on koko totean idea: P

Nyt mene ja rakentaa sitä ja muistaa ostaa minulle oluen, jos teet vastineen.

HTFITIP on sivusto, jossa voit nähdä, mitä toiminnon kielestä kutsutaan toiseen (tai täytäntöönpano).

Ajatus tuli minulle jälkeen yhdennentoista kerran kysyin itseltäni, miten vittua reunan Python? Sitä kutsutaan nauhat muuten.

Sivusto on hyvin yksinkertainen. Ensimmäisellä sivulla, mutta tämä on muotoa:

Miten vitussa on _____ n _____ in _____?

Ensimmäinen tila on "lähde" ohjelmointikielen nimi, toinen me laitetaan toiminto / metodin nimen, ja kolmas, "tavoite" ohjelmointikieli. Lähde kieli on valinnainen.

Hyvä lähde ... Lähde ohjelmointikieli on PHP: n (valtava) luettelo toiminnot. Ensinnäkin, PHP: n näyttää toiminnon kaiken, eikä mitään namespace joten se on helpompi meidän rakentaa indeksi sitä. Toiseksi, se on yleisesti tunnettu kieli. Kolmanneksi, se on ensimmäinen kieli on paljon ihmisiä, joten on täysin mahdollista, että monet ihmiset haluavat tietää, mitä vastaa ja PHP: n toiminta X uutta kieltä he oppimista, joten jos meidän on aloitettava jostakin voisi yhtä olla näin.

Kun käyttäjä valitsee ohjelmien kielen avattavasta lähteestä, Ajax puheluun automaattisesti saa kaikkien toimintojen nimet silloin, kun käyttäjä nimi toisessa kentässä, sillä auto-valmis. Sitten hän valitsee "tavoite" kieli kolmanteen kenttään.

Miten vitussa on PHP: n reunan Python? (valitse toimittaa)

Jos suhde on jo saavista tietokantaan, esittelemme vastaus User:

PHP: n reunan Python kutsutaan nauhat. (linkki Python's käyttäjä sivu nauhat olisi mukavaa)

Jos ei ole, voimme antaa käyttäjän tehdä tämän suhteen. Jos se ei ole mahdollista sanoa, Python ei ole array_intersect_uassoc toimintoa kaikki moduulit, annamme käyttäjäryhmä täytäntöönpanoa, wiki-tyyliin.

Web 2.0 lasta, kaikki käyttäjät tarjoavat sisältöä, teemme kaikki rahat.

Ja sivusto backend on yksinkertainen. Luettelo ohjelmointikielellä ja sen tehtävät, ja suhde toimii ja menetelmiä, ja somekind wiki-juttuja antaa ihmisten tehdä toteutukset.

Olen tuntenut laiska tapahtumat niin mennä eteenpäin ja toteuttaa tätä, jos haluat. Olisi hyödyllinen väline.


Português flagItaliano flagCoreano flagChinês (simplificado) flagEnglish flagAlemâo flagFrancês flagEspanhol flag
Japonês flagÁrabe flagRusso flagHolandês flagBúlgaro flagTcheco flagCroata flagDinamarquês flag
Finlandês flagHindu flagPolonês flagRomeno flagSueco flagGrego flagNorueguês flag 
By N2H
Dolet 96 alennus hosting Dreamhost!
Käytä "PROMO CODE" hitautta. LAMP kanssa 20GB tilaa ja 1 Tt: n siirtoa.

Kategoriat