加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

ubuntu – nginx正在运行但没有服务?

发布时间:2020-12-13 21:16:40 所属栏目:Nginx 来源:网络整理
导读:我一直在尝试将nginx设置为jetty的代理.我有一台笔记本电脑运行ubuntu服务器.现在我让jetty工作在localhost:8080,它在http://192.168.1.5:8080/my-webapp-0.1.0-standalone/上提供应用程序的主页. 我像这样配置了nginx(I adapted it from this page): serv

我一直在尝试将nginx设置为jetty的代理.我有一台笔记本电脑运行ubuntu服务器.现在我让jetty工作在localhost:8080,它在http://192.168.1.5:8080/my-webapp-0.1.0-standalone/上提供应用程序的主页.

我像这样配置了nginx(I adapted it from this page):

server {
  listen 80;
  server_name nomilkfor.me;
  rewrite ^(.+?)/?$http://nomilkfor.me$1 permanent;
}

server {
  listen 80;
  server_name www.nomilkfor.me;
  root /usr/share/nginx/html;

  location / {
    try_files $uri @my-webapp;
  }

  location @my-webapp {
    proxy_pass http://localhost:8080;
  }
}

我可以从家庭网络连接到nginx,我看到了nginx欢迎屏幕.

我也试过$sudo netstat -tanpl | grep nginx

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3264/nginx: worker 

我看到nginx正在端口80上侦听.

但是当我尝试加载nomilkfor.me时,我得到“Chrome无法连接到nomilkfor.me”错误.

我究竟做错了什么?

编辑

我创建了一个非常简单的配置,这个也通过jetty服务于/usr/share / nginx /中的index.html而不是应用程序:

server {
    listen 80;
    server_name nomilkfor.me;

    # access_log /var/log/nginx/localhost.access.log;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }

    location /html { 
        root /usr/share/nginx/;
    }
}

编辑2

似乎nginx正在使用另一个conf文件,而不是我想的.我在conf文件/etc/nginx/sites-available/nomilkfor.me中添加了一个拼写错误(我删除了一个结束大括号)并运行了$nginx -s reload并且编译时没有错误并在浏览器上显示了nginx启动页面.某处可以有另一个conf文件吗?有没有办法找到nginx使用的conf文件?

编辑3

根据Pazis comment我添加了root但不确定它应该在哪里或它应该是什么.我补充了一些建议.哪一个是正确的? /usr/share / nginx / html是我拥有index.html的地方.

server {
    listen 80;
    server_name nomilkfor.me;
    # root /home/z/jetty/jetty-dist/webapps
      root /usr/share/nginx/html;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }

    #location /html {
    #    root /usr/share/nginx/;
    }
}

编辑4

这是我的码头配置文件.它位于/home/z/jetty/jetty-dist/jetty-distribution-9.1.0.v20131115/demo-base/webapps/my-webapp.xml

最佳答案
你能尝试以下步骤吗?

>确保父nginx目录中的nginx.conf文件具有指向sites-available目录中的默认文件的include指令
>如果您需要代理其他服务(例如jetty),请使用下面共享的上游选项(在sites-available / default文件中).您可以参考服务器部分的上游.

一旦基本配置工作,您可以检查重写选项以及是否需要对主机名执行任何操作.希望能帮助到你.

Nginx.conf:

include /etc/nginx/sites-enabled/*;

在sites-available目录(默认文件)中:

upstream nomilkforme {  
        server 0.0.0.0:8080; ##nomilkforme running on 0.0.0.0:8080;
        keepalive 500;
}

server {
        listen       80;
        server_name  localhost;

        #access_log  logs/host.access.log  main;

        location / {
                proxy_redirect off;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host $http_host;
                proxy_set_header X-Nginx-Proxy true;
                proxy_set_header Connection "";
                proxy_http_version 1.1;
                proxy_pass http://nomilkforme
        }

此外,可以检查nginx conf文件(重新加载/重新启动之前),如下所示:
??nginx -t -c /etc/nginx/nginx.conf

更新:
当你尝试使用nginx配置时(或许使用netstat确认),你可以检查jetty是否在0.0.0.0:8080上运行.此外,当您通过浏览器访问URL时,是否可以从nginx共享访问/错误日志?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读