2016-07-13 2 views
1

У меня есть домен в http:/myapp: 8008/service (только пример). Я хочу настроить обратный прокси-сервер, используя Nginx, а также возможности SSL для этого сервера, чьи запросы обрабатываются приложением NodeJs (прослушивание порта 5505), расположенным по адресу /opt/somefolder/myapp.Конфигурация Nginx для моего приложения NodeJS

У меня установлен Nginx, и мое приложение NodeJs уже запущено, но я не знаю, как настроить серверный блок для этого сервера (приложение не находится на /usr/local/var/www) и отредактируйте файл /etc/nginx/nginx.conf, чтобы он соответствовал моим потребностям. Я пытался отредактировать его с помощью конфигурации я нашел на этом сайте

https://coderwall.com/p/hwkjba/install-configure-node-js-nginx-on-ubuntu

Наряду с этим сайтом, чтобы настроить SSL:

https://www.sitepoint.com/configuring-nginx-ssl-node-js/

Это не сработало для меня.

ответ

1

1) создать файл myapp.conf с этим содержимым:

server { 
    listen 443; 

    client_max_body_size 2048M; 
    client_body_buffer_size 2048M; 
    disable_symlinks off; 

    server_name yourdomain.com www.yourdomain.com; 

    root /opt/somefolder/myapp/public; # or remove it 
    index index.html index.htm;  

    ssl on; 
    ssl_certificate /opt/somefolder/myapp/certs/server.crt; 
    ssl_certificate_key /opt/somefolder/myapp/certs/server.key; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; 
    ssl_session_cache shared:SSL:1m; 


    location @app { 
     log_not_found off; 
     access_log off; 
     proxy_pass https://127.0.0.1:8443; 
     proxy_http_version 1.1; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header Host $host; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_cache_bypass $http_upgrade; 
    } 

    location/{ 
     try_files $uri $uri/ @app; 
    } 
} 

2) скопировать или символическая myapp.conf файл /etc/nginx/sites-enabled/myapp.conf

3) в nodejs приложение слушающих https:

var 
    express = require('express'), 
    https = require('https'), 
    fs = require('fs'), 
    path = require('path'), 
    app = express(); 

var httpsServer = 
    https.createServer({ 
     key: fs.readFileSync(path.join(__dirname, 'certs', 'server.key')), 
     cert: fs.readFileSync(path.join(__dirname, 'certs', 'server.crt')) 
    }, app); 

    httpsServer.listen(8443, '127.0.0.1', function() { 
     console.log('App listening'); 
    }); 

4) перезапуск nginx

5) начало приложение, использующее forever или pm2

+0

Я немного неясен на прокси_pass: https://127.0.0.1:8443; В данный момент мой сервер прослушивает 5505. Могу ли я просто настроить его? – shanwar

+0

уверен, я приводил пример, это не строго: «должно быть сделано так». имейте в виду, что nginx будет обрабатывать запросы на 443, а прокси-сервер - на 5505, поэтому ваш api или etc на узле должен быть запрошен без: 5505 – num8er

+0

@shanwar работает сейчас, как вы хотите? (: – num8er

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