nginx에 static파일을 post로 요청하면 405 에러가 발생한다. ( get 은 정상 작동 get만 쓰라는건가?)


curl -d -O  URL 해보면 다음과 같은 에러가 보인다.


$ curl -d -O url
<html>                                                                   
<head><title>405 Not Allowed</title></head>                              
<body bgcolor="white">                                                   
<center><h1>405 Not Allowed</h1></center>                                
<hr><center>nginx/1.10.2</center>                                        
</body>                                                                  
</html>                                                                  



아파치 서버에서는 아무 문제 없던 코드라 당황.


구글링해서 설정 추가 하니 잘 동작한다.


405에러인경우 에러페이지를 던지는 대신 요청한 URL을 주는 방식인것 같다.


error_page 405 = $uri;



참고 :

http://blog.brainless.in/2012/01/server-static-files-from-nginx-for-post.html




'지식창고 > 프로그램' 카테고리의 다른 글

CFile 에서 utf-8 파일 읽고 쓰기  (0) 2020.06.16
firefox Dns over HTTPS (DOH) 적용 하기  (0) 2018.05.17
크롬 마우스 제스쳐 확장  (0) 2016.09.21
ConEmu 설정  (0) 2016.08.31
Laravel - 기본 라우팅  (0) 2015.05.19

사용하는 프로그램의 업데이트가 있어서 그걸 작업하는중에 뭔가 이상했다.


재부팅을 하고 나니 시작 메뉴에 사용하던 아이콘들이 죄다 사라졌다.

윈도우 10의 시작 메뉴 버그가 나에게도 찾아왔다.


구글링하고 이거저거 해보기전에 바로가기가 제대로 있는지 확인


시스템 시작 메뉴

C:\ProgramData\Microsoft\Windows\Start Menu


사용자 시작 메뉴

C:\Users\계정명\AppData\Roaming\Microsoft\Windows\Start Menu


Start Menu는 한글 윈도우에서는 "시작 메뉴" 라고 표시된다.



바로가기는 그대로 있고 클릭하면 실행에 지장은 없다. 시작메뉴 아이콘만 새로 빌드되면 되지 싶었다.


일단 표시되는 바로가기는 사용자 아이콘은 나오고 시스템의 시작메뉴가 나오지 않는 상태였다.


그래서 시작메뉴의 아이콘 하나를 사용자 메뉴에 복사했더니


시스템 내부적으로 새로 추가된 아이콘을 처리 하기 시작했다. 그러면서 시스템의 시작메뉴 아이콘이 보여진다.



오호~~ 한참을 웅웅 거리며 스캔하고 빌드한 후 다시 시작메뉴를 살펴보니 아이콘이 돌아왔다.



CentOS 7 에 rabbitMQ 설치 테스트 과정을 정리함


방화벽은 켜두지 않았지만 명령만 정리함


# https://www.rabbitmq.com/install-rpm.html

#pre-install
yum -y install epel-release
yum -y update
yum -y install erlang

#rabbitMQ
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
yum -y install rabbitmq-server-3.6.5-1.noarch.rpm

#start rabbitMQ
service rabbitmq-server start
#check status
service rabbitmq-server status
#install web admin plugin
rabbitmq-plugins enable rabbitmq_management

#check port 6938,15672
firewall-cmd --permanent --zone=public --add-port=15672/tcp
firewall-cmd --permanent --zone=public --add-port=6938/tcp
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

# http://localhost:15672 guest/guest
# if guest login fail add user
rabbitmqctl add_user myuser mypass
rabbitmqctl set_user_tags myuser administrator
rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*"


'지식창고 > 리눅스' 카테고리의 다른 글

redis-sentinel 삽질기  (0) 2018.01.10
centos dns lookup 느린 경우  (0) 2016.11.25
goaccess 설치 사용  (0) 2016.10.06
windows10의 리눅스 환경 설정 하기  (0) 2016.08.05
vsftpd 여러개의 설정으로 운영  (0) 2015.09.30

기존 버전은 터미널에서만 실시간이 되고 HTML아웃풋에서는 안되어서 가끔 터미널 들어갈 때만 사용했었는데


누적되지 않는 데이터 때문에 불편한점이 있었다.


오늘 오랜만에 새버전(1.0.2) 을 설치해보니 실시간 HTML 지원되어 사용해보니 편리하다.



https://goaccess.io/download


다운로드 페이지의 설치 방법대로 설치를 한다.


환경 설정 파일 설정에서 웹서버에 맞게 주석을 풀어준다.


vim /usr/local/etc/goaccess.conf


time-format

date-format

log-format


여기까지만 설정을 하고 터미널에서 실행


goaccess -f /var/log/nginx/access.log



잘 동작 하는것을 확인 했다면 실시간 로그 파일 생성으로 실행


goaccess -f /var/log/nginx/access.log -o /var/www/log/index.html --real-time-html --ws-url=서버 주소


