阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理

161次阅读
没有评论

共计 6417 个字符,预计需要花费 17 分钟才能阅读完成。

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 上安装 Nginx 作为 Apache 的反向代理

前提条件

  • FreeBSD 10.2
  • Root 权限

 

步骤 1 – 更新系统

使用 SSH 认证方式登录到你的 FreeBSD 服务器,使用下面命令来更新你的系统:

  1. freebsd-update fetch
  2. freebsd-update install

 

步骤 2 – 安装 Apache

Apache 是开源的、使用范围最广的 web 服务器。在 FreeBSD 里默认没有安装 Apache,但是我们可以直接通过 /usr/ports/www/apache24 下的 ports 或软件包来安装,也可以直接使用 pkg 命令从 FreeBSD 软件库中安装。在本教程中,我们将使用 pkg 命令从 FreeBSD 软件库中安装:

  1. pkg install apache24

 

步骤 3 – 安装 PHP

一旦成功安装 Apache,接着将会安装 PHP,它来负责处理用户对 PHP 文件的请求。我们将会用到如下的 pkg 命令来安装 PHP:

  1. 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。

进入到“/usr/local/etc/”目录,并且复制 php.ini-production 文件到 php.ini :

  1. cd/usr/local/etc/
  2. cp php.ini-production php.ini

下一步,在 Apache 目录下通过编辑“httpd.conf”文件来配置 Apache:

  1. cd/usr/local/etc/apache24
  2. nano-c httpd.conf

端口配置在第 52 行 :

  1. Listen8080

服务器名称配置在第 219 行:

  1. ServerName127.0.0.1:8080

在第 277 行,添加 DirectoryIndex 文件,Apache 将用它来服务对目录的请求:

  1. DirectoryIndex index.php index.html

在第 287 行下,配置 Apache,添加脚本支持:

  1. <FilesMatch"\.php$">
  2. SetHandler application/x-httpd-php
  3. </FilesMatch>
  4. <FilesMatch"\.phps$">
  5. SetHandler application/x-httpd-php-source
  6. </FilesMatch>

保存并退出。

现在用 sysrc 命令,来添加 Apache 为开机启动项目:

  1. sysrc apache24_enable=yes

然后用下面的命令测试 Apache 的配置:

  1. apachectl configtest

如果到这里都没有问题的话,那么就启动 Apache 吧:

  1. service apache24 start

如果全部完毕,在“/usr/local/www/apache24/data”目录下创建一个 phpinfo 文件来验证 PHP 在 Apache 下顺利运行:

  1. cd/usr/local/www/apache24/data
  2. echo"<?php phpinfo(); ?>">info.php

现在就可以访问 freebsd 的服务器 IP : 192.168.1.123:8080/info.php。

如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理

Apache and PHP on Port 8080

Apache 及 PHP 运行在 8080 端口。

 

步骤 5 – 安装 Nginx

Nginx 可以以较低内存占用提供高性能的 Web 服务器和反向代理服务器。在这个步骤里,我们将会使用 Nginx 作为 Apache 的反向代理,因此让我们用 pkg 命令来安装它吧:

  1. pkg install nginx

 

步骤 6 – 配置 Nginx

一旦 Nginx 安装完毕,在“nginx.conf”文件里,我们需要做一个新的配置文件来替换掉原来的 nginx 配置文件。切换到“/usr/local/etc/nginx/”目录下,并且备份默认 nginx.conf 文件:

  1. cd/usr/local/etc/nginx/
  2. mv nginx.conf nginx.conf.oroginal

现在就可以创建一个新的 nginx 配置文件了:

  1. nano-c nginx.conf

