如果已安装 Nginx,如何在 Ubuntu 14.04 上配置 Apache

如果已安装 Nginx,如何在 Ubuntu 14.04 上配置 Apache

我按照 Digital Ocean 上的教程安装了激光脉冲服务器成功。

然后我阅读了有关使用 Nginx 和 APache 在同一个 droplet 上托管多个网站的反向代理。

因为我有一个 Big fat droplet,所以我想在同一个 droplet 上托管两个基于 Laravel 的 APP。

因此,我使用本教程安装了 apache2 关联

但不幸的是 apache 没有运行

$ sudo service apache2 reload
 * Reloading web server apache2                                               *
 * Apache2 is not running

所以我做了

 sudo netstat -tlpn

并得到这张表

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         Stat     e       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LIST     EN      5377/nginx
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LIST     EN      1233/sshd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LIST     EN      3529/mysqld
tcp6       0      0 :::80                   :::*                    LIST     EN      5377/nginx
tcp6       0      0 :::22                   :::*                    LIST     EN      1233/sshd

我是一名 Windows 用户,但我不知道如何解决这个问题。

谁能帮我吗 。

谢谢,

答案1

Nginx 在端口 80 上运行,这没问题。Apache httpd 的默认端口也是端口 80,这是一个问题。

重新配置 Apache httpd

  • 使用 Apache httpd 的 8080 端口。打开ports.conf

    sudo nano vi /etc/apache2/ports.conf
    

    并替换

    Listen 80
    

    Listen 8080
    

    如果需要的话,对虚拟主机执行相同操作。

  • 重新启动 Apache httpd

    sudo systemctl restart apache2
    

    或在 Trusty 上使用

    sudo service apache2 restart
    
  • 检查输出netstat

    $ sudo netstat -tulpn | grep apache2
    tcp6   0  0 :::8080   :::*  LISTEN  22769/apache2
    

    是的,从上面的输出来看,httpd 正在监听 tcp 端口 80。

  • 重新配置 nginx 以作为代理,并使用 Apache httpd 作为后端,例如通过编辑端口 80/etc/nginx/sites-available/default

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

    location并在下面的部分中添加代理设置

    proxy_pass http://127.0.0.1:8080;
    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 http;
    proxy_set_header X-Forwarded-Port 80;
    proxy_set_header Host $host;
    
  • 重启 nginx

    sudo systemctl restart nginx
    

    或在 Trusty 上使用

    sudo service nginx restart
    
  • 检查输出netstat

    $ sudo netstat -tulpn | grep -P 'nginx|apache2'
    tcp  0  0 0.0.0.0:80  0.0.0.0:*  LISTEN  22973/nginx -g daem
    tcp6 0  0 :::80       :::*       LISTEN  22973/nginx -g daem
    tcp6 0  0 :::8080     :::*       LISTEN  22769/apache2 
    

将 httpd 配置为仅监听 127.0.0.1 是一个好主意。

答案2

长话短说 - 您必须运行 apache 来监听不同的端口(Listen),因为端口 80 已经被 nginx 使用。

相关内容