방화벽에 웹소켓 기본 포트인 7890열려 있어야 실시간 정보 갱신이 된다.



확인이 되었다면 설정 파일에서 실시간 옵션을 사용하도록 설정한다.


real-time-html true

ws-url 서버주소


설정이 되었으니 이제 다음 명령으로 실시간 HTML옵션이 동작한다.

goaccess -f /var/log/nginx/access.log -o /var/www/log/index.html


아직은 데몬 형태로 동작 하지는 않으니 tmux등을 사용하는게 좋을듯 하다.


크롬에서 사용하는 마우스 제스쳐


https://chrome.google.com/webstore/detail/crxmouse-chrome-gestures/jlgkpaicikihijadgifklkbpdajbkhjo


'지식창고 > 프로그램' 카테고리의 다른 글

firefox Dns over HTTPS (DOH) 적용 하기  (0) 2018.05.17
nginx post 405 not allow 문제  (0) 2016.11.24
ConEmu 설정  (0) 2016.08.31
Laravel - 기본 라우팅  (0) 2015.05.19
Laravel - 홈스테드 설치와 기본 설정  (0) 2015.05.19

탐색기 메뉴 : ConEmu Here추가

Setting -> Intergration -> Register

기본값은 {cmd} 윈10용 bash를 실행하려면 {bash} 기타 다른 쉘이 필요하면 Task의 명을 사용한다.



시작은 도커를 이용한 분산 서비스 아키텍처 맛보기 이 포스팅으로 부터 시작합니다.


우분투 가상머신에서의 네이티브 docker환경, 그리고 맥에서의 삽질끝에 깔끔하게 정리해 봐야 겠다는 생각이 들어서 정리해 봅니다.


1. docker for mac 설치

  

   두가지 설치 방법이 있는데 신규 설치라면 docker for mac을 설치 하고

   기존 설치 환경을 이용하거나 구버전 OS라면 docker toolbox를 설치 합니다.


   이 포스팅은 docker for mac을 기준으로 하며 docker version 1.12.0 이 설치 됩니다.


   https://docs.docker.com/docker-for-mac/ 


   docker.dmg를 다운받아 더블클릭하고 설치 합니다.

  


실행시키면 경고창이 하나 뜹니다. 닫고 다시 실행시키면 잠시후 트레이에 실행중인 모습이 보입니다.




터미널을 열고 docker -v 해보면 버전확인을 할 수 있습니다. 도커 환경 준비 완료!


2. 환경설정

  

   composer가 필요합니다. brew를 이용하거나 직접 설치 합니다.


3. 프로젝트 복제


  원본 프로젝트를 포크 후 clone하고composer를 실행합니다.


  git clone https://github.com/pokev25/quickstart-intermediate.git quickstart

  cd quickstart

  composer install

 

  redis를 사용할 것이니 추가 합니다.

  composer require predis/predis:^1.0


  서브모듈을 설정하기 위해서 원본을 포크 하고 서브모듈을 추가 합니다.


  git submodule add https://github.com/pokev25/laradock.git

 

4. 예제 처럼 프로젝트 수정

 

    예제의 커밋 로그를 확인하고 동일하게 몇 군데 손봅시다.

    DB는 mariadb를 사용합니다.


    .env

  DB_HOST=mariadb

  CACHE_DRIVER=redis
  SESSION_DRIVER=redis

  REDIS_HOST=redis


  docker-compose.yml에서 사용할 부분만 남기고 제거하고  lb와 web을 추가 합니다.


  사용할 부분만 정리 했으니 이미지를 가동합니다.


  docker-compose up


docker-compose ps 로 실행 상태를 확인

          Name                         Command               State                    Ports
-----------------------------------------------------------------------------------------------------------
laradock_lb_1               /sbin/tini -- dockercloud- ...   Up       1936/tcp, 443/tcp, 0.0.0.0:80->80/tcp
laradock_mariadb_1          docker-entrypoint.sh mysqld      Up       0.0.0.0:3306->3306/tcp
laradock_redis_1            docker-entrypoint.sh redis ...   Up       0.0.0.0:6379->6379/tcp
laradock_volumes_data_1     true                             Exit 0
laradock_volumes_source_1   true                             Exit 0
laradock_web_1              /usr/bin/supervisord -c /e ...   Up       443/tcp, 80/tcp, 9000/tcp
laradock_workspace_1        /sbin/my_init                    Up   

 

브라우저로 localhost에 접속해보면 기본 페이지가 보입니다.

5. 분산환경 테스트


워크스페이스로 들어가서artisan을실행합니다.

docker-compose exec workspace bash

php artisan migrate

exit


docker-compose scale web=3


잘 동작한다.!!

 


6. 받아서 실행만 하기


git clone https://github.com/pokev25/quickstart-intermediate.git quickstart

cd quickstart

git submodule init && git submodule update

composer install


cd laradock