然后粘贴下面的配置:

  1. user www;
  2. worker_processes 1;
  3. error_log /var/log/nginx/error.log;
  4. events {
  5. worker_connections 1024;
  6. }
  7. http {
  8. include mime.types;
  9. default_type application/octet-stream;
  10. log_format main '$remote_addr - $remote_user [$time_local]"$request" '
  11. '$status $body_bytes_sent"$http_referer" '
  12. '"$http_user_agent" "$http_x_forwarded_for"';
  13. access_log /var/log/nginx/access.log;
  14. sendfile on;
  15. keepalive_timeout 65;
  16. #Nginx cache configuration
  17. proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
  18. proxy_temp_path /var/nginx/cache/tmp;
  19. proxy_cache_key "$scheme$host$request_uri";
  20. gzip on;
  21. server {
  22. #listen 80;
  23. server_name _;
  24. location /nginx_status {
  25. stub_status on;
  26. access_log off;
  27. }
  28. # redirect server error pages to the static page /50x.html
  29. #
  30. error_page 500502503504/50x.html;
  31. location =/50x.html {
  32. root /usr/local/www/nginx-dist;
  33. }
  34. # proxy the PHP scripts to Apache listening on 127.0.0.1:8080
  35. #
  36. location ~ \.php$ {
  37. proxy_pass http://127.0.0.1:8080;
  38. include/usr/local/etc/nginx/proxy.conf;
  39. }
  40. }
  41. include/usr/local/etc/nginx/vhost/*;
  42. }

保存并退出。

下一步,在 nginx 目录下面,创建一个 proxy.conf 文件,使其作为反向代理 :

  1. cd/usr/local/etc/nginx/
  2. nano-c proxy.conf

粘贴如下配置:

  1. proxy_buffering on;
  2. proxy_redirect off;
  3. proxy_set_header Host $host;
  4. proxy_set_header X-Real-IP $remote_addr;
  5. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  6. client_max_body_size 10m;
  7. client_body_buffer_size 128k;
  8. proxy_connect_timeout 90;
  9. proxy_send_timeout 90;
  10. proxy_read_timeout 90;
  11. proxy_buffers 1008k;
  12. add_header X-Cache $upstream_cache_status;

保存并退出。

最后一步,为 nginx 的高速缓存创建一个“/var/nginx/cache”的新目录:

  1. mkdir-p /var/nginx/cache

 

步骤 7 – 配置 Nginx 的虚拟主机

在这个步骤里面,我们需要创建一个新的虚拟主机域“saitama.me”,其文档根目录为“/usr/local/www/saitama.me”,日志文件放在“/var/log/nginx”目录下。

我们必须做的第一件事情就是创建新的目录来存放虚拟主机配置文件,我们创建的新目录名为“vhost”。创建它:

  1. cd/usr/local/etc/nginx/
  2. mkdir vhost

创建好 vhost 目录,然后我们就进入这个目录并创建一个新的虚拟主机文件。这里我取名为“saitama.conf”:

  1. cd vhost/
  2. nano-c saitama.conf

粘贴如下虚拟主机的配置:

  1. server {
  2. #Replacewith your freebsd IP
  3. listen 192.168.1.123:80;
  4. #DocumentRoot
  5. root /usr/local/www/saitama.me;
  6. index index.php index.html index.htm;
  7. #Domain
  8. server_name www.saitama.me saitama.me;
  9. #ErrorandAccess log file
  10. error_log /var/log/nginx/saitama-error.log;
  11. access_log /var/log/nginx/saitama-access.log main;
  12. #ReverseProxyConfiguration
  13. location ~ \.php$ {
  14. proxy_pass http://127.0.0.1:8080;
  15. include/usr/local/etc/nginx/proxy.conf;
  16. #Cache configuration
  17. proxy_cache my-cache;
  18. proxy_cache_valid 10s;
  19. proxy_no_cache $cookie_PHPSESSID;
  20. proxy_cache_bypass $cookie_PHPSESSID;
  21. proxy_cache_key "$scheme$host$request_uri";
  22. }
  23. #DisableCachefor the file type html, json
  24. location ~*.(?:manifest|appcache|html?|xml|json)$ {
  25. expires -1;
  26. }
  27. #EnableCache the file30 days
  28. location ~*.(jpg|png|gif|jpeg|css|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
  29. proxy_cache_valid 200120m;
  30. expires 30d;
  31. proxy_cache my-cache;
  32. access_log off;
  33. }
  34. }

保存并退出。

下一步,为 nginx 和虚拟主机创建一个新的日志目录“/var/log/”:

  1. mkdir-p /var/log/nginx/

如果一切顺利,在文件的根目录下创建目录 saitama.me 用作文档根:

  1. cd/usr/local/www/
  2. mkdir saitama.me

 

步骤 8 – 测试

在这个步骤里面,我们只是测试我们的 nginx 和虚拟主机的配置。

用如下命令测试 nginx 的配置:

  1. nginx -t

如果一切都没有问题,用 sysrc 命令添加 nginx 为开机启动项,并且启动 nginx 和重启 apache:

  1. sysrc nginx_enable=yes
  2. service nginx start
  3. service apache24 restart

一切完毕后,在 saitama.me 目录下,添加一个新的 phpinfo 文件来验证 php 的正常运行:

  1. cd/usr/local/www/saitama.me
  2. echo"<?php phpinfo(); ?>">info.php

然后访问这个域名:www.saitama.me/info.php

如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理

Virtualhost Configured saitamame

Nginx 作为 Apache 的反向代理运行了,PHP 也同样工作了。

这是另一个结果:

测试无缓存的 .html 文件。

  1. curl -I www.saitama.me

如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理

html with no-cache

测试有三十天缓存的 .css 文件。

  1. curl -I www.saitama.me/test.css

如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理

css file 30day cache

测试缓存的 .php 文件:

  1. curl -I www.saitama.me/info.php

如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理

PHP file cached

全部搞定。

 

总结

Nginx 是最受欢迎的 HTTP 和反向代理服务器,拥有丰富的功能、高性能、低内存 /RAM 占用。Nginx 也用于缓存,我们可以在网络上缓存静态文件使得网页加速,并且缓存用户请求的 php 文件。Nginx 容易配置和使用,可以将它用作 HTTP 服务器或者 apache 的反向代理。

更多 Nginx 相关教程见以下内容

CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm

Nginx 自签名 https 和反向代理  http://www.linuxidc.com/Linux/2015-12/126226.htm

利用 Apache 的转发模块实现反向代理服务器  http://www.linuxidc.com/Linux/2015-10/123947.htm

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里


via: http://linoxide.com/linux-how-to/install-nginx-reverse-proxy-apache-freebsd-10-2/

作者:Arul 译者:KnightJoker 校对:Caroline,wxy

本文由 LCTT 原创编译,Linux 中国 荣誉推出

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-01/127139.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6417字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中