如何通过不同的端口启动 nginx (80以外)

嗨,我是 nginx 上的一个新手,我试图在我的服务器上安装它(运行 Ubuntu 4) ,它已经运行了 apache。

因此,在我 apt-get install之后,我尝试启动 nginx,然后我得到这样的信息:

Starting nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)

这是有道理的,因为 Apache 使用的是80端口。

然后我试图修改 nginx.conf,我参考了一些文章,所以我这样修改它:

   server {


listen       8080;


location / {
proxy_pass  http://xx.xx.xx.xx:9500;
proxy_set_header   Host             $host:8080;
proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
proxy_set_header Via    "nginx";
}
 

在保存这个命令并再次尝试启动 nginx 之后,我仍然会得到与前面相同的错误。我实在找不到一篇关于这个的相关文章,有没有什么好人可以分享一些启示呢?

我应该把所有的内容都贴在这里:

user www-data;
worker_processes  1;


error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;


events {
worker_connections  1024;
# multi_accept on;
}


http {
include       /etc/nginx/mime.types;


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


sendfile        on;
#tcp_nopush     on;


#keepalive_timeout  0;
keepalive_timeout  65;
tcp_nodelay        on;


gzip  on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";


include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;


server {


listen       81;


location / {
proxy_pass  http://94.143.9.34:9500;
proxy_set_header   Host             $host:81;
proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
proxy_set_header Via    "nginx";
}




}
}


mail {
See sample authentication script at:
http://wiki.nginx.org/NginxImapAuthenticateWithApachePhpScript
 

auth_http localhost/auth.php;
pop3_capabilities "TOP" "USER";
imap_capabilities "IMAP4rev1" "UIDPLUS";
 

server {
listen     localhost:110;
protocol   pop3;
proxy      on;
}
 

server {
listen     localhost:143;
protocol   imap;
proxy      on;
}
}

基本上,除了添加服务器部分之外,我什么也没有改变。

389989 次浏览

您必须转到 /etc/nginx/sites-enabled/,如果这是默认配置,那么应该有一个按名称命名的文件: default

通过定义所需的端口来编辑该文件; 在下面的代码片段中,我们在端口81上提供 Nginx 实例。

server {
listen 81;
}

要启动服务器,请运行下面的命令行;

sudo service nginx start

您现在可以访问端口81上的应用程序(对于 localhost,http://localhost:81)。

您需要更改 Apache 或 Nginx 的配置端口。完成此操作后,您将需要使用您使用的“ service”命令重新启动重新配置的服务器。


阿帕奇人

剪辑

sudo subl /etc/apache2/ports.conf

然后把下面这行的80改成不同的数字:

Listen 80

如果只是更改端口或在此处添加更多端口,则可能还必须在

sudo subl /etc/apache2/sites-enabled/000-default.conf

然后把下面这行的80改成不同的数字:

<VirtualHost *:80>

然后重新启动:

sudo service apache2 restart

Nginx

剪辑

/etc/nginx/sites-enabled/default

然后在下面一行改变80:

listen 80;

然后重新启动:

sudo service nginx restart

按照这个: 打开配置文件

vi /etc/nginx/conf.d/default.conf

更改正在监听的端口号;

listen       81;
server_name  localhost;

向 iptables 添加规则

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

重新启动 IPtables

 service iptables restart;

重新启动 nginx 服务器

service nginx restart

访问端口81上的 nginx 服务器文件

如果你在窗口,那么下面的端口相关的服务器设置是目前在文件 < em > nginx.conf < em > < nginx 安装路径 >/conf 文件夹。

server {
listen       80;
server_name  localhost;
....

更改端口号并重新启动实例。

如果在使用 Docker 时遇到此问题,请确保映射正确的端口号。 如果在运行 docker (或通过 docker)时映射端口81:80,请组合。Yml) ,您的 nginx 必须侦听端口80 没有81,因为 docker 已经执行了映射。

我自己在这个问题上花了相当多的时间,所以希望它能对未来的谷歌人有所帮助。