如何在 Ubuntu 22.04 上安装 Apache 并使用 Nginx 作为反向代理

如何在 Ubuntu 22.04 上安装 Apache 并使用 Nginx 作为反向代理

Apache 和 Nginx 是免费、开源的,并且是全球最受欢迎的 Web 服务器之一。 它们通常用于托管基于 PHP 的应用程序。 Nginx 以其轻量级结构和速度而闻名,而 Apache 则以其性能而闻名。 两者都旨在处理不同的工作负载。 Nginx 能够很好地处理静态内容,而 Apache 可以处理动态内容。 我们可以在一个系统上使用两个 Web 服务器,从而从两者中受益。

本文将向您展示如何在 Ubuntu 22.04 上安装 Nginx 作为 Apache 的反向代理。

先决条件

  • 运行 Ubuntu 22.04 的服务器。
  • 与您的服务器 IP 指向的有效域名。
  • 服务器上配置了 root 密码。

安装 Apache 网络服务器

默认情况下,Apache Webserver 软件包包含在 Ubuntu 22.04 默认存储库中。 您可以通过运行以下命令来安装它:

apt-get install apache2 -y

安装 Apache 软件包后,启动 Apache 服务并使其在系统重新引导时启动:

systemctl start apache2
systemctl enable apache2

更改 Apache 默认端口

默认情况下,Apache Web 服务器侦听端口 80。在本文中,我们将使用 Nginx 作为 Apache 的反向代理。 因此,您需要将 Apache 默认端口更改为 8080。您可以通过编辑以下文件来更改它:

nano /etc/apache2/ports.conf

找到以下行:

Listen 80

并且,将其替换为以下行:

Listen 127.0.0.1:8080

完成后保存并关闭文件。 接下来,您还需要编辑 Apache 默认虚拟主机配置文件并更改默认端口。

您可以使用以下命令对其进行编辑:

nano /etc/apache2/sites-available/000-default.conf

找到以下行:


并且,将其替换为以下行:


保存并关闭文件,然后重新启动 Apache 服务以应用更改。

systemctl restart apache2

您现在可以使用以下命令检查 Apache 的状态:

systemctl status apache2

您将得到以下输出:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-05-05 12:02:11 UTC; 7s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 25295 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 25299 (apache2)
      Tasks: 6 (limit: 4630)
     Memory: 20.5M
        CPU: 126ms
     CGroup: /system.slice/apache2.service
             ??25299 /usr/sbin/apache2 -k start
             ??25300 /usr/sbin/apache2 -k start
             ??25301 /usr/sbin/apache2 -k start
             ??25302 /usr/sbin/apache2 -k start
             ??25303 /usr/sbin/apache2 -k start
             ??25304 /usr/sbin/apache2 -k start

May 05 12:02:11 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...

此时Apache已启动并监听8080端口,可以通过以下命令查看:

ss -antpl | grep apache2

您将得到以下输出:

LISTEN 0      511        127.0.0.1:8080      0.0.0.0:*    users:(("apache2",pid=25304,fd=3),("apache2",pid=25303,fd=3),("apache2",pid=25302,fd=3),("apache2",pid=25301,fd=3),("apache2",pid=25300,fd=3),("apache2",pid=25299,fd=3))

安装 Nginx 网络服务器

您可以通过运行以下命令来安装 Nginx 软件包:

apt-get install nginx -y

安装 Nginx 软件包后,启动 Nginx 服务并使其在系统重新启动时启动:

systemctl start nginx
systemctl enable nginx

将 Nginx 配置为 Apache 的反向代理

现在,您需要将 Nginx 配置为反向代理,以将端口 80 上的所有请求转发到 Apache Web 服务器端口 8080。

为此,请创建 Nginx 虚拟主机配置文件:

nano /etc/nginx/conf.d/proxy.conf

添加以下行:

server {
   listen 80;

   root /var/www/html/;
   index index.html index.htm;

   server_name proxy.example.com;

   location \ {

   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $remote_addr;
   proxy_set_header Host $host;
   proxy_pass http://127.0.0.1:8080;
}

}

完成后保存并关闭文件。 然后,使用以下命令验证 Nginx 是否存在任何语法错误:

nginx -t

您将得到以下输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

接下来,重新启动 Nginx 服务以应用更改:

systemctl restart nginx

您还可以使用以下命令检查 Nginx 状态:

systemctl status nginx

您将得到以下输出:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-05-05 12:03:09 UTC; 5s ago
       Docs: man:nginx(8)
    Process: 25313 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 25314 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 25315 (nginx)
      Tasks: 3 (limit: 4630)
     Memory: 3.3M
        CPU: 49ms
     CGroup: /system.slice/nginx.service
             ??25315 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??25316 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??25317 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

May 05 12:03:09 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
May 05 12:03:09 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

验证反向代理

至此,Nginx 已安装并配置为 Apache Web 服务器的反向代理。 您现在可以使用 URL http://proxy.example.com 对其进行测试。 如果一切正常,您将在以下屏幕上看到 Apache 测试页面:

结论

本指南解释了如何安装和配置 Nginx 作为 Apache Web 服务器的反向代理。 您现在可以使用此设置来托管互联网上的任何应用程序。 如果您有任何疑问,请随时问我。

资讯来源:由0x资讯编译自HOWTOFORGE,版权归作者所有,未经许可,不得转载

资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载

上一篇 2024年 5月 31日
下一篇 2024年 5月 31日

相关推荐