前言
Apache
是最流行的 Web
服务器,能够在大量操作系统上运行,包括 UNIX/Linux
、Microsoft Windows
和 OpenVMS
。
NGINX
是一个高性能的 web
服务器,特别用于静态文件和反向代理,但由于它的多功能性,它可以用于任何类型的情况。
在本教程中,我们将了解如何通过使两个 Web
服务器完美协调地合作来利用它们的优势。NGINX
将用作前端 Web
服务器,它将处理客户端请求并将它们发送到 Apache
,Apache
将是我们的后端 Web
服务器并返回请求的响应。这个过程允许获得从性能到安全的各种好处。
首先,通过 SSH
连接连接到您的服务器。如果您还没有这样做,建议按照我们的指南使用 SSH
安全连接。如果是本地服务器,请转到下一步并打开服务器的终端。
Apache的安装和配置
更新 Ubuntu Linux 发行版的存储库,以确保下载最新版本的 Apache
:
$ sudo apt-get update
然后,开始安装:
$ sudo apt install apache2
至此,Apache
的安装完成,可以继续配置了。
将 Apache
默认使用的端口更改为 8080
。为此,请打开配置文件,如下所示:
$ sudo nano /etc/apache2/ports.conf
找到 Listen 80
行并将其更改为 Listen 8080
,然后保存并关闭文件。
重启 Apache
服务:
$ sudo systemctl restart apache2
要检查 Apache
端口更改,请访问 http:// <SERVER.IP>: 8080 /
或者如果是本地服务器http://localhost: 8080
。如果程序正确执行,将显示您的网站。
NGINX的安装和配置
继续开始安装 NGINX
:
$ sudo apt-get install nginx
安装完成后,打开 NGINX
配置文件,如下所示:
$ sudo nano /etc/nginx/nginx.conf
然后,编辑或添加如下所示的服务器块,以使用 NGINX
作为 Apache
代理服务器:
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm;
server_name SERVER_IP;
location / {
proxy_pass http://localhost:8090;
proxy_set_header Host $http_host;
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;
}
}
保存并关闭文件。
然后,重启 NGINX
服务:
$ sudo systemctl restart nginx
防火墙配置
如果您的系统上有防火墙,请将其设置为启用到您的计算机的 HTTP
流量和 HTTPS
流量。
使用 UFW
防火墙时,您将预先安装 NGINX
配置文件。那么让我们看看如何启用它们。
要检查 UFW
防火墙中安装的可用配置文件,请运行以下命令:
$ sudo ufw app list
屏幕上将显示与此类似的列表:
Available applications:
Dovecot IMAP
Dovecot POP3
Dovecot Secure IMAP
Dovecot Secure POP3
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
要允许 HTTP(端口 80)和 HTTPS(端口 443)流量,请使用“Nginx Full”配置文件。
可以像这样检查您的个人资料信息:
$ sudo ufw app info "Nginx Full"
配置文件的描述将出现在屏幕上:
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server
Ports:
80,443/tcp
检查配置文件后,可以启用它:
$ sudo ufw allow in "Nginx Full"
最后,通过访问地址 http://<SERVER.IP>
或本地服务器http://localhost
继续测试两个 Web
服务器。
如果该过程正确执行,您的网站将显示为默认的 Apache
屏幕。这意味着反向代理可以正常工作并且已正确配置。