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

本文介绍在freebsd 10.2系统上,安装和配置Nginx网络服务器作为Apache的反向代理。Apache将在8080端口上运行PHP,而我们会配置Nginx运行在80端口以接收用户/访问者的请求。如果80端口接收到用户浏览器的网页请求,那么Nginx会将该请求传递给运行在8080端口上的Apache网络服务器和PHP。

本文介绍在freebsd 10.2系统上,安装和配置Nginx网络服务器作为Apache的反向代理。Apache将在8080端口上运行PHP,而我们会配置Nginx运行在80端口以接收用户/访问者的请求。如果80端口接收到用户浏览器的网页请求,那么Nginx会将该请求传递给运行在8080端口上的Apache网络服务器和PHP。

  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-updatefetch
  2.   freebsd-updateinstall

  步骤 2:安装 Apache

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

  1. pkginstallapache24

  步骤 3:安装 PHP

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

  1. pkginstallphp56mod_php56php56-mysqlphp56-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.   cpphp.ini-productionphp.ini

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

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

  端口配置在第52行:

  1. Listen8080

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

  1. ServerName127.0.0.1:8080

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

  1. DirectoryIndexindex.phpindex.html

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

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

  保存并退出。

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

  1. sysrcapache24_enable=yes

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

  1. apachectlconfigtest

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

  1. serviceapache24start

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

  1. cd/usr/local/www/apache24/data
  2.   echo"<?phpphpinfo();?>">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. pkginstallnginx

  步骤 6:配置 Nginx

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

  1. cd/usr/local/etc/nginx/
  2.   mvnginx.confnginx.conf.oroginal

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

  1. nano-cnginx.conf

  然后粘贴下面的配置:

  1. userwww;
  2. worker_processes1;
  3. error_log/var/log/nginx/error.log;
  4. events{
  5. worker_connections1024;
  6. }
  7. http{
  8. includemime.types;
  9. default_typeapplication/octet-stream;
  10. log_formatmain'$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. sendfileon;
  15. keepalive_timeout65;
  16. #Nginxcacheconfiguration
  17. proxy_cache_path/var/nginx/cachelevels=1:2keys_zone=my-cache:8mmax_size=1000minactive=600m;
  18. proxy_temp_path/var/nginx/cache/tmp;
  19. proxy_cache_key"$scheme$host$request_uri";
  20. gzipon;
  21. server{
  22. #listen80;
  23. server_name_;
  24. location/nginx_status{
  25. stub_statuson;
  26. access_logoff;
  27. }
  28. #redirectservererrorpagestothestaticpage/50x.html
  29. #
  30. error_page500502503504/50x.html;
  31. location=/50x.html{
  32. root/usr/local/www/nginx-dist;
  33. }
  34. #proxythePHPscriptstoApachelisteningon127.0.0.1:8080
  35. #
  36. location~\.php${
  37. proxy_passhttp://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-cproxy.conf

  粘贴如下配置:

  1. proxy_bufferingon;
  2. proxy_redirectoff;
  3. proxy_set_headerHost$host;
  4. proxy_set_headerX-Real-IP$remote_addr;
  5. proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
  6. client_max_body_size10m;
  7. client_body_buffer_size128k;
  8. proxy_connect_timeout90;
  9. proxy_send_timeout90;
  10. proxy_read_timeout90;
  11. proxy_buffers1008k;
  12. add_headerX-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.   mkdirvhost

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

  1. cdvhost/
  2.   nano-csaitama.conf

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

  1. server{
  2. #ReplacewithyourfreebsdIP
  3. listen192.168.1.123:80;
  4. #DocumentRoot
  5. root/usr/local/www/saitama.me;
  6. indexindex.phpindex.htmlindex.htm;
  7. #Domain
  8. server_namewww.saitama.mesaitama.me;
  9. #ErrorandAccesslogfile
  10. error_log/var/log/nginx/saitama-error.log;
  11. access_log/var/log/nginx/saitama-access.logmain;
  12. #ReverseProxyConfiguration
  13. location~\.php${
  14. proxy_passhttp://127.0.0.1:8080;
  15. include/usr/local/etc/nginx/proxy.conf;
  16. #Cacheconfiguration
  17. proxy_cachemy-cache;
  18. proxy_cache_valid10s;
  19. proxy_no_cache$cookie_PHPSESSID;
  20. proxy_cache_bypass$cookie_PHPSESSID;
  21. proxy_cache_key"$scheme$host$request_uri";
  22. }
  23. #DisableCacheforthefiletypehtml,json
  24. location~*.(?:manifest|appcache|html?|xml|json)${
  25. expires-1;
  26. }
  27. #EnableCachethefile30days
  28. location~*.(jpg|png|gif|jpeg|css|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)${
  29. proxy_cache_valid200120m;
  30. expires30d;
  31. proxy_cachemy-cache;
  32. access_logoff;
  33. }
  34. }

  保存并退出。

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

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

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

  1. cd/usr/local/www/
  2.   mkdirsaitama.me

  步骤 8:测试

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

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

  1. nginx-t

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

  1. sysrcnginx_enable=yes
  2.   servicenginxstart
  3.   serviceapache24restart

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

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

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

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

  Virtualhost Configured saitamame

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

  这是另一个结果:

  测试无缓存的 .html 文件。

  1. curl-Iwww.saitama.me

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

  html with no-cache

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

  1. curl-Iwww.saitama.me/test.css

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

  css file 30day cache

  测试缓存的 .php 文件:

  1. curl-Iwww.saitama.me/info.php

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

  PHP file cached

  全部搞定。

  总结

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

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月6日 18:21
下一篇 2023年5月6日 18:21

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信