如何在 Ubuntu 15.10 上安装 Nginx 作为 Apache 的反向代理如何在 Ubuntu 15.10 上安装 Nginx 作为 Apache 的反向代理如何在 Ubuntu 15.10 上安装 Nginx 作为 Apache 的反向代理如何在 Ubuntu 15.10 上安装 Nginx 作为 Apache 的反向代理
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 15.10 上安装 Nginx 作为 Apache 的反向代理

本教程适用于这些操作系统版本

  • Ubuntu 12.04 LTS(精准穿山甲)

在此页

  1. 第 1 步 - 安装 Apache 和 PHP
  2. 第 2 步 - 配置 Apache 和 PHP
  3. 第 3 步 - 安装 Nginx
  4. 第 4 步 - 配置 Nginx
  5. 第 5 步 - 配置日志记录
  6. 结论

Nginx 或 \engine-x\ 是一个低内存占用的高性能 web 服务器,由 Igor Sysoev 于 2002 年创建。Nginx 不仅仅是一个 web 服务器,它可以作为反向使用代理许多协议,如 HTTP、HTTPS、POP3、SMTP 和 IMAP,并作为负载平衡器和 HTTP 缓存。

Apache 是由 Apache 软件基金会下的开源社区维护的最流行的 Web 服务器软件。有许多附加模块可用于 apache,如 WebDav 支持或 web 应用程序防火墙,如 mod_security,它支持许多 web 编程语言,如 Perl、Python、PHP 通过本机模块或通过 cgi、fcgi 和 FPM 接口。

在本教程中,我将在 Ubuntu 15.10 上安装和配置 Nginx 作为 Apache Web 服务器的缓存反向代理,Nginx 用作前端,Apache 用作后端。 Nginx 将在端口 80 上运行以响应来自用户/浏览器的请求,然后该请求将被转发到在端口 8080 上运行的 apache 服务器。

第 1 步 - 安装 Apache 和 PHP

使用 SSH 登录到您的 ubuntu 服务器并通过运行以下命令成为 root 用户:

sudo su

然后使用 apt-get 命令安装 apache:

apt-get install apache2

安装 apache 后,我们必须安装 PHP 作为本教程的 apache 模块:

apt-get install php5 php5-mysql libapache2-mod-php5

第 2 步 - 配置 Apache 和 PHP

默认情况下,apache 侦听端口 80。我们必须将 apache 配置为在端口 8080 上运行以用于我们的代理设置,因为稍后 nginx 将使用端口 80。

如果要更改apache web服务器的端口,必须编辑apache配置文件\/etc/apache2/ports.conf\,然后在\/etc/apache2/sites中进行虚拟主机配置-可用/\”目录。

首先通过使用 vim 编辑器编辑文件 \ports.conf\ 将 apache 的端口更改为 8080:

vim /etc/apache2/ports.conf

在第 5 行,将端口 80 更改为 8080。

Listen 8080

保存并退出。

现在转到虚拟主机目录并编辑文件 \000-default.conf\ :

cd sites-available/
vim 000-default.conf

确保您的配置与以下相同:

<VirtualHost *:8080>

    ServerName www.reverse.com
    ServerAlias reverse.com

    ServerAdmin 
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

保存并退出。

接下来,测试配置并重新启动 apache:

apachectl configtest
systemctl restart apache2

最后我们验证 apache 和 php 是否正常工作。在目录 \/var/www/html/\ 中创建一个名为 \info.php\ 的新文件。

cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php

访问您的网站 www.reverse.com:8080/info.php。

结果应该类似于上面的屏幕截图。

第 3 步 - 安装 Nginx

使用以下 apt-get 命令安装 Nginx:

apt-get install nginx

第 4 步 - 配置 Nginx

安装 Nginx 后,将 Nginx 配置为充当运行在端口 8080 上的 apache Web 服务器的反向代理。

进入nginx配置目录,编辑文件\nginx.conf\:

cd /etc/nginx/
vim nginx.conf

通过取消注释 gzip 行为 Nginx 启用 Gzip 压缩:

        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 6;
        gzip_buffers 16 8k;
        gzip_http_version 1.1;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

最重要的是:

