2016-04-21 5 views
1

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

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 НЕ будет обслуживать каталоги и файлы, если вы не запрограммируете ее тоже. Таким образом, ваш сервер защищен.

Вторая часть, если это файлы (например, изображения), вам, вероятно, нужно подумать о том, как отправить их на узел пользователя. Если это только страницы/другие данные, которые вы будете служить корыто Node вам в основном нужно фильтровать 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 

может помочь

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

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

+0

Нам еще не нужны Apache и PHP! Один из них полностью представляет собой приложение PHP, которое перемещается в полностью приложение Node. Файл, который я опубликовал, представляет собой файл конфигурации, который использует приложение PHP. Я не знаю, как перенести эти параметры конфигурации в приложение Node. В настоящее время я использую express, который обрабатывает маршрутизацию, но не конфигурацию сервера –

+0

Я продлил свой ответ. Вы можете попробовать выразить. Он позволяет выполнять маршрутизацию, похожую на .htaccess. –

+0

Ну, я использую Express для маршрутизации, но я не знаю, как использовать его для конфигурации сервера. –

Смежные вопросы