質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

ドメイン

ドメインとは本来、領域や範囲の意味を持ち、インターネット上では特定の部分領域を指します。ネットワークやコンピュータの識別に利用され、所得することでホームページを公開したり、メールアドレスを作成できます。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

Q&A

解決済

1回答

3816閲覧

さくらVPSでNuxt.jsで作成したHPがドメインで表示されない

mio503

総合スコア6

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

ドメイン

ドメインとは本来、領域や範囲の意味を持ち、インターネット上では特定の部分領域を指します。ネットワークやコンピュータの識別に利用され、所得することでホームページを公開したり、メールアドレスを作成できます。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

0グッド

0クリップ

投稿2020/03/19 06:51

Nuxt.jsで作成したHPを公開したところ、IPアドレス+(ポート番号:3000)ではアクセスできるのですが、ドメイン名ではアクセスできずつまっています。
さくらVPSの本登録は済ませ、ドメインのネームサーバーは設定してありますので、
恐らくpackage.jsonの設定かディレクトリの影響かもしれません。

まったくの初心者で困り果てています。
なぜドメイン表示されないのか改善点を
お手数ですが、どなたかご教授頂けますと助かります。
よろしくお願いします。

package.json

{ "name": "nuxt-kansya", "version": "1.0.0", "description": "My incredible Nuxt.js project", "author": "eiji", "private": true, "scripts": { "dev": "cross-env NODE_ENV=development nodemon server/index.js --watch server", "build": "NUXT_HOST=0.0.0.0 NUXT_PORT=3000 NODE_ENV=production nuxt build", "start": "NUXT_HOST=0.0.0.0 NUXT_PORT=3000 NODE_ENV=production node server/index.js", "generate": "nuxt generate" }, "dependencies": { "bootstrap": "^4.1.3", "bootstrap-honoka": "^4.3.1", "bootstrap-vue": "^2.7.0", "cross-env": "^5.2.0", "express": "^4.16.4", "jquery": "^3.4.1", "nuxt": "^2.12.0", "popper.js": "^1.16.0", "sticky-state": "^2.4.1" }, "devDependencies": { "nodemon": "^1.18.9" } }

試してみた事

【Nuxt.jsでサーバーから独自ドメインで公開する方法】を参考にpackage.jsonを書き換えましたが、ドメインの表示されません。

参考にしているページ

ホストとポート番号を変更するには?
Nuxt.jsでサーバーから独自ドメインで公開する方法

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Takumiboo

2020/03/19 08:18

ドメイン:3000(ポート番号付き)でもアクセスできないということですか?
mio503

2020/03/19 08:24

ドメイン名:3000では表示されるのですが、ドメイン名のみでは表示がされない状況です。 さくらVPSのパケットフィルタで80番ポートがWEB用らしく、さくらVPSのコントロールパネル上から設定しましたが、ドメイン名のみではサイト表示されておりません。
Takumiboo

2020/03/19 08:26

Webが80番なのはさくらのVPSに限ったことではなく、業界標準です。なおHTTPSになると443番です。 サーバは3000番ポートで動いていて、80番ポートは開いていて、ではその2つをつなぐ操作は行っていますか?
Takumiboo

2020/03/19 08:29

ちなみにOSでファイヤーウォールが動いている場合はそちらの開放も必要です。 さくらのVPSのデフォルトであるCentOSであればこちらが参考になるでしょう。 https://knowledge.sakura.ad.jp/10583/
mio503

2020/03/19 08:31

ご返信ありがとうございます。 つなぐ操作は行っていないと思います。 詳しく教えていただけませんか。
guest

回答1

0

ベストアンサー

方法1 サーバ自体を80番ポートで動かす
Nuxt.jsに触れたことはないので詳細は調べていただければと思いますが、ご提示の設定ファイル「package.json」にてポート番号を指定しているようですので、こちらを80に変えれば、「http://ドメイン名」でアクセスできるのではないでしょうか。

方法2 リバースプロキシを動かす
もしかしたらこちらのほうが一般的かもしれません。
Nuxt.js自体は任意のポート番号で動かしておき、nginxやApacheをリバースプロキシとして動かし、外部には80番や443番にて見せることが出来ます。
https://wa3.i-3-i.info/word1755.html
https://itsakura.com/network-proxy#s2
こちらのほうが、nginxやApacheなどのWebサーバ側でSSL(HTTPS化)を行ったり出来るため、Nuxt.js側での追加の対応をせずに公開することが可能です。

投稿2020/03/19 08:39

Takumiboo

総合スコア2534

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Takumiboo

2020/03/19 08:40

