Конфигурация сервера для приложения Node.js

Я пытаюсь переместить приложение из PHP на Node.js. Приложение PHP использует сервер Apache и имеет tileservices.conf файл, необходимый для работы приложения. Как бы я перенес конфигурацию в этом файле в приложение Node?

Alias /tiles /sandbox/TileServices/www/TileStreamer.php
Alias /thumbs /sandbox/TileServices/www/ThumbStreamer.php
Alias /MosaicTest /sandbox/TileServices/www/MosaicTest

RewriteEngine on
RewriteRule ^/1.0.0/([a-zA-Z0-9]*)/([0-9]*)/([0-9]*)/([0-9]*)\.[a-zA-Z]*$ /sandbox/TileServices/tiles/tc/cache_server.php?z=$2&c=$3&r=$4&cache=$1
RewriteRule ^/nwomtest/1.0.0/(.+)/(.+)/(.+)/(.+)\.[a-zA-Z]*$ /sandbox/TileServices/www/tc/cache_server_new.php?z=$2&c=$3&r=$4&cache=$1
RewriteRule ^/nocache/nwomtest/1.0.0/(.+)/(.+)/(.+)/(.+)$ /sandbox/TileServices/www/tc/cache_server_new.php?z=$2&c=$3&r=$4&cache=$1&do_not_cache=nocache
RewriteRule ^/nocache/nwomtest/1.0.0/(.+)/(.+)/(.+)/(.+)\.[a-zA-Z]*$ /sandbox/TileServices/www/tc/cache_server_new.php?z=$2&c=$3&r=$4&cache=$1&do_not_cache=nocache

RewriteRule ^/oms/1.0.0/(.+)/(.+)/(.+)/(.+)\.[a-zA-Z]*$ /sandbox/TileServices/www/MosaicRequestHandler.php?z=$2&c=$3&r=$4&library=$1&filestyle=strip
RewriteRule ^/omb/1.0.0/(.+)/(.+)/(.+)/(.+)\.[a-zA-Z]*$ /sandbox/TileServices/www/MosaicRequestHandler.php?z=$2&c=$3&r=$4&library=$1&filestyle=block
RewriteRule ^/ms/1.0.0/(.+)/(.+)/(.+)/(.+)/(.+)\.[a-zA-Z]*$ /sandbox/TileServices/www/Mosaic/Mosaic.php?z=$3&c=$4&r=$5&resource=$1&tkid=$2&filestyle=strip
RewriteRule ^/mb/1.0.0/(.+)/(.+)/(.+)/(.+)/(.+)\.[a-zA-Z]*$ /sandbox/TileServices/www/Mosaic/Mosaic.php?z=$3&c=$4&r=$5&resource=$1&tkid=$2&filestyle=block

<Directory "/sandbox/TileServices/www">
AllowOverride None
Options -Indexes
Require all granted

<IfModule speling>
CheckSpelling on
</IfModule>

SetEnv MOUNT_PREFIX "/mnt/autofs"</Directory>

<Directory "/sandbox/TileServices/www/tiles/MosaicTest">
Require all denied
Allow from 10.0.0.0/8
Allow from 172.16.0.0/12
Allow from 192.168.0.0/16
Allow from 206.90.52.6/32
</Directory>

1

Решение

Отредактировано:

// тонна информации о маршрутизации http://expressjs.com/en/guide/routing.html

за первую часть (до первой 2х новой строки)

Вы в значительной степени должны выразить, чтобы сделать следующее:

app.get('/tiles', function (req, res) {
res.send('GET request to /tiles'); //or some other logic
});
app.get('/thumbs', function (req, res) {
res.send('GET request to /tiles'); //or some other logic
});
app.get('/MosaicTest', function (req, res) {
res.send('GET request to /tiles'); //or some other logic
});

Вторая часть:

// ^/1.0.0/([a-zA-Z0-9]*)/([0-9]*)/([0-9]*)/([0-9]*)\.[a-zA-Z]*$

app.get('/1.0.0/:param1/:param2/:param3/:param4', function (req, res) {
var param1 =req.params.param1,
param2 = req.params.param2,
param3 = req.params.param3,
param4 = req.params.param4;

res.send('your first route parameter is '+param1); //or some other logic
});

Первая часть, вероятно, не будет проблемой, потому что Node.js НЕ будет обслуживать каталоги и файлы, если вы не запрограммируете это тоже. Таким образом, ваш сервер защищен.

Вторая часть, если это файлы (например, изображения), вам, вероятно, нужно подумать о том, как отправить их на пользовательский узел. Если это просто страницы / другие данные, которые вы будете обслуживать через узел, вам в основном необходимо отфильтровать IP-адреса, которые к ним обращаются, чтобы что-то вроде

//    this goes after your route definition
// so after something like app.get('/MosaicTest', function (req, res) {
var ip = req.ip;
if (ip == '127.0.0.1') {
res.send('ip not allowed');
res.end();
}
// close route definition });
// source: http://stackoverflow.com/questions/12349251/restrict-access-to-node-js-based-http-server-by-ip-address

может помочь

К сожалению, я не эксперт по node.js, поэтому вам нужно искать другие ответы или задавать более конкретные вопросы, чтобы все это было сделано.

Надеюсь, что все это поможет вам на вашем пути! 🙂

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]