PUB:20151126 How to Install Nginx as Reverse Proxy for Apache on FreeBSD 10.2

@KnightJoker @carolinewuyan 这篇翻译质量不佳,还需改进。
This commit is contained in:
wxy 2016-01-07 19:07:04 +08:00
parent 01e7cf3a8a
commit 020d0f12fc

View File

@ -1,61 +1,61 @@
如何在FreeBSD 10.2上安装Nginx作为Apache的反向代理
如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理
================================================================================
Nginx是一款免费的开源HTTP和反向代理服务器, 以及一个POP3/IMAP的邮件代理服务器。Nginx是一款高性能的web服务器其特点是丰富的功能简单的结构以及低内存的占用. 第一个版本由 Igor Sysoev在2002年发布,迄今为止很多大的科技公司依然在使用,包括 Netflix, Github, Cloudflare, WordPress.com等等。
在这篇教程里我们会 "**在freebsd 10.2系统上安装和配置Nginx网络服务器作为Apache的反向代理**". Apache 会用PHP在8080端口上运行,并且我们需要在80端口配置Nginx的运行用来接收用户/访问者的请求.如果网页的用户请求来自于浏览器的80端口, 那么Nginx会用Apache网络服务器和PHP来通过这个请求并运行在8080端口
Nginx 是一款自由开源的 HTTP 和反向代理服务器,也可以用作 POP3/IMAP 的邮件代理服务器。Nginx 是一款高性能的 web 服务器,其特点是功能丰富,结构简单以及内存占用低。 第一个版本由 Igor Sysoev 发布于2002年到现在有很多大型科技公司在使用包括 Netflix、 Github、 Cloudflare、 WordPress.com 等等
#### 前提条件 ####
在这篇教程里我们会“**在 freebsd 10.2 系统上,安装和配置 Nginx 网络服务器作为 Apache 的反向代理**”。 Apache 将在8080端口上运行 PHP ,而我们会配置 Nginx 运行在80端口以接收用户/访问者的请求。如果80端口接收到用户浏览器的网页请求那么 Nginx 会将该请求传递给运行在8080端口上的 Apache 网络服务器和 PHP。
- FreeBSD 10.2.
- Root 权限.
#### 前提条件 ####
- FreeBSD 10.2
- Root 权限
### 步骤 1 - 更新系统 ###
使用SSH证书登录到你的FreeBSD服务器以及使用下面命令来更新你的系统 :
使用 SSH 认证方式登录到你的 FreeBSD 服务器,使用下面命令来更新你的系统:
freebsd-update fetch
freebsd-update install
### 步骤 2 - 安装 Apache ###
Apache是现在使用范围最广的web服务器以及开源的HTTP服务器.在FreeBSD里Apache是未被默认安装的, 但是我们可以直接通过端口或者在"/usr/ports/www/apache24" 目录下的解压包安装再或者直接从PKG命令的FreeBSD系统信息库安装。在本教程中我们将使用PKG命令从FreeBSD的库中安装:
Apache 是开源的、使用范围最广的 web 服务器。在 FreeBSD 里默认没有安装 Apache 但是我们可以直接通过 /usr/ports/www/apache24 下的 ports 或软件包来安装,也可以直接使用 pkg 命令从 FreeBSD 软件库中安装。在本教程中,我们将使用 pkg 命令从 FreeBSD 软件库中安装:
pkg install apache24
### 步骤 3 - 安装 PHP ###
一旦成功安装Apache, 接着将会安装PHP并由一个用户处理一个PHP的文件请求. 我们将会用到如下的PKG命令来安装PHP :
一旦成功安装 Apache接着将会安装 PHP ,它来负责处理用户对 PHP 文件的请求。我们将会用到如下的 pkg 命令来安装 PHP
pkg install php56 mod_php56 php56-mysql php56-mysqli
### 步骤 4 - 配置 Apache 和 PHP ###
一旦所有都安装好了, 我们将会配置Apache在8080端口上运行, 并让PHP与Apache一同工作. 要想配置Apache,我们可以编辑 "httpd.conf"这个配置文件, 然而PHP我们只需要复制"/usr/local/etc/"目录下的PHP配置文件 php.ini
一旦所有都安装好了,我们将会配置 Apache 运行在8080端口上 并让 PHP 与 Apache 一同工作。 要想配置Apache我们可以编辑“httpd.conf”这个配置文件 对于 PHP 我们只需要复制 “/usr/local/etc/”目录下的 PHP 配置文件 php.ini
进入到 "/usr/local/etc/" 目录 并且复制 php.ini-production 文件到 php.ini :
进入到“/usr/local/etc/”目录,并且复制 php.ini-production 文件到 php.ini :
cd /usr/local/etc/
cp php.ini-production php.ini
下一步, 在Apache目录下通过编辑 "httpd.conf"文件来配置Apache :
下一步,在 Apache 目录下通过编辑“httpd.conf”文件来配置 Apache
cd /usr/local/etc/apache24
nano -c httpd.conf
端口配置在第 **52**行 :
端口配置在第**52**行 :
Listen 8080
服务器名称配置在第 **219** 行:
服务器名称配置在第**219**行:
ServerName 127.0.0.1:8080
在第 **277**行如果目录需要添加的DirectoryIndex文件Apache将直接作用于它 :
在第**277**行,添加 DirectoryIndex 文件Apache 将用它来服务对目录的请求:
DirectoryIndex index.php index.html
在第 **287**行下配置Apache通过添加脚本来支持PHP :
在第**287**行下,配置 Apache ,添加脚本支持:
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
@ -66,47 +66,47 @@ Apache是现在使用范围最广的web服务器以及开源的HTTP服务器.在
保存并退出。
现在用sysrc命令来添加Apache作为开机启动项目 :
现在用 sysrc 命令,来添加 Apache 为开机启动项目:
sysrc apache24_enable=yes
然后用下面的命令测试Apache的配置 :
然后用下面的命令测试 Apache 的配置:
apachectl configtest
如果到这里都没有问题的话,那么就启动Apache吧 :
如果到这里都没有问题的话,那么就启动 Apache 吧:
service apache24 start
如果全部完毕, 在"/usr/local/www/apache24/data" 目录下创建一个phpinfo文件来验证PHP在Apache下完美运行:
如果全部完毕,在“/usr/local/www/apache24/data”目录下创建一个 phpinfo 文件来验证 PHP 在 Apache 下顺利运行:
cd /usr/local/www/apache24/data
echo "<?php phpinfo(); ?>" > info.php
现在就可以访问 freebsd 的服务器 IP : 192.168.1.123:8080/info.php.
现在就可以访问 freebsd 的服务器 IP : 192.168.1.123:8080/info.php
![Apache and PHP on Port 8080](http://blog.linoxide.com/wp-content/uploads/2015/11/Apache-and-PHP-on-Port-8080.png)
Apache 是使用 PHP 在 8080 端口下运行的
Apache 及 PHP 运行在 8080 端口
### 步骤 5 - 安装 Nginx ###
Nginx 以低内存的占用作为一款高性能的web服务器以及反向代理服务器。在这个步骤里我们将会使用Nginx作为Apache的反向代理, 因此让我们用pkg命令来安装它吧 :
Nginx 可以以较低内存占用提供高性能的 Web 服务器和反向代理服务器。在这个步骤里,我们将会使用 Nginx 作为Apache 的反向代理,因此让我们用 pkg 命令来安装它吧:
pkg install nginx
### 步骤 6 - 配置 Nginx ###
一旦 Nginx 安装完毕, 在 "**nginx.conf**" 文件里我们需要做一个新的配置文件来替换掉原来的nginx文件。更改到 "/usr/local/etc/nginx/"目录下,并且备份默认 nginx.conf 文件:
一旦 Nginx 安装完毕,在“**nginx.conf**”文件里,我们需要做一个新的配置文件来替换掉原来的 nginx 配置文件。切换到“/usr/local/etc/nginx/”目录下,并且备份默认 nginx.conf 文件:
cd /usr/local/etc/nginx/
mv nginx.conf nginx.conf.oroginal
现在就可以创建一个新的 nginx 配置文件了 :
现在就可以创建一个新的 nginx 配置文件了
nano -c nginx.conf
然后粘贴下面的配置:
然后粘贴下面的配置
user www;
worker_processes 1;
@ -166,12 +166,12 @@ Nginx 以低内存的占用作为一款高性能的web服务器以及反向代
保存并退出。
下一步, 在nginx目录下面,创建一个 **proxy.conf** 文件,使其作为反向代理 :
下一步,在 nginx 目录下面,创建一个 **proxy.conf** 文件,使其作为反向代理 :
cd /usr/local/etc/nginx/
nano -c proxy.conf
粘贴如下配置 :
粘贴如下配置
proxy_buffering on;
proxy_redirect off;
@ -186,27 +186,27 @@ Nginx 以低内存的占用作为一款高性能的web服务器以及反向代
proxy_buffers 100 8k;
add_header X-Cache $upstream_cache_status;
保存并退出.
保存并退出
最后一步, 为 nginx 的高速缓存创建一个 "/var/nginx/cache"的新目录 :
最后一步,为 nginx 的高速缓存创建一个“/var/nginx/cache”的新目录
mkdir -p /var/nginx/cache
### 步骤 7 - 配置 Nginx 的虚拟主机 ###
在这个步骤里面,我们需要创建一个新的虚拟主机域 "saitama.me", 以跟文件 "/usr/local/www/saitama.me" 和日志文件一同放在 "/var/log/nginx" 目录下。
在这个步骤里面,我们需要创建一个新的虚拟主机域“saitama.me”其文档根目录为“/usr/local/www/saitama.me”日志文件放在“/var/log/nginx”目录下。
我们必须做的第一件事情就是创建新的目录来存放虚拟主机文件, 在这里我们将用到一个"**vhost**"的新文件. 并创建它 :
我们必须做的第一件事情就是创建新的目录来存放虚拟主机配置文件,我们创建的新目录名为“**vhost**”。创建它:
cd /usr/local/etc/nginx/
mkdir vhost
创建好vhost 目录, 那么我们就进入这个目录并创建一个新的虚拟主机文件。这里我取名为 "**saitama.conf**" :
创建好 vhost 目录,然后我们就进入这个目录并创建一个新的虚拟主机文件。这里我取名为“**saitama.conf**”:
cd vhost/
nano -c saitama.conf
粘贴如下虚拟主机的配置 :
粘贴如下虚拟主机的配置
server {
# Replace with your freebsd IP
@ -254,65 +254,65 @@ Nginx 以低内存的占用作为一款高性能的web服务器以及反向代
保存并退出。
下一步, 为nginx和虚拟主机创建一个新的日志目录 "/var/log/" :
下一步,为 nginx 和虚拟主机创建一个新的日志目录“/var/log/”:
mkdir -p /var/log/nginx/
如果一切顺利, 在文件的根目录下创建文件 saitama.me :
如果一切顺利,在文件的根目录下创建目录 saitama.me 用作文档根:
cd /usr/local/www/
mkdir saitama.me
### 步骤 8 - 测试 ###
在这个步骤里面我们只是测试我们的nginx和虚拟主机的配置。
在这个步骤里面,我们只是测试我们的 nginx 和虚拟主机的配置。
用如下命令测试nginx的配置 :
用如下命令测试 nginx 的配置:
nginx -t
如果一切都没有问题, 用 sysrc 命令添加nginx为启动项,并且启动nginx和重启apache:
如果一切都没有问题,用 sysrc 命令添加 nginx 为开机启动项,并且启动 nginx 和重启 apache
sysrc nginx_enable=yes
service nginx start
service apache24 restart
一切完毕后, 在 saitama.me 目录下添加一个新的phpinfo文件来验证php的正常运行 :
一切完毕后,在 saitama.me 目录下,添加一个新的 phpinfo 文件来验证 php 的正常运行:
cd /usr/local/www/saitama.me
echo "<?php phpinfo(); ?>" > info.php
然后访问这个域名 : **www.saitama.me/info.php**.
然后访问这个域名 **www.saitama.me/info.php**
![Virtualhost Configured saitamame](http://blog.linoxide.com/wp-content/uploads/2015/11/Virtualhost-Configured-saitamame.png)
Nginx 作为Apache的反向代理正在运行了PHP也同样在进行工作了。
Nginx 作为 Apache 的反向代理运行了PHP 也同样工作了。
这是另一种结果 :
这是另一个结果:
无缓存的 Test .html 文件。
测试无缓存的 .html 文件。
curl -I www.saitama.me
![html with no-cache](http://blog.linoxide.com/wp-content/uploads/2015/11/html-with-no-cache.png)
有三十天缓存的 Test .css 文件。
测试有三十天缓存的 .css 文件。
curl -I www.saitama.me/test.css
![css file 30day cache](http://blog.linoxide.com/wp-content/uploads/2015/11/css-file-30day-cache.png)
正常缓存的 Test .php 文件:
测试缓存的 .php 文件:
curl -I www.saitama.me/info.php
![PHP file cached](http://blog.linoxide.com/wp-content/uploads/2015/11/PHP-file-cached.png)
全部完成
全部搞定
### 总结 ###
Nginx 是最受欢迎的 HTTP 和反向代理服务器,拥有丰富的高性能和低内存/RAM的使用功能。Nginx使用了太多的缓存 我们可以在网络上缓存静态文件使得网页加速并且在用户需要的时候再缓存php文件。这样 Nginx 的轻松配置和使用可以让它用作HTTP服务器或者 apache的反向代理。
Nginx 是最受欢迎的 HTTP 和反向代理服务器,拥有丰富的功能、高性能、低内存/RAM 占用。Nginx 也用于缓存, 我们可以在网络上缓存静态文件使得网页加速,并且缓存用户请求的 php 文件。 Nginx 容易配置和使用,可以将它用作 HTTP 服务器或者 apache 的反向代理。
--------------------------------------------------------------------------------
@ -320,7 +320,7 @@ via: http://linoxide.com/linux-how-to/install-nginx-reverse-proxy-apache-freebsd
作者:[Arul][a]
译者:[KnightJoker](https://github.com/KnightJoker)
校对:[Caroline(https://github.com/carolinewuyan
校对:[Caroline](https://github.com/carolinewuyan)[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出