簡體   English   中英

node.js和nginx代理設置 - 出了點問題,但是什么?

[英]node.js & nginx proxy set up — something is wrong, but what?

所以我使用這個stackoverflow的答案嘗試設置我的本地(在osx上)nginx服務器,讓我的node.js網站成功發布到127.0.0.1:3000,以便在我的瀏覽器中出現在my_url.org。 它不起作用。

這是我的nginx服務器:我已經在nginx.conf文件中直接嘗試了這個,並且作為我在sites-available文件夾中創建的單獨文件,然后創建了指向啟用站點的文件夾的鏈接(根據上面鏈接的答案) )

upstream app_name {
    server 127.0.0.1:3000;
     keepalive 8;
}
server {
    listen 0.0.0.0:80;
    server_name my_url.org my_url;
    access_log /usr/local/var/log/nginx/my_url.org.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://app_name/;
           proxy_redirect off;
    }
 }

一些線索:

  1. 我知道節點正在運行,因為我可以在127.0.0.1:3000看到代碼
  2. 我知道nginx.conf文件設置正確,因為: sudo nginx -t告訴我,我在nginx.conf文件中有一個單獨的服務器在端口8080上正確通過。
  3. 到目前為止,任何錯誤日志都是空白或不存在的。
  4. 當我訪問my_url.org時,我看到托管該站點的遠程服務器。 不是127.0.0.1:3000。
  5. 每次更改后我都會sudo nginx -s reload
  6. 我試過listen 80; 並且listen 0.0.0.0:80同樣缺乏成功。
  7. 當我在鏈接的網站啟用文件夾中使用上面的代碼嘗試此操作時,我的行include /usr/local/etc/nginx/sites-enabled/*; 在nginx.conf文件中。 當我在nginx.conf文件中有上述代碼時,我會注釋掉該行。

我假設我錯過了一些明顯但卻錯過了我的東西。 任何幫助都非常感激。

你應該在你的hosts文件my_url.org指向127.0.0.1(與linux和linux一樣,它應該在/etc/hosts )。

否則,您的瀏覽器將無法重定向到您的本地服務器。

(我在評論中回答說,在這里向未來的開發者提出同樣的問題。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM