[SOLVED] No mongoDB connection when running nginx
-
When running nginx my site will load fine, but it won't pull things or save to the database. I'm guessing it's a websocket problem.
Here's my nodebb config.json (Omitting the secure details):
{
"base_url": "http://test.mysite.com",
"port": "4567",
"secret": "some_secret_characters_here",
"bind_address": "0.0.0.0",
"database": "mongo",
"mongo": {
"host": "127.0.0.1",
"port": "27017",
"username": "youthought",
"password": "youknew",
"database": "mysiteTest"
},
"bcrypt_rounds": 12,
"upload_path": "/public/uploads",
"use_port": false,
"relative_path": ""
}I have a subdomain called test for this particular instance of nodebb.
Here is my nginx.conf:
worker_processes 2;
worker_rlimit_nofile 10240; # worker_connections * 4
events {
multi_accept on;
worker_connections 5120;
use epoll;
}
http {
charset utf-8;
client_body_timeout 65;
client_header_timeout 65;
client_max_body_size 10m;
default_type application/octet-stream;
keepalive_timeout 20;
reset_timedout_connection on;
send_timeout 65;
server_tokens off;
sendfile on;
server_names_hash_bucket_size 64;
tcp_nodelay off;
tcp_nopush on;
include sites-enabled/test.mysite.com;
}Here is the sites-enabled/test.mysite.com config:
server {
listen 80;
server_name test.mysite.com;
location / {
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;
proxy_pass http://127.0.0.1:4567/;
proxy_redirect off;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Also, the site itself is held at /var/www/mysite.test so not sure if it makes a difference whether the directory is called test.mysite.com or not...I'm assuming I can name the directory whatever I want without it making a difference.
Here's my hosts file:
127.0.0.1 localhost
127.0.0.1 mysite.com
127.0.0.1 test.mysite.com# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allroutersSo, if I have nodebb and nginx running I can go to test.mysite.com (port 80) and it will load just fine, but it won't pull anything from the database. When I log in it redirects me to a {login successful} screen, then once I navigate to the admin area I can't save any changes. However, I can go to test.mysite.com:4567 and everything works just fine. This confuses me...
What I'm trying to achieve is having everything working on port 80 while not allowing traffic to directly connect to 4567.
I haven't used nginx much, so it's all new to me. Any help or suggestions would be appreciated.
I love you...
-
I figured this out finally...I had nginx v1.2 which is what's in the default debian 7 repo. Had to add a new key and some new sources from here:
http://nginx.org/en/linux_packages.html#distributions
Now on nginx v1.6.2 and it seems to be running fine. From what I read there was no websocket support in nginx <1.3