问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-23 11:20

我来回答

2个回答

热心网友 时间:2022-04-14 04:02

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 权限
步骤 1 - 更新系统
使用 SSH 认证方式登录到你的 FreeBSD 服务器,使用下面命令来更新你的系统:
freebsd-update fetch
freebsd-update install
步骤 2 - 安装 Apache
Apache 是开源的、使用范围最广的 web 服务器。在 FreeBSD 里默认没有安装 Apache, 但是我们可以直接通过 /usr/ports/www/apache24 下的 ports 或软件包来安装,也可以直接使用 pkg 命令从 FreeBSD 软件库中安装。在本教程中,我们将使用 pkg 命令从 FreeBSD 软件库中安装:
pkg install apache24
步骤 3 - 安装 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。
进入到“/usr/local/etc/”目录,并且复制 php.ini-proction 文件到 php.ini :
cd/usr/local/etc/
cp php.ini-proction php.ini
下一步,在 Apache 目录下通过编辑“httpd.conf”文件来配置 Apache:
cd/usr/local/etc/apache24
nano-c httpd.conf
端口配置在第52行 :
Listen8080
服务器名称配置在第219行:
ServerName127.0.0.1:8080
在第277行,添加 DirectoryIndex 文件,Apache 将用它来服务对目录的请求:
DirectoryIndex index.php index.html
在第287行下,配置 Apache ,添加脚本支持:
<FilesMatch"\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch"\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
保存并退出。
现在用 sysrc 命令,来添加 Apache 为开机启动项目:
sysrc apache24_enable=yes
然后用下面的命令测试 Apache 的配置:
apachectl configtest
如果到这里都没有问题的话,那么就启动 Apache 吧:
service apache24 start
如果全部完毕,在“/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 。
Apache and PHP on Port 8080
Apache and PHP on Port 8080
Apache 及 PHP 运行在 8080 端口。
步骤 5 - 安装 Nginx
Nginx 可以以较低内存占用提供高性能的 Web 服务器和反向代理服务器。在这个步骤里,我们将会使用 Nginx 作为Apache 的反向代理,因此让我们用 pkg 命令来安装它吧:
pkg install nginx
步骤 6 - 配置 Nginx
一旦 Nginx 安装完毕,在“nginx.conf”文件里,我们需要做一个新的配置文件来替换掉原来的 nginx 配置文件。切换到“/usr/local/etc/nginx/”目录下,并且备份默认 nginx.conf 文件:
cd/usr/local/etc/nginx/
mv nginx.conf nginx.conf.oroginal
现在就可以创建一个新的 nginx 配置文件了:
nano-c nginx.conf
然后粘贴下面的配置:
user www;
worker_processes 1;
error_log /var/log/nginx/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
#Nginx cache configuration
proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
proxy_temp_path /var/nginx/cache/tmp;
proxy_cache_key "$scheme$host$request_uri";
gzip on;
server {
#listen 80;
server_name _;
location /nginx_status {
stub_status on;
access_log off;
}
# redirect server error pages to the static page /50x.html
#
error_page 500502503504/50x.html;
location =/50x.html {
root /usr/local/www/nginx-dist;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:8080
#
location ~ \.php$ {
proxy_pass http://127.0.0.1:8080;
include/usr/local/etc/nginx/proxy.conf;
}
}
include/usr/local/etc/nginx/vhost/*;
}
保存并退出。
下一步,在 nginx 目录下面,创建一个 proxy.conf 文件,使其作为反向代理 :
cd/usr/local/etc/nginx/
nano-c proxy.conf
粘贴如下配置:
proxy_buffering on;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 1008k;
add_header X-Cache $upstream_cache_status;
保存并退出。
最后一步,为 nginx 的高速缓存创建一个“/var/nginx/cache”的新目录:
mkdir-p /var/nginx/cache
步骤 7 - 配置 Nginx 的虚拟主机
在这个步骤里面,我们需要创建一个新的虚拟主机域“saitama.me”,其文档根目录为“/usr/local/www/saitama.me”,日志文件放在“/var/log/nginx”目录下。
我们必须做的第一件事情就是创建新的目录来存放虚拟主机配置文件,我们创建的新目录名为“vhost”。创建它:
cd/usr/local/etc/nginx/
mkdir vhost
创建好 vhost 目录,然后我们就进入这个目录并创建一个新的虚拟主机文件。这里我取名为“saitama.conf”:
cd vhost/
nano-c saitama.conf
粘贴如下虚拟主机的配置:
server {
#Replacewith your freebsd IP
listen 192.168.1.123:80;
#DocumentRoot
root /usr/local/www/saitama.me;
index index.php index.html index.htm;
#Domain
server_name www.saitama.me saitama.me;
#ErrorandAccess log file
error_log /var/log/nginx/saitama-error.log;
access_log /var/log/nginx/saitama-access.log main;
#ReverseProxyConfiguration
location ~ \.php$ {
proxy_pass http://127.0.0.1:8080;
include/usr/local/etc/nginx/proxy.conf;
#Cache configuration
proxy_cache my-cache;
proxy_cache_valid 10s;
proxy_no_cache $cookie_PHPSESSID;
proxy_cache_bypass $cookie_PHPSESSID;
proxy_cache_key "$scheme$host$request_uri";
}
#DisableCachefor the file type html, json
location ~*.(?:manifest|appcache|html?|xml|json)$ {
expires -1;
}
#EnableCache the file30 days
location ~*.(jpg|png|gif|jpeg|css|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
proxy_cache_valid 200120m;
expires 30d;
proxy_cache my-cache;
access_log off;
}
}
保存并退出。
下一步,为 nginx 和虚拟主机创建一个新的日志目录“/var/log/”:
mkdir-p /var/log/nginx/
如果一切顺利,在文件的根目录下创建目录 saitama.me 用作文档根:
cd/usr/local/www/
mkdir saitama.me
步骤 8 - 测试
在这个步骤里面,我们只是测试我们的 nginx 和虚拟主机的配置。
用如下命令测试 nginx 的配置:
nginx -t
如果一切都没有问题,用 sysrc 命令添加 nginx 为开机启动项,并且启动 nginx 和重启 apache:
sysrc nginx_enable=yes
service nginx start
service apache24 restart
一切完毕后,在 saitama.me 目录下,添加一个新的 phpinfo 文件来验证 php 的正常运行:
cd/usr/local/www/saitama.me
echo"<?php phpinfo(); ?>">info.php
然后访问这个域名: www.saitama.me/info.php。
Virtualhost Configured saitamame
Virtualhost Configured saitamame
Nginx 作为 Apache 的反向代理运行了,PHP 也同样工作了。
这是另一个结果:
测试无缓存的 .html 文件。
curl -I www.saitama.me
html with no-cache
html with no-cache
测试有三十天缓存的 .css 文件。
curl -I www.saitama.me/test.css
css file 30day cache
css file 30day cache
测试缓存的 .php 文件:
curl -I www.saitama.me/info.php
PHP file cached
PHP file cached
全部搞定。
总结
Nginx 是最受欢迎的 HTTP 和反向代理服务器,拥有丰富的功能、高性能、低内存/RAM 占用。Nginx 也用于缓存, 我们可以在网络上缓存静态文件使得网页加速,并且缓存用户请求的 php 文件。 Nginx 容易配置和使用,可以将它用作 HTTP 服务器或者 apache 的反向代理。

热心网友 时间:2022-04-14 05:20

反向代理反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 freeswitch可以把手机电话转成voip吗 怎样用QQ代理服务器上网。 请问代理中国里那些HTTP代理都是怎么做的? 服务器指的是什么? 谁能给我个QQ代理登陆器,是登陆器不是代理IP? 谁有Secure HTTPS Proxy 2.0啊?用的是web freer浏览器,求给发一个,私信或邮箱都可以 WEb freer 中为什么 (更改代理服务器设置)改不了 我用了赛风3之后webfreer连不到代理服务器 为什么Web Freer 用不了?为什么会无法连接到代理服务器? 今天刚刚下载的web freer 代理服务器连接失败。 您好webfreer 链接不到代理服务器怎样设置? 为什么webfreer无法连接到代理服务器 为什么webfreer无法连接到代理服务器? “琪”字男孩名字能用吗 琦和琪哪个字的寓意比较好? 给孩子起个名字姓何,要有琪字 带琪字,带符号,颓废一点的网名帮我想几个,急用,谢谢咯!!! 求qi开始的2字、3字有寓意的男孩名字 谁帮我取个带“琪”字的男生网名 闫姓男孩,后面带琪字,中间用什么字好? websphere7.0添加node与安全有关系吗 使用Apache映射端口代理服务器,对访问速度有没有影响? 有没有打发时间的网站 数学备课组围绕教学的有效性准备采取哪些措施,希望教研组搞什么活动 求大家帮我做个初三学习计划! 九年级下学期数学教学目的要求怎么写 成功训练计划的九年级数学下 教研组工作计划2019 2019学年八年级数学教研组工作计划 精品 数学备课组介绍? 九年级数学中考总复习教案书 数学备课包括什么内容?如何备好课? 什么叫数学集体备课 手机电池电压是多少伏? 我好像用花呗付款了,现在想还款,找不到怎么还怎么办? LG手机忘记解锁密码,请问怎么解锁? LG手机忘记密码,怎么办 lg手机忘记密码强制恢复出厂 lg g6轻敲解锁忘了 现在打不开了 请问怎么打开 忘记锁屏密码? 忘记锁屏密码了?