自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在FreeBSD 10.2上安裝Nginx作為Apache的反向代理

開源 系統(tǒng)運維
本文介紹在freebsd 10.2系統(tǒng)上,安裝和配置Nginx網(wǎng)絡(luò)服務(wù)器作為Apache的反向代理。Apache將在8080端口上運行PHP,而我們會配置Nginx運行在80端口以接收用戶/訪問者的請求。如果80端口接收到用戶瀏覽器的網(wǎng)頁請求,那么Nginx會將該請求傳遞給運行在8080端口上的Apache網(wǎng)絡(luò)服務(wù)器和PHP。

   Nginx 是一款自由開源的 HTTP 和反向代理服務(wù)器,也可以用作 POP3/IMAP 的郵件代理服務(wù)器。Nginx 是一款高性能的 Web 服務(wù)器,其特點是功能豐富,結(jié)構(gòu)簡單以及內(nèi)存占用低。 ***個版本由 Igor Sysoev 發(fā)布于2002年,到現(xiàn)在有很多大型科技公司在使用,包括 Netflix、 Github、 Cloudflare、 WordPress.com 等等。

  在這篇教程里我們會“在 freebsd 10.2 系統(tǒng)上,安裝和配置 Nginx 網(wǎng)絡(luò)服務(wù)器作為 Apache 的反向代理”。 Apache 將在8080端口上運行 PHP ,而我們會配置 Nginx 運行在80端口以接收用戶/訪問者的請求。如果80端口接收到用戶瀏覽器的網(wǎng)頁請求,那么 Nginx 會將該請求傳遞給運行在8080端口上的 Apache 網(wǎng)絡(luò)服務(wù)器和 PHP。

  前提條件

  ◆FreeBSD 10.2

  ◆Root 權(quán)限

  步驟 1:更新系統(tǒng)

  使用 SSH 認(rèn)證方式登錄到你的 FreeBSD 服務(wù)器,使用下面命令來更新你的系統(tǒng):

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

  步驟 2:安裝 Apache

  Apache 是開源的、使用范圍最廣的 web 服務(wù)器。在 FreeBSD 里默認(rèn)沒有安裝 Apache, 但是我們可以直接通過 /usr/ports/www/apache24 下的 ports 或軟件包來安裝,也可以直接使用 pkg 命令從 FreeBSD 軟件庫中安裝。在本教程中,我們將使用 pkg 命令從 FreeBSD 軟件庫中安裝:

  1. pkg install apache24 

  步驟 3:安裝 PHP

  一旦成功安裝 Apache,接著將會安裝 PHP ,它來負責(zé)處理用戶對 PHP 文件的請求。我們將會用到如下的 pkg 命令來安裝 PHP:

  1. pkg install php56 mod_php56 php56-mysql php56-mysqli 

  步驟 4:配置 Apache 和 PHP

  一旦所有都安裝好了,我們將會配置 Apache 運行在8080端口上, 并讓 PHP 與 Apache 一同工作。 要想配置Apache,我們可以編輯“httpd.conf”這個配置文件, 對于 PHP 我們只需要復(fù)制 “/usr/local/etc/”目錄下的 PHP 配置文件 php.ini。

  進入到“/usr/local/etc/”目錄,并且復(fù)制 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. Listen 8080 

  服務(wù)器名稱配置在第219行:

  1. ServerName 127.0.0.1:8080 

  在第277行,添加 DirectoryIndex 文件,Apache 將用它來服務(wù)對目錄的請求:

  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> 

  保存并退出。

  現(xiàn)在用 sysrc 命令,來添加 Apache 為開機啟動項目:

  1. sysrc apache24_enable=yes 

  然后用下面的命令測試 Apache 的配置:

  1. apachectl configtest 

  如果到這里都沒有問題的話,那么就啟動 Apache 吧!

  1. service apache24 start 

  如果全部完畢,在“/usr/local/www/apache24/data”目錄下創(chuàng)建一個 phpinfo 文件來驗證 PHP 在 Apache 下順利運行:

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

  現(xiàn)在就可以訪問 freebsd 的服務(wù)器 IP : 192.168.1.123:8080/info.php 。

  Apache and PHP on Port 8080

  Apache 及 PHP 運行在 8080 端口。

  步驟 5:安裝 Nginx

  Nginx 可以以較低內(nèi)存占用提供高性能的 Web 服務(wù)器和反向代理服務(wù)器。在這個步驟里,我們將會使用 Nginx 作為Apache 的反向代理,因此讓我們用 pkg 命令來安裝它吧!

  1. pkg install nginx 

  步驟 6:配置 Nginx

  一旦 Nginx 安裝完畢,在“nginx.conf”文件里,我們需要做一個新的配置文件來替換掉原來的 nginx 配置文件。切換到“/usr/local/etc/nginx/”目錄下,并且備份默認(rèn) nginx.conf 文件:

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

  現(xiàn)在就可以創(chuàng)建一個新的 nginx 配置文件了:

  1. nano -c nginx.conf 

  然后粘貼下面的配置:

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

  保存并退出。

  下一步,在 nginx 目錄下面,創(chuàng)建一個 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           100 8k; 
  12. add_header              X-Cache $upstream_cache_status; 

  保存并退出。

  ***一步,為 nginx 的高速緩存創(chuàng)建一個“/var/nginx/cache”的新目錄:

  1. mkdir -p /var/nginx/cache 

  步驟 7:配置 Nginx 的虛擬主機

  在這個步驟里面,我們需要創(chuàng)建一個新的虛擬主機域“saitama.me”,其文檔根目錄為“/usr/local/www/saitama.me”,日志文件放在“/var/log/nginx”目錄下。

  我們必須做的***件事情就是創(chuàng)建新的目錄來存放虛擬主機配置文件,我們創(chuàng)建的新目錄名為“vhost”。創(chuàng)建它:

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

  創(chuàng)建好 vhost 目錄,然后我們就進入這個目錄并創(chuàng)建一個新的虛擬主機文件。這里我取名為“saitama.conf”:

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

  粘貼如下虛擬主機的配置:

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

  保存并退出。

  下一步,為 nginx 和虛擬主機創(chuàng)建一個新的日志目錄“/var/log/”:

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

  如果一切順利,在文件的根目錄下創(chuàng)建目錄 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。

  Virtualhost Configured saitamame

  Nginx 作為 Apache 的反向代理運行了,PHP 也同樣工作了。

  這是另一個結(jié)果:

  測試無緩存的 .html 文件。

  1. curl -I www.saitama.me 

  html with no-cache

  測試有三十天緩存的 .css 文件。

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

  css file 30day cache

  測試緩存的 .php 文件:

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

  PHP file cached

  全部搞定。

  總結(jié)

  Nginx 是***的 HTTP 和反向代理服務(wù)器,擁有豐富的功能、高性能、低內(nèi)存/RAM 占用。Nginx 也用于緩存, 我們可以在網(wǎng)絡(luò)上緩存靜態(tài)文件使得網(wǎng)頁加速,并且緩存用戶請求的 php 文件。 Nginx 容易配置和使用,可以將它用作 HTTP 服務(wù)器或者 apache 的反向代理。

責(zé)任編輯:武曉燕 來源: Linux中國
相關(guān)推薦

2022-07-01 07:33:24

nginx反向代理測試

2016-09-07 18:57:48

2023-09-13 07:16:31

Ngnix代理服務(wù)器

2017-08-15 11:58:15

LinuxCentOSApache Hado

2018-11-12 12:17:00

2010-03-29 15:13:23

Nginx反向代理

2023-12-05 09:14:54

2018-05-25 11:55:41

2024-07-22 15:34:25

2018-12-24 08:48:14

NginxApache Cookie

2020-10-22 08:05:46

Nginx

2011-08-30 11:32:53

UbuntuNginx

2023-10-17 08:36:28

Nginx代理服務(wù)器

2017-12-18 12:04:02

Nginx代理均衡

2019-06-19 15:34:39

Nginx反向代理負載均衡

2020-08-06 08:23:24

Nginx反向代理Web安全

2014-04-29 14:54:48

Nginx反向代理

2021-12-04 21:45:19

UbuntuLinux開源

2022-12-27 08:51:31

WebDebian 11

2010-03-29 17:56:20

Nginx反向代理
點贊
收藏

51CTO技術(shù)棧公眾號