웹접속 속도가 느려 졌을때 점검 해보기

→ 웹 속도가 느려졌을 때 문제를 해결해 보기 위해서는 다음과 같은 방법들을 사용해 보면 됩니다.

      1) 현재 사용하는 컴퓨터에서 느려지는 해당 서버로 ping을 보내본다.
         ( time<10ms이면 지극히정상이다. 네트웍 쪽으로는 문제가 없는것이다. )

      2) 아파치 웹로그가 많이 쌓여 있는지 체크한다.  (위치 : /usr/local/apache/logs/ 또는 /usr/local/apache2/logs/)
         -  아파치의 웹로그는 최대 생성할수 있는 크기가 2G이며, 웹 로그의 크기가 커질수록 로그 파일을 읽어서 제일 하단에 로그를
          쌓아야 하므로 로그파일이 클수로 웹 접속속도가 떨어질 수밖에 없다.
         - 로그가 2G 이상되거나 하면 아래와 같은 명령으로 로그를 삭제후 데몬을 재가동 한다.
           예) cat /dev/null > access_log   (로그화일명)
                  /usr/local/apache/bin/apachectl restart   (apache 재가동)

     3) 현재 80번 포트를 사용해서 웹에 접속중인 사용자들의 현황을 살펴본다.
        netstat -nap | grep :80 | grep EST | wc -l 이란 명령을 사용하면 현재 웹에 접속되어 있는 프로세서 수를 확인할수 있다.
        이 수가 httpd.conf에서 설정한 Maxclient와 가깝거나 혹은 더 많지는 않은지 살펴본다.

     4) top 명령으로 현재 cpu의 사용률이나, 메모리 사용량등을 체크해본다. 

블로그 이미지

칩사마코더

,

var casper = require('casper').create({

    logLevel: "error",

    verbose: true

});


var url = "http://ladder.named.com/main.php";

var fs = require('fs');

var path = 'output2.txt';


casper.start(url, function() {


    console.log("크롤링 시작");


    var content = JSON.parse(fs.read(path));

    console.log("불러온 쿠키: " + JSON.stringify(content));

    

    console.log("현재 쿠키: " + JSON.stringify(phantom.cookies));

    

    phantom.cookies = content;

    console.log("저장된 쿠키: " + JSON.stringify(phantom.cookies));


});


casper.run(function() {

    this.close();

});


핵심포인트

phantom.cookies

블로그 이미지

칩사마코더

,

var path = 'output1.txt';

var save = 'output2.txt';

var fs = require('fs');



fs.stat(path, function(err, stats) {

if (stats.isFile(path)) {

        console.log('쿠키파일 존재');

    }

});

   

블로그 이미지

칩사마코더

,

쿠키 파일로 저장

크롤링 2016. 9. 22. 21:15

//쿠키 저장

casper.start(url,function(){

console.log("크롤링 시작");

//cookiesManager.saveCookies();

this.echo(this.evaluate(function() {

        return document.cookie;

    }));

});



//파일로 저장

    fs = require('fs');

        fs.writeFile('helloworld.txt', result, function(err) {

            if (err)

                return console.log(err);

            console.log('Hello World > helloworld.txt');

        });

'크롤링' 카테고리의 다른 글

캐스퍼 url 접속 여부 테스트  (0) 2017.03.13
원하는 패턴 문자열 뽑기  (0) 2017.02.07
fetchText 와 getHTML 차이  (0) 2016.10.29
캐스퍼 함수들 정리  (0) 2016.10.20
블로그 이미지

칩사마코더

,

   child.stdout.on("data", function(data) {

        i= i + 1;

        console.log(i + "번째");

        result += data;

       var str = data;

       console.log(`${str.length} characters, ` +

            `${Buffer.byteLength(str, 'utf8')} bytes`);

    });



console.log(`${str.length} characters, ` +`${Buffer.byteLength(str, 'utf8')} bytes`);

'node js' 카테고리의 다른 글

node.js 애플리케이션을 쉽고 빠르게 실행/종료하기  (0) 2016.10.20
casperjs 쿠키 저장 읽어오기  (0) 2016.09.23
파일 존재 여부 확인  (0) 2016.09.23
spawn 자식프로세스 종료  (0) 2016.09.22
PHP nodejs ajax 연동  (0) 2016.08.26
블로그 이미지

