当前位置: 首页 > 知识库问答 >
问题:

如何在80以外的其他端口上运行Nginx

严柏
2023-03-14

我不能运行Nginx,因为端口80已经在监听docker代理服务。

tcp6     0     0 :::80          :::*           LISTEN      13110/docker-proxy

我想在端口8800而不是默认端口80上运行Nginx。

因此,我编辑了默认文件,如下所示;

sudo nano /etc/nginx/sites-available/default

listen 8800 default_server;
listen [::]:8800 default_server;
listen localhost;

但是,即使在重新启动后,我仍然无法使其按预期工作。

我做错了什么,如何解决?

下面是我得到的错误;

● nginx。服务-高性能web服务器和反向代理服务器已加载:已加载(/lib/systemd/system/nginx.service;已启用;供应商预设:已启用)
活动:自2019-04-26 04:23:14美国东部夏令时起失败(结果:退出代码);13分钟前
文档:man:nginx(8)
进程:16955 ExecStart=/usr/sbin/nginx-g daemon;掌握有关程序;(代码=退出,状态=1/失败)
进程:16944 ExecStartPre=/usr/sbin/nginx-t-q-g守护进程打开;掌握有关程序;(代码=退出,状态=0/成功)
主PID:80941(代码=退出,状态=0/成功)
4月26日04:23:11 ubuntu systemd[1]:启动高性能web服务器和反向代理服务器
Apr 26 04:23:11 ubuntu nginx[16955]:nginx:[emerg]bind()到127.0。0.1:80失败(98:地址已在使用)4月26日04:23:12 ubuntu nginx[16955]:nginx:[emerg]bind()到127.0。0.1:80失败(98:地址已在使用)
4月26日04:23:12 ubuntu nginx[16955]:nginx:[emerg]bind()到127.0。0.1:80失败(98:地址已在使用)
4月26日04:23:13 ubuntu nginx[16955]:nginx:[emerg]bind()到127.0。0.1:80失败(98:地址已在使用)
4月26日04:23:13 ubuntu nginx[16955]:nginx:[emerg]bind()到127.0。0.1:80失败(98:地址已在使用)
Apr 26 04:23:14 ubuntu nginx[16955]:nginx:[emerg]仍然无法绑定()
Apr 26 04:23:14 ubuntu systemd[1]:nginx。服务:控制进程已退出,代码=退出状态=1
4月26日04:23:14 ubuntu systemd[1]:nginx。服务:失败,结果为“退出代码”
Apr 26 04:23:14 ubuntu systemd[1]:无法启动高性能web服务器和反向代理服务器。

共有3个答案

吕子真
2023-03-14

我发现这个答案服务器故障有帮助:https://serverfault.com/questions/655067/is-it-possible-to-make-nginx-listen-to-different-ports

您可以将端口添加到一个服务器块以保持简单:

server {
    listen 80;
    listen 8000;
    server_name example.org;
    root /var/www/;
}
谷博艺
2023-03-14

看来问题已经到了

        listen localhost;

“监听”指令可以使用端口号、主机或两者兼而有之。我相信在您的情况下,该行默认端口为80,这将导致您遇到的问题。

另外,如果“default”不是hosts\u中唯一可用的文件,请小心。每个端口(每个服务器块)都将默认使用端口80,除非在那里被重写。在这种情况下,仅仅编辑“默认值”是不够的。

宇文航
2023-03-14

你得去 /etc/nginx/sites-enabled/default

编辑该文件并将(如果您愿意将8800作为nginx的端口)

server { listen 8800; }

启动服务器

sudo服务nginx启动

sudo服务nginx在以前运行时重新启动。

然后访问localhost:8800

将规则添加到iptables

 vi /etc/sysconfig/iptables 
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8800 -j ACCEPT

重启IPTable

sudo service iptables restart;
 类似资料:
  • 问题内容: 我的目标是在端口80上运行Node.js。这是因为我发现node.js被某些网络阻止,这些网络不允许来自任何其他端口的流量。 看来最好的方法是通过Node.js代理Apache。我已经尝试使用node-http- proxy 来做到这一点,但是我没有任何运气。 我正在使用的代码在这里: 但是我一直收到端口80的错误“地址正在使用”。我一定做错了。 如何使用node-http-proxy

  • 问题内容: 我有一个通过端口5000运行的Flask服务器,很好。我可以在http://example.com:5000上访问它 但是是否可以在http://example.com上简单地访问它?我假设这意味着我必须将端口从5000更改为80。但是当我在Flask上尝试使用该端口时,运行该错误消息。 连续lsof -i :80收益 我需要先杀死这些进程吗?这样安全吗?还是有另一种方法可以让Flas

  • 问题内容: 我正在运行Ubuntu 11.10,并已在该系统上安装Jenkins。 我看过一些有关如何设置反向代理(Apache,Nginx等)的教程,但是,这是专门用于jenkins的VM,我想让jenkins在端口80上运行时尽可能保持精简。 我发现了新贵的配置,并将端口修改为80 当我通过启动jenkins时,显示它运行了几秒钟然后终止。 这是因为jenkins 在特权端口上以用户身份运行吗

  • 我有一个通过5000端口运行的烧瓶服务器,它很好。我可以访问http://example.com:5000 但是是否可以简单地在http://example.com上访问它呢?我想这意味着我必须把端口从5000改为80。但当我在Flask上尝试时,我运行它时会得到这个错误消息。 运行返回 我需要先干掉这些进程吗?安全吗?或者有没有另一种方法可以使Flask在端口5000上运行,但可以用某种方式重定

  • 问题内容: 我无法在端口80上启动应用程序。 我已经在本地计算机(使用我的IDE和本地服务器)上尝试过,没有运气。 我检查了其他类似的帖子,并确保我在具有root用户的服务器上运行jar。 这是错误: 问题答案: 在Linux上,只能由root用户打开低于1024的端口,因此默认情况下限制端口80 如果要在80端口上发布应用,则需要将请求从80端口重定向到要运行springapp(例如8080)端

  • 我正在尝试在Centos tomcat7上托管一个网站,如果我在端口80上运行tomcat7,一切正常,即74.208.164.45,但如果我想使用https://74.208.164.45/,它不起作用,但如果我这样尝试https://74.208.164.45:8443/添加密钥库之后,它就可以正常工作了。 所以,我需要一种在80和https上运行tomcat的方法,即https://74.2