なおコメント欄でも書いたとおり、さくらのVPSのパケットフィルタとファイヤーウォールの設定は必要になります。
mio503

2020/03/19 08:54

ご助言ありがとうございます。 参考に後ほど作業を行ってみます。 また、つまった際はアドバイス頂けましたら幸いです。
mio503

2020/03/19 16:31

助言頂いた事を参考に作業をしまして、npm run buildは正常に動作しましたが、 npm run startで新たなエラーが出てしまいました。ネットで調べて↓のコマンドなど対処しましたが、エラーが消えません。何が原因かわかりますでしょうか アドバイス頂けますと助かります。 ↓対処として行った事 1、node.jsのバージョンアップ v13.11.0 2、参考にしました:https://qiita.com/wafuwafu13/items/2fe43414aa6e1899f494 rm -rf node_modules npm cache clear --force npm install ↓エラー内容 READY Server listening on http://0.0.0.0:80 01:14:43 events.js:292 throw er; // Unhandled 'error' event ^ Error: listen EACCES: permission denied 0.0.0.0:80 at Server.setupListenHandle [as _listen2] (net.js:1296:21) at listenInCluster (net.js:1361:12) at doListen (net.js:1498:7) at processTicksAndRejections (internal/process/task_queues.js:85:21) Emitted 'error' event on Server instance at: at emitErrorNT (net.js:1340:8) at processTicksAndRejections (internal/process/task_queues.js:84:21) { code: 'EACCES', errno: -13, syscall: 'listen', address: '0.0.0.0', port: 80 } npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! nuxt-kansya@1.0.0 start: `NUXT_HOST=0.0.0.0 NUXT_PORT=80 NODE_ENV=production node server/index.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the nuxt-kansya@1.0.0 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/kansya/.npm/_logs/2020-03-19T16_14_43_781Z-debug.log
CHERRY

2020/03/19 19:29

ポート 1024 以下は、root ユーザーしか使えません。 目的が、テスト運用なら root ユーザーで実行すれば良いと思います。 しかし、恒久的に運用するのであれば、常時SSLが当たり前になってきているので、SSL化するためにも「方法2」をお勧めします。
Takumiboo

2020/03/20 01:41

CHERRYさん、フォローありがとうございます。事前に書いておくべきでしたね。
Takumiboo

2020/03/20 06:18

Apacheを使うのであればnpm run start時のroot権限については不要ですが? ちなみにchownやchmodについてはファイルの所有権やパーミッションを設定するのみで、root権限とは一切関係ありません。 npm run startをroot権限で実行するとは、たとえば「sudo npm run start」などとすることを指します(実際に動くのかは試していませんが)。
mio503

2020/03/21 01:48

Takumiboo様、ご丁寧にアドバイス頂き助かっています。 ↓のページを参考にリバースプロキシの設定を行いました。 https://blog.neet-shikakugets.com/construct-reverse-proxy-using-apachehttp http://sample.com/でアクセスしたらリダイレクトされ、http://sample.com:3000/にアクセスできたのですが、SSL(https://sample.com/)でアクセスしたところ、 Proxy Error The proxy server received an invalid response from an upstream server. The proxy server could not handle the request GET /. Reason: Error reading from remote server と出てリダイレクトされていないみたいです。 ↓のページを参考にlet's Encryptのインストールしたのですが、 https://knowledge.sakura.ad.jp/10534/ 質問のSelect the appropriate number [1-2] then [enter] (press 'c' to cancel):2 (httpアクセスをhttpsにリダイレクトします)ではなく、1としてしまい、多分これが影響しているようです。 let's Encryptのappropriate number内容の変更はできるのでしょうか? ↓こちらのページを参考に試みましたが、 https://aoboshi.org/?p=904 ↓実行コマンド # sudo certbot –authenticator standalone –installer apache -d ドメイン名 usage: certbot [SUBCOMMAND] [options] [-d DOMAIN] [-d DOMAIN] ... Certbot can obtain and install HTTPS/TLS/SSL certificates. By default, it will attempt to use a webserver both for obtaining and installing the certificate. certbot: error: unrecognized arguments: –authenticator standalone –installer apache となってしまいました。 let's Encryptの入れ直しも考えてのですが、方法がわからず行き詰まってしまいました。 少しでも分かることがあればご助言頂けないでしょうか。
Takumiboo

2020/03/21 13:00

httpでのアクセスをhttpsにリダイレクトさせるのはApache側で可能です。「Apache https 統一」「Apache 常時SSL」などで検索すると出てくるかと思います。なお「.htaccessファイルに設定を書き込む」手順より、「confファイルに設定を書き込む」手順を参考にされると良いと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問