칩사마코더

,

// 부모 JS 파일

var express = require('express');

var app = express();

var bodyParser = require('body-parser');

var casperProcess = (process.platform === "win32" ? "casperjs.cmd" : "casperjs");

var spawn = require("child_process").spawn



var child = spawn(casperProcess, ['index8.js']);

child.stdout.setEncoding('utf8');


app.use(bodyParser.json());

app.use(bodyParser.urlencoded({ extended: false }));

var result;

app.get('/', function(req, res, next) {


    child.stdout.on("data", function(data) {

        result += data;

        console.log(data);

    });


    child.stderr.on("data", function(data) {

        console.log("spawnSTDERR:", JSON.stringify(data));

    });


    child.on("close", function(code) {

        console.log("자식 프로세스 종료");

        res.send(result);

    })


});


app.listen(180, function() {

    console.log('Crawling app listening on port 180!');

});


// 자식 index8.js 파일
var casper = require('casper').create({
    logLevel:   "error",
    verbose:    true
});

var url = "http://ladder.named.com/main.php";

casper.start(url,function(){
this.echo("캐스퍼 시작");
});

casper.run(function(){
this.echo(this.getHTML()).close();
});


부모 파일에서 casperjs 자식 프로세스를 만든후에 

실행후 종료되었을때 웹으로 출력


핵심포인트...

this.echo(this.getHTML()).close();

 child.on("close", function(code) {

        console.log("자식 프로세스 종료");

        res.send(result);

    })


블로그 이미지

칩사마코더

,

Ajax!

ajax 2016. 9. 7. 02:03


이제는 안쓸래야 안쓸수 가 없는 Ajax!






ajax 기본 문법을 정리해보았다..





기초가 튼튼해야 무너지지 않는법.



 

1
2
3
4
5
6
7
8
9
10
11
12
    $.ajax({
        url : "",
        data : {  }
        type : "",
        contentType: "apllication/x-wwww-form-urlencoded; charset=UTF-8",
        success : function(data) {
 
        }
        error : function(request, status, error) {
 
        }
    });
cs







url  : "",   //서버에 요청한 URL 주소

data : { name : value },          //전달할 data

type : "GET" OR "POST"         //data 전달 타입

contentType : 서버에 데이터를 보낼 때 사용되는 content_type이며 기본값은 'application/x-www-form-urlencoded; charset=UTF-8';

success : function(data) {

//요청을 성공적으로 수행한 후 실행할 작업을 입력하는 공간

},

error : function(e) {

//요청할 작업을 실패한 경우 수행할 작업을 입력하는 공간으로 주로 에러메시지를 출력한다.

}


[출처] ajax 기본 문법 |작성자 달님이


블로그 이미지

칩사마코더

,

HTML

CSS

PHP

JAVASCRIPT

NODEJS

MYSQL

LINUX


AJAX

JQURY



JADE

EXPRESS

BOOTSTRAP

AWS (EC2,RDS)

'기타' 카테고리의 다른 글

가장 간단하게 아이피 정보만 보이게 하는 url  (0) 2017.04.05
객체 실수 부분...  (0) 2016.12.02
블로그 이미지

칩사마코더

,

PHP nodejs ajax 연동

node js 2016. 8. 26. 22:02

//클라이언트

<!DOCTYPE html>

<html>

    <head>

        <script src="http://code.jquery.com/jquery-latest.js"></script>

    </head>

    <body>

        <div id="result"></div>

        <input type="text" id="msg" />

        <input type="button" value="get result" id="getResult" />

        <script>

            $('#getResult').click( function() {

                $('#result').html('');

                $.ajax({

                    url:'http://127.0.0.1:3000/test',

                    dataType:'json',

                    type:'POST',

                    data:{'msg':$('#msg').val(),

                     'name': 'lineage'},

                    success:function(result){

alert(result.name);

                $('#result').html(result.msg +"___"+ result.name);

                    }

                });

            })

        </script>

    </body>

</html>


//서버

router.post(['/test/:msg','/test'], function(req, res, next) {

    res.header("Access-Control-Allow-Origin" , "*")

    console.log('body: ' + JSON.stringify(req.body));

    res.send(req.body);

});


//서버 GET 방식

