강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của asfasfas
asfasfas

câu hỏi đã được viết

Mã hóa bản sao Slack [phần backend với NestJS + TypeORM]

배포 npm run start

Viết

·

538

0

ubuntu@ip-111-11-11-104:~/minsu-code/back$ npm start > back@0.0.1 start /home/ubuntu/minsu-code/back > nest start [Nest] 22759 - 09/26/2021, 7:30:56 AM LOG [NestFactory] Starting Nest application... [Nest] 22759 - 09/26/2021, 7:30:56 AM LOG [InstanceLoader] TypeOrmModule dependencies initialized +340ms [Nest] 22759 - 09/26/2021, 7:30:56 AM LOG [InstanceLoader] PassportModule dependencies initialized +0ms [Nest] 22759 - 09/26/2021, 7:30:56 AM LOG [InstanceLoader] EventsModule dependencies initialized +1ms [Nest] 22759 - 09/26/2021, 7:30:56 AM LOG [InstanceLoader] ConfigHostModule dependencies initialized +0ms [Nest] 22759 - 09/26/2021, 7:30:56 AM LOG [InstanceLoader] AppModule dependencies initialized +1ms [Nest] 22759 - 09/26/2021, 7:30:56 AM LOG [InstanceLoader] ConfigModule dependencies initialized +1ms [Nest] 22759 - 09/26/2021, 7:30:57 AM ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)... Error: Unknown database 'minsucode'
 
말 그대로 database 가 없다는 뜻인데.
우분투 말고 로컬 윈도우에서 npm run start 하면 잘 되는데.
배포모드 우분트 환경에서만 npm run start 하면 저런 에러가 나옵니다.
 
mysql안에 db도 만들어 주었고 우분투 환경에서 mysql 설치 해주고.
.env 파일도 만들어서 필요한 것들 다 입력 해줬는데 계속 저런 에러가 나옵니다 ㅠㅠ
 
 
 
expressnodejsTypeORMNestJS

Câu trả lời 3

1

minsu님의 프로필 이미지
minsu
Người đặt câu hỏi

제로초님 nodebird 에 있는 aws 연결 하는 방법 따라하면서 배포 할려고 하는데.

aws 인스턴스 HTTP 80port -> 우분투 환경 .env 파일에 PORT 을 80으로 바꿔준 뒤 

back nest.js 부분에서 npm run start 을 하면 

 

[Nest] 23055  - 09/26/2021, 8:33:16 AM   ERROR [NestApplication] Error: listen EACCES: permission denied 0.0.0.0:80 +5ms

(node:23055) UnhandledPromiseRejectionWarning: Error: listen EACCES: permission denied 0.0.0.0:80

 

80번 port 은 사용 할 수 없다고 나옵니다.

 

어떻게 해결해야 할까요... 

아니면 인스턴스를 새로 만들어서 HTTP port을 3000 으로 다시 만드는 게 좋을까요? 

구글에서 여러 해결방법 찾아서 해봤는데 도저히 안되네요 ㅠㅠ

 

우분투 환경 말고 윈도우 터미널에서 npm run start 하면 정상적으로 잘 작동하는데, 

우분투 환경에서만 그러네요 

minsu님의 프로필 이미지
minsu
Người đặt câu hỏi

아 해결 됐습니다 감사합니다 제로초님

minsu님의 프로필 이미지
minsu
Người đặt câu hỏi

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

80 사용 x 8080 port로 사용하고 8080 -> 80 포트로 리다이렉션해서 해결 했습니다

1

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

db 만드실 때 back 폴더에서 npx sequelize db:create( 시퀄라이즈 사용 시) 또는 mysql 프롬프트에서 mysql로 CREATE SCHEMA `minsucode` DEFAULT CHARACTER SET utf8mb4;

하셨나요?

minsu님의 프로필 이미지
minsu
Người đặt câu hỏi

CREATE SCHEMA `minsucode` DEFAULT CHARACTER SET utf8mb4;

typeorm 사용 중이였는 데 성공적으로 됐습니다. 감사합니다.

0

minsu님의 프로필 이미지
minsu
Người đặt câu hỏi

제로초님 배포 준비를 할려고 하는데  front 서버 ec2 -> 우분투에서 build 를 끝마치고 start 하고 싶습니다.

하지만 제가 webpack 을 이제 클론코딩 하면서 사용 해 봐서.

dev 말고 start 할 떄는 어떻게 해야 할까요...

아니면 build 안 dist, index.html 를 aws 정적 웹 페이지에서 만들어 줘야 할 지

NODE_ENV=production webpack-dev-server --progress
 dev-server 설정 후 start 부분에 이런식으로 넣어주면 될까요?
development 에 production을 붙여 주면 될까요?
다른 분들 보면 dist, index.html 부분들을 도메인에 넣어주는 거 같던데 잘 모르겠네요 ㅠㅠ
 
 
start: cross-env TS_NODE_PROJECT=\"tsconfig-for-webpack-config.json\" webpack-dev-server --env production
이런식으로 start 실행하면 윈도우에서는 정상 작동하는데 우분투에서는 안되네요.,.
 
 
zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

제 깃헙 nest-typeorm 보시면 public 폴더 있습니다. 그것처럼 백엔드 경로에 public 폴더 만들어서 방금 빌드한 프론트 파일들 넣어주시면 됩니다.

Hình ảnh hồ sơ của asfasfas
asfasfas

câu hỏi đã được viết

Đặt câu hỏi