httpの代わりにhttpsに自分のサイトをホストしたいと思います。私はフロントエンドにAngularJs、バックエンドにNodeJsを使用しています。 SSL証明書にhttps://letsencrypt.org/を使用します。SSLで平均スタックを実行
httpsで両方のWebサーバーを実行する方法を見つけることができません。
注:フロントエンドとバックエンドをURLで区切りたいとは限りません。
私は私の指摘を明確にしたいと思う。
ご協力いただきありがとうございます。
httpの代わりにhttpsに自分のサイトをホストしたいと思います。私はフロントエンドにAngularJs、バックエンドにNodeJsを使用しています。 SSL証明書にhttps://letsencrypt.org/を使用します。SSLで平均スタックを実行
httpsで両方のWebサーバーを実行する方法を見つけることができません。
注:フロントエンドとバックエンドをURLで区切りたいとは限りません。
私は私の指摘を明確にしたいと思う。
ご協力いただきありがとうございます。
私は単純なアプリケーションを提示しています。すなわち、angularjとnodejの両方がhttpsで動作します。まず、このアプリケーションをサーバー(フォルダ全体)に保存します。第二にパブリックフォルダを作成し、it.Hereでこのindex.html
ファイルを置くこと
<!DOCTYPE html>
<html lang="en">
<head>
<script src="angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-app="myApp">
<div ng-controller="myCtrl">
<form>
Author:
<input type="text" ng-model="data.author">
<br>
<br> Title:
<input type="text" ng-model="data.title">
<br>
<br> Body:
<input type="author" ng-model="data.body">
<br>
<br>
<input type="submit" value="Submit" ng-click="submit()">
</form>
</div>
</body>
</html>
ためのコードであり、ここで角度コードがパブリックフォルダにapp.js
としてファイルを保存しています。
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope,$http) {
$scope.data = {};
$scope.submit= function(){
console.log('clicked submit');
$http({
url: 'https://localhost:3443/blah',
method: 'POST',
data: $scope.data
}).then(function (httpResponse) {
console.log('response:', httpResponse);
})
}
});
あなたはパブリックフォルダにこのファイル.Keep angular.min.js
ファイルを持っている必要があります。私はこのファイルについて詳しくは分かりません。基本的に私はバックエンド側から来ています。私が理解していることは、このファイルがなければ角度コードをロードできないことです。ここにファイルhttps://github.com/Syedayesha/MEAN-Stack/blob/master/public/angular.min.jsのリンクがあります。
次へサーバーコードファイルをserver.js
として保存します。このファイルをルートフォルダに保存します。
var express = require('express');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var app = express();
var fs=require('fs');
var http=require('http');
var https=require('https');
app.use(bodyParser.json({limit: '50mb'}));
app.use(express.static('public'));
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'testn'
});
connection.connect();
var options = {
key: fs.readFileSync('privkey.pem'),
cert: fs.readFileSync('cert.pem')
}
app.post('/blah', function(req, res, next) {
var cope = req.body;
console.log('request received:', req.body);
var query = connection.query('insert into form set ?', cope, function (err, result) {
if (err) {
console.error(err);
return res.send(err);
} else {
return res.send('Ok');
}
});
//res.send('received the data.');
});
var server = http.createServer(app).listen(3000);
var server1 = https.createServer(options,app).listen(3443);
console.log('server running on 3443');
ここではmysqldb
に接続しました。 のオプションに近いドメインSLS証明書をserver.js
に入力する必要があります。ルートフォルダにSSL証明書が必要です。あなたは私のgithubからプロジェクト全体をダウンロードすることができます。ここにリンクhttps://github.com/Syedayesha/MEAN-Stackがあります。
node server.js
を使用してノードサーバーを実行し、ブラウザーを開き、https://localhost:3443/index.html
と入力します。それでおしまい !!! index.html
ファイルを取得してデータを入力し、データがdbに格納されているかどうかを確認します。実際に私はxamppで作業しているので、私はApacheサーバーを使用しています。私はlocalhostとしてURLを実行するように。サイト名の例https://example.com:3443/index.html
を使用してURLを実行できます。そして、url
をの角度コードapp.js
に変更する必要があります。https://example.com:3443/blah
です。それが役に立てば幸い。
通常、ノードサービスをApacheやNginxのようなリバースプロキシの背後に置き、ProxyPass(Apache)またはproxy_pass(Nginx)ディレクティブを使用してノードサービスにトラフィックを送信する必要があります。次に、Certbotを使用してApacheまたはNginxインスタンス用にHTTPSを設定することができます。同じホスト上で実行されている限り、ノードサービス用にHTTPSを設定する必要はありません。
HTTPSを簡単に設定できるだけでなく、リバースプロキシを使用する方が、Nodeプロセスを追加してすべてのCPUをより有効に活用できるため、Nodeを直接使用するよりも優れています。
AngularJSはウェブサーバーではありません。 SSL設定はノードで行われます。 –
角度コードではノードapisだけが使用されます.SSL証明書はnodejsコードに追加されます。 –
@SyedAyeshaブラウザのセキュリティポリシーに問題があるかもしれないので、httpsでangularjsとnodejを実行する必要があります。 –