router.get('/test', function(req, res, next) {

    res.header("Access-Control-Allow-Origin" , "*")

    var str = '{ "name": "John Doe", "age": 42 }';

    var obj = JSON.parse(str);

    console.log(obj);

    res.send(obj);

});

블로그 이미지

칩사마코더

,

Git 설치

리눅스 2016. 8. 22. 04:40

Git 설치

Git을 사용하려면 우선 설치해야 한다. 다양한 방법으로 Git을 설치할 수 있지만 두 가지 방법이 가장 일반적이다. 하나는 소스코드로 컴파일하여 설치하는 방법이고 다른 하나는 각 운영체제(혹은 플랫폼)의 패키지를 사용하여 설치하는 방법이다.

소스코드로 설치하기

소스코드로 설치하면 Git의 가장 최신 버전을 설치할 수 있기 때문에 컴파일하여 설치할 시간이 있으면 소스코드로 Git을 설치하는 것이 좋다. Git은 계속 UI를 개선하고 있기 때문에 최신 버전을 사용하면 좋은 기능을 빨리 사용할 수 있다. 리눅스 패키지는 보통 최신 버전이 아니고 예전 버전이다. 그래서 Backport를 사용하거나 소스코드로 설치하는 것도 좋은 대안이다.

Git을 설치하려면 아래와 같은 라이브러리들이 필요하다. Git은 curl, zlib, openssl, expat, libiconv를 필요로 한다. 예를 들어 Fedora처럼 yum을 사용하는 시스템이나 apt-get이 있는 데비안류 시스템이면 아래 명령어를 실행하여 의존 패키지를 설치할 수 있다:

$ yum install curl-devel expat-devel gettext-devel \
  openssl-devel zlib-devel

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
  libz-dev libssl-dev

필요한 라이브러리를 모두 설치하고 다음 단계를 진행한다. Git 웹 사이트에서 최신 스냅샷을 가져온다:

http://git-scm.com/download

그리고 컴파일하고 설치한다:

$ tar -zxf git-1.7.2.2.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install

설치한 다음부터는 Git을 사용하여 Git 소스코드를 수정할 수 있다:

$ git clone git://git.kernel.org/pub/scm/git/git.git

리눅스에 설치

리눅스에서 패키지로 Git을 설치할 때에는 보통 각 배포판에서 사용하는 패키지 관리도구를 사용하여 설치한다. Fedora에서는 아래와 같이 한다:

$ yum install git-core

Ubuntu같은 데비안류 배포판에서는 apt-get을 사용한다:

$ apt-get install git

Mac에 설치하기

Mac에 Git을 쉽게 설치하는 방법은 두 가지가 있다. GUI 인스톨러가 가장 쉽게 사용할 수 있다. SourceForge 페이지에서 내려받는다:

http://sourceforge.net/projects/git-osx-installer/


그림 1-7. OS X Git 인스톨러

MacPorts(http://www.macports.org)를 사용하는 방법도 있다. MacPorts가 설치돼 있으면 아래와 같이 Git을 설치한다:

$ sudo port install git-core +svn +doc +bash_completion +gitweb

이제 설치는 했다. 만약 Subversion 저장소를 Git과 함께 사용해야 하면 svn도 필요하다.

윈도에 설치

윈도에서도 Git을 쉽게 설치할 수 있다. 그저 구글 코드 페이지에서 msysGit 인스톨러를 내려받고 실행하면 된다:

http://msysgit.github.com/

설치가 완료되면 CLI 프로그램과 GUI 프로그램을 둘 다 사용할 수 있다. CLI 프로그램에는 SSH 클라이언트가 포함돼 있기 때문에 유용하다.

Windows 사용자 필독:이 책에서 소개하는 다양한 명령어를 사용하려면 유닉스 스타일의 msysGit 쉘을 사용하는 것이 좋다. 어쩔 수 없이 Windows에 포함된 기본 쉘(Command Prompt, 명령 프롬프트)을 꼭 써야 하면 공백이 포함된 파라미터를 Git 명령어에 넘길 때 작은 따옴표(' ') 대신 큰 따옴표(" ")를 사용해야 한다. 파라미터 끝에 ^ 기호가 있을 때도 큰 따옴표로 파라미터를 감싸야 한다. Windows 쉘에서 ^ 기호는 다음 줄로 명령어가 이어짐을 나타낸다.

블로그 이미지

칩사마코더

,