gzip on :开启 gzip 压缩。

gzip_types :是您要进行压缩的 MIME 类型列表。

gzip_proxied any :为代理请求启用压缩。

在 gzip 设置下,添加这些代理缓存设置:

        # Proxy Cache Settings
        proxy_cache_path /var/cache levels=1:2 keys_zone=reverse_cache:60m inactive=90m max_size=1000m;

代理缓存的目录是 /var/cache。

levels 是一个指令,它告诉 Nginx 缓存是如何保存在文件系统中的。

key_zone 只是缓存区域的名称,您可以随意选择,但不要在名称中添加特殊字符或空格。我将在此处使用名称“reverse_cache”。

保存并退出。

现在我们将在目录\/etc/nginx/sites-available\ 中配置一个虚拟主机。

在本教程中,我将创建一个名为“reverse.conf”的新虚拟主机配置文件。刚刚进入目录并使用 vim 创建新文件:

cd /etc/nginx/sites-available
vim reverse.conf

粘贴下面的配置:

server {
    listen 80;

    # Site Directory same in the apache virtualhost configuration
    root /var/www/html; 
    index index.php index.html index.htm;

    # Domain
    server_name www.reverse.com reverse.com;

    location / {
        try_files $uri $uri/ /index.php;
    }


    # Reverse Proxy and Proxy Cache Configuration
    location ~ \.php$ {
 
        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;

        # Cache configuration
        proxy_cache reverse_cache;
        proxy_cache_valid 3s;
        proxy_no_cache $cookie_PHPSESSID;
        proxy_cache_bypass $cookie_PHPSESSID;
        proxy_cache_key "$scheme$host$request_uri";
        add_header X-Cache $upstream_cache_status;
    }

    # Enable Cache the file 30 days
    location ~* .(jpg|png|gif|jpeg|css|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
        proxy_cache_valid 200 120m;
        expires 30d;
        proxy_cache reverse_cache;
        access_log off;
    }

    # Disable Cache for the file type html, json
    location ~* .(?:manifest|appcache|html?|xml|json)$ {
        expires -1;
    }

    location ~ /\.ht {
        deny all;
    }
}

保存并退出。

然后激活新的虚拟主机配置:

ln -s /etc/nginx/sites-available/reverse.conf /etc/nginx/sites-enabled/

最后我们将测试 nginx 配置并重启 nginx:

nginx -t
systemctl restart nginx

Nginx 现在配置为反向代理。你可以用 curl 测试它:

curl -I www.reverse.com

Cache-Control: no-cache 表示 index.html 和所有以 .html 结尾的文件都不会缓存。

另一个测试:

curl -I www.reverse.com/info.php

X-Cache: HIT 表示页面正在由 Nginx 缓存提供服务。

第 5 步 - 配置日志记录

在这一步中,我将配置 apache 来记录访问者的真实 ip 而不是本地 IP。

请安装 apache 模块 \libapache2-mod-rpaf\ 并编辑模块配置文件:

sudo apt-get install libapache2-mod-rpaf
cd /etc/apache2/mods-available/
vim rpaf.conf

将服务器 IP 添加到第 10 行。我的服务器 IP:192.168.1.108。

RPAFproxy_ips 127.0.0.1 192.168.1.108 ::1

保存并退出。

现在重新启动 apache:

systemctl restart apache2

通过使用 tail 命令查看 apache 访问日志来测试 rpaf:

tail -f /var/log/apache2/access.log

就这样。

Nginx 作为反向代理安装在 Apache Web 服务器前面。如果访问者请求一个php文件,请求会被传递到8080端口的apache,你可以在apache日志文件上看到访问者的真实ip。

结论

Nginx 是一种快速且流行的网络服务器,内存使用率低,可以充当 HTTP 和 HTTPS 协议的网络服务器和反向代理。 Apache 的 Nginx 反向代理是一种使用 Nginx 作为前端,使用 Apache 作为后端的设置。 Nginx 处理来自浏览器的传入请求并将其传递给 apache 后端。在本教程中,我们为 nginx 设置了一个配置作为缓存 PHP 文件请求和图像的 http 缓存。

©2015-2025 艾丽卡 support@alaica.com