• @Aureney You don't have any proxy commands to handle traffic between your https (port 443) traffic and the NodeBB forum running internally on port 4567 (the default unless you changed it in your config.json)

    You may need a block similar to this:

        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";
        }
    

  • @tqwhite said in How to replace localhost:4567 with domain name:

    If you are using Windows, well, I googled "windows curl equivalent" and was reminded that I'm really glad I don't use Windows. You might find it more useful.

    Slighty OT but theres no equivalent you just use curl like on any other platform..


  • @rod I copied that entire thing word for word and got the same error on and on.

            listen       80;
            server_name  domainnamehere.com;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ \.php$ {
            #    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";
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ \.php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:80;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #    deny  all;
            #}
        }
    

    Error I get:

    nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)
    

    I think I didn't install nginx the right way. How do I do it?


  • @Aureney Something is already running on port 80.

    run netstat -tulpn and see what the output shows. If you get a - for the program name you need to run as root. In that case try sudo netstat -tulpn

    Is this Linux?


  • @rod Neither of those commands work

    netstat: n: unknown or uninstrumented protocol

    It's not Linux

    I checked localhost:80 and it's a blank page saying:

    404 Not Found


    nginx/1.10.0

    I went to my domain and the same thing appears.


  • @Aureney Google will be a good resource for you. I am out of suggestions without more information and, well, I am too tired to try to coax every detail from you.


  • This post is deleted!

  • @Aureney

    We need the following things answered in order to debug your problem.

    • You appear to be running this forum on an OS X computer. I asked about this before but you didn't answer. Are you using OS X?

    • The fact that you are getting a 404 page says that you have a web server of some sort already listening on port 80. Execute the following command (assuming you are on OS X) and paste the result into a reply.

      sudo lsof -i tcp:80 | grep LISTEN

    • Please report what happens when you enter

      curl http://127.0.0.1:4567

    • When you are trying to access this forum, are you using a web browser that is on the same computer as nodebb and NGINX?

    It is very unlikely that your installation of NGINX is the problem.


  • @Aureney said in How to replace localhost:4567 with domain name:

    I think I didn't install nginx the right way. How do I do it?

    Simple command: sudo apt-get install nginx and you'll get nginx up and running in less than 1 minute.


  • @charles I think she's running on OS X. That's why she used Homebrew before.

    And you're right. It's very simple and straightforward. That's why I think it very unlikely that her installation of nginx is the problem.

  • Plugin & Theme Dev

    @tqwhite said in How to replace localhost:4567 with domain name:

    @Aureney

    We need the following things answered in order to debug your problem.

    • You appear to be running this forum on an OS X computer. I asked about this before but you didn't answer. Are you using OS X?

    • The fact that you are getting a 404 page says that you have a web server of some sort already listening on port 80. Execute the following command (assuming you are on OS X) and paste the result into a reply.

      sudo lsof -i tcp:80 | grep LISTEN

    • Please report what happens when you enter

      curl http://127.0.0.1:4567

    • When you are trying to access this forum, are you using a web browser that is on the same computer as nodebb and NGINX?

    It is very unlikely that your installation of NGINX is the problem.

    The problem is pretty clear to me: He/She refuses to adjust the nginx config to a reverse proxy according to the NodeBB docs. He/She is insisting his "word by word copied" config from another source, not related to NodeBB is correct. Which it is not. So I'm out of this debate.


  • @tqwhite I reinstalled Homebrew, Nginx, and NodeBB. I removed all my ports. Here is my understanding:

    I set proxy_pass to 0.0.0.0:4567, which is the server NodeBB is using. My server_name is my domain and listen is set to 80. Except, rather then 0.0.0.0:4567, nginx ignores the port number 4567 and uses what I set listen to, which was 80. Since I opened port 80, I received no errors. When I went to port 80, all I saw was the welcome to nginx page, not the actual forum. So I think nginx is not redirecting to NodeBB, but using it's own server. I know this because, after I saved the file and ran sudo nginx again, I get the error that the address 0.0.0.0:80 is already in use.

    @frissdiegurke I copied word for word the NodeBB docs, which is what I have meant. The problem is , the nginx.conf file I installed with home-brew is not similar to the one in the NodeBB docs, so I am not sure.

    Here is it

    server {
            listen       80;
            server_name  eucountries.com;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ \.php$ {
            #    proxy_pass   http://0.0.0.0:4567;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ \.php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #    deny  all;
            #}

  • @Aureney I don't know how to tell you to change your nginx configuration file but you MUST change it if you want NodeBB to work. Since you aren't clearly giving us information we can only piece this together.

    REPLACE your nginx configuration file with this:

    server {
        listen       80;
        server_name  eucountries.com;
    
        root   /var/www/html;
        index  index.php index.html index.htm;
    
        access_log  /var/log/nginx/access.log  main;
        error_log /var/log/nginx/error.log;
    
        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";
        }
    }
    

    You may have to use a different path for the root, access_log or error_log. Those may be dependent upon the operating system you are running.

    Then after you have replaced or changed your nginx configuration file to be what I provided RESTART Nginx. If you do not know how to do that then REBOOT the entire server/computer.

    Report back after you have done that what happens then when you visit http://eucountries.com


  • @rod I replaced the entire contents of nginx.conf with that and restarted nginx. Here is what I get.

    nginx: [emerg] "server" directive is not allowed here in /usr/local/etc/nginx/nginx.conf:1

    My domain, or localhost:80 does not load.

  • Plugin & Theme Dev

    @Aureney said in How to replace localhost:4567 with domain name:

    @rod I replaced the entire contents of nginx.conf with that and restarted nginx. Here is what I get.

    nginx: [emerg] "server" directive is not allowed here in /usr/local/etc/nginx/nginx.conf:1

    My domain, or localhost:80 does not load.

    You still have to keep it wrapped by the http block.

    So in best practice your nginx.conf might look like this:

    user http http; # or whatever the user and group is called on your system
    worker_processes  1;
    
    # [...] custom global configuration
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        include conf.d/*.conf;
        include sites-enabled/*;
    }
    

    Then you create a directory called sites-enabled within the same parent directory of your nginx.conf (/usr/local/etc/nginx/ in your case).
    To keep it simple (although not best practice), create your server files within sites-enabled/my-server.conf. Those files contain the server { ... } blocks (one each file) like within @rod's post.


  • @frissdiegurke I copied that into nginx.conf, I get this error when I restart nginx.

    nginx: [emerg] getpwnam("http") failed in /usr/local/etc/nginx/nginx.conf:1


  • @tqwhite said in Nginx problems:

    @charles I think she's running on OS X. That's why she used Homebrew before.

    And you're right. It's very simple and straightforward. That's why I think it very unlikely that her installation of nginx is the problem.

    Yikes! Thanks for letting me know. I would try to help but I switched out of OSX because some things are just easier with Ubuntu


  • I have a similar problem with nginx configuration (and, redirection) - https://community.nodebb.org/topic/8955/where-is-the-htaccess-file/1

    Any help will be apreciated

    SD


  • I sorted out the nginx problems and now its working fine. Just have two questions.

    1. example.com works fine except www.example.com does not. How do you fix this.
    2. how long can NodeBB run? What if the computer is shutdown, does the website still run? What about if it the computer is dismantled?

  • ......bump

Suggested Topics

  • 3
  • 4
  • 1
  • 4
  • 2
| |