Tôi đang cố gắng định cấu hình nginx để nó proxy_pass
yêu cầu các ứng dụng nút của tôi. Câu hỏi trên StackOverflow có nhiều upvote: /programming/5009324/node-js-nginx-and-now và tôi đang sử dụng cấu hình từ đó.
(nhưng vì câu hỏi là về cấu hình máy chủ nên nó được cho là trên ServerFault)
Đây là cấu hình nginx:
server {
listen 80;
listen [::]:80;
root /var/www/services.stefanow.net/public_html;
index index.html index.htm;
server_name services.stefanow.net;
location / {
try_files $uri $uri/ =404;
}
location /test-express {
proxy_pass http://127.0.0.1:3002;
}
location /test-http {
proxy_pass http://127.0.0.1:3003;
}
}
Sử dụng nút trơn:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(3003, '127.0.0.1');
console.log('Server running at http://127.0.0.1:3003/');
Nó hoạt động! Kiểm tra: http://service.stefanow.net/test-http
Sử dụng nhanh
var express = require('express');
var app = express(); //
app.get('/', function(req, res) {
res.redirect('/index.html');
});
app.get('/index.html', function(req, res) {
res.send("blah blah index.html");
});
app.listen(3002, "127.0.0.1");
console.log('Server running at http://127.0.0.1:3002/');
Nó không hoạt động :( Xem: http://service.stefanow.net/test-express
Tôi biết rằng một cái gì đó đang xảy ra.
a) test-express KHÔNG chạy
b) text-express đang chạy
(và tôi có thể xác nhận nó đang chạy qua dòng lệnh trong khi ssh trên máy chủ)
root@stefanow:~# service nginx restart
* Restarting nginx nginx [ OK ]
root@stefanow:~# curl localhost:3002
Moved Temporarily. Redirecting to /index.html
root@stefanow:~# curl localhost:3002/index.html
blah blah index.html
Tôi đã thử đặt tiêu đề như được mô tả ở đây: http://www.nginxtips.com/how-to-setup-nginx-as-proxy-for-nodejs/ (vẫn không hoạt động)
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
Tôi cũng đã thử thay thế '127.0.0.1' bằng 'localhost' và ngược lại
Xin tư vấn. Tôi khá chắc chắn rằng tôi bỏ lỡ một số chi tiết rõ ràng và tôi muốn tìm hiểu thêm. Cảm ơn bạn.
forever
hay pm2
chạy nó, sau đó nginx
chỉ ủy nhiệm cho nó?
nginx
lỗi?