docker-compose up

docker-compose exec workspace bash

php artisan migrate

exit


docker-compose scale web=3

  

ps. 우분투에서 테스트 결과 잘 동작함

docker for mac이 나오면서 맥에서 개발한 docker-compose를 그대로 실환경에서 사용가능해짐

  


  

'지식창고 > docker' 카테고리의 다른 글

WSL2 를 사용하는 도커  (0) 2020.06.05
docker 데이터 저장 경로 변경하기  (2) 2019.05.20
LaraDock 샘플 체험 삽질기 with mac  (0) 2016.08.30
LaraDock 샘플 체험 삽질기  (0) 2016.08.24

부트캠프로 윈도우를 주로 사용중이라 오랜만에 맥으로 부팅하고 이거저거 업데이트를 하다보니


docker for mac이 새로나왔다는게 생각나서 설치해봤다.

무척이나 쉽게 설치되며 리눅스에 도커가 설치된 것 처럼 사용 가능하다.




예제가 docker-machine이라서 새로운 방식의 맥용 docker 와는 다르다.


예제와 달리 docker-machine ip를 하면 에러가 난다.


Error: No machine name(s) specified and no "default" machine exists.


한번 삽질 해봤으니 했던 대로 똑같이 테스트를 진행했다.


그런데 data컨테이너가 실패한다.  맥에서는 안되는 모양이다.



LaraDock 저장소의 docker-compose.yml 를 살펴보니 맵핑이 바뀌었다.


그대로 변경을 하니 잘 동작한다.



boot2docker나 docker-machine과는 구조가 많이 달라진 것 같다.



'지식창고 > docker' 카테고리의 다른 글

WSL2 를 사용하는 도커  (0) 2020.06.05
docker 데이터 저장 경로 변경하기  (2) 2019.05.20
Laradock 샘플 수정 과정 정리  (0) 2016.08.30
LaraDock 샘플 체험 삽질기  (0) 2016.08.24

라라벨 개발에 docker를 이용한 LaraDock 이란게 있다는 소리를 들었는데

테스트 해볼 수 있는 좋은 포스팅을 따라해 보기로 했다.


http://blog.appkr.kr/work-n-play/dockerize/


포스팅은 docker-machine에서 실행 하는 것이였는데 나는 VMWare에 우분투를 설치해서 이거 저거 테스트 중이라 샘플 구경할겸 따라 해보기로 했다.

모든 참사는 여기에서 부터 시작한다  '이거 저거 테스트 하던 가상머신' 이라는것이다.


동작하던 아파치와  mariadb를 중지 시키고 하라는 대로 따라했다.


첫번째 벽은 HAProxy에서 시작했다.

도데체 이걸 어떻게 설정 하는거지? 구글링 끝에 찾아낸 설정으로 변경했다.


기존

### HAProxy Container #######################################

    lb:
#        image: dockercloud/haproxy
        build:
            context: ./lb
            dockerfile: Dockerfile
        links:
            - web
        ports:
            - "80:80"
            - "443:443"
        environment:
            - DOCKER_TLS_VERIFY
            - DOCKER_HOST
            - DOCKER_CERT_PATH
        volumes:
            - $DOCKER_CERT_PATH:$DOCKER_CERT_PATH
            - ./logs/supervisor/:/var/log/supervisor
        tty: true


변경  

### HAProxy Container #######################################

    lb:
        # image: dockercloud/haproxy
        build:
            context: ./lb
            dockerfile: Dockerfile
        links:
            - web
        ports:
            - "80:80"
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
            - ./logs/supervisor/:/var/log/supervisor
        tty: true


두번째는 이상한 에러가 나왔다.

.env에 ip를 틀렸나? 이상한데? 여러 삽질끝에 에러 메시지를 다시 천천히 살펴봤다. class가 없단건데...

공식문서를 뒤진다.

composer require predis/predis:^1.0

빙고!


로그인을 하는데 DB접속을 할 수 없다고 나온다. 이상하다.. 분명 설명 블로그에는 외부에서도 된다 했는데 안된다.

이상하다...그러다 문득..기존에 테스트로 쓰던  mysql과 충돌난게 아닌가? 하는 생각이 번쩍 들었다...

/var/lib/mysql를 이동하고 도커를 다시 실행시켰더니 잘 동작한다.


.env에 ip를 적을 필요 없이  mysql, redis등으로 적어도 도커컨테이너를 잘 찾아서 접속된다.


삽질끝에 docker-compose 사용법과 컨테이너간의 연결에대한 이해도가 조금 생겼다.도커 재미있구나


everything을 사용하면서 win+s로 핫키를 지정해서 사용하고 있었는데

윈도우8 부터는 이키가 시스템에서 사용되기 시작한것 같다. onenote의 핫키와도 중복된다고한다.

구글링해보니 해결방법 나온다.


HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced

새로만들기 - 문자열값

DisabledHotkeys