未来往事
安装配置Nginx反向代理,Nginx在upstream服务器的反向代理配置,upstream模块介绍,本文基于Debian6 & Debian7  Nginx 1.8编写。

Nginx 、反向代理服务介绍
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

Nginx因其出色的处理并发连接的能力,越来越多地作为一个反向代理服务器被使用。所谓反向代理,即把Nginx置于用户接入的最前端,监听用户发来的请求,并把它们转发给相应的后端服务器来处理具体的请求。后端服务器可以是缓存服务器(如Varnish、Squid)或是处理动态/静态请求的服务器(如apache/Nginx/lighttpd),在这里不作深入讨论。本文对Nginx反向代理、Nginx在upstream服务器的设置和"proxy_pass"的功能在代码层面进行分析,并讨论在实际生产环境中的使用。

服务安装配置
1、安装 Nginx 与 ngx_http_sub_module 模块
ngx_http_sub_module模块是一个过滤器,它修改网站响应内容中的字符串,这个模块已经内置在nginx中,但是默认未安装,需要安装需要加上配置参数:--with-http_sub_module。反向代理任何网站,一般都只能反向代理首页,如果要替换里面的链接就需要再安装第三方模块with-http_sub_module模块,一般都是下载后编译安装,但是在debian下建议使用dotdeb源来安装nginx。

#追加dotdeb源
echo "deb http://packages.dotdeb.org squeeze all" >>/etc/apt/sources.list
echo "deb-src http://packages.dotdeb.org squeeze all" >>/etc/apt/sources.list
#nginx-full这个包里面包含着所有需要用到的模块
apt-get update
apt-get install nginx-full

至此,安装完毕。如果你在安装过程中遇到错误:Depends libssl0.9.8 (>= 0.9.8m-1) but it is not installable,请点击这里参考本博客另外一篇文章

2、配置Nginx反向代理模式
server {
listen       80;
server_name  g.fity.cn;
index index.php index.html index.htm;       #默认首页

location / {
     #sub_filter http://www.google.com  http://g.fity.cn; #替换URL
     sub_filter_once off; #搜索替换全部行
     proxy_pass http://www.google.com;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header Accept-Encoding ""; #清除编码
      }
  }
配置说明:创建一个g.fity.cn的域名用来反向代理访问www.google.com。

3、至此配置完毕,重启Nginx服务
#/usr/sbin/nginx -t #检查语法是否有错误
#/etc/init.d/nginx restart


配置进阶 - upstream模块
upstream模块使nginx将跨越单机的限制,完成网络数据的接收、处理和转发。
数据转发功能,为nginx提供了跨越单机的横向处理能力,使nginx摆脱只能为终端节点提供单一功能的限制,而使它具备了网路应用级别的拆分、封装和整合的战略功能。在云模型大行其道的今天,数据转发使nginx有能力构建一个网络应用的关键组件。当然,一个网络应用的关键组件往往一开始都会考虑通过高级开发语言编写,因为开发比较方便,但系统到达一定规模,需要更重视性能的时候,这些高级语言为了达成目标所做的结构化修改所付出的代价会使nginx的upstream模块就呈现出极大的吸引力,因为他天生就快。作为附带,nginx的配置提供的层次化和松耦合使得系统的扩展性也可能达到比较高的程度。如果你对upstream模块比较感兴趣可以查看本博客另外一篇文章《Nginx upstream模块》。

今天在Debian系统上使用apt-get install nginx-full方式安装nginx时遇到错误:Depends libssl0.9.8 (>= 0.9.8m-1) but it is not installable,错误代码如下:
root@(none):/opt# apt-get install nginx-full
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
nginx-full : Depends: libssl0.9.8 (>= 0.9.8m-1) but it is not installable
E: Unable to correct problems, you have held broken packages.

解决思路:
错误提示缺少高于libssl0.9.8版本的包,安装即可。链接地址:
32bit:https://packages.debian.org/squeeze/i386/libssl0.9.8/download
64bit:https://packages.debian.org/squeeze/amd64/libssl0.9.8/download

由于本机是64位的Debian7系统,这里下载及安装如下:
#wget http://ftp.cn.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8o-4squeeze14_amd64.deb
#dpkg -i libssl0.9.8_0.9.8o-4squeeze14_amd64.deb

再次运行# apt-get install nginx-full 安装成功。

Nginx Google反向代理扩展模块ngx_http_google_filter_module

ngx_http_google_filter_module扩展模块介绍
ngx_http_google_filter_module是一个过滤器模块,能够让谷歌镜像更便捷的部署。内建了正则表达式、URI locations和其他复杂的配置。原生nginx模块确保了更加高效地处理cookies, gstatic scoures和重定向。

轻松部署
1、依赖库
pcre 正则
ngx_http_proxy_module 反向代理
ngx_http_substitutions_filter_module 多重替换

下载substitutions扩展:
https://github.com/yaoweibin/ngx_http_substitutions_filter_module

2、依赖库安装过程(略)

3、Nginx重新编译安装
#cd /opt/lnmp1.2-full/src/nginx-1.8.0/

#./configure --user=www --group=www --prefix=/usr/local/nginx \
--with-http_stub_status_module --with-http_ssl_module --with-http_spdy_module \
--with-http_gzip_static_module --with-ipv6 --with-http_sub_module \
--add-module=/opt/ngx_http_google_filter_module \
--add-module=/opt/ngx_http_substitutions_filter_module-master

#make && make install

#cp -rf objs/nginx /usr/sbin/nginx  (覆盖二进制文件)

#service nginx restart
PS:#nginx -V查看版本号及上一次编辑安装的参数

4、基本配置
http配置方式
+阅读全文

php多维数组排序方法 阴

Rinald 本站原创 PHP 2015/10/19 15:41
php二维数组排序,php多维数组排序函数

Joomla后台登陆报错You do not have access to the administrator section of this site解决:

最近下了个Joomla安装倒腾,然后装完模板后导入了模板QuickSart后,发现后台登录不进去了,提示错误代码:
引用
You do not have access to the administrator section of this site
经过分析大意是登陆的账号没有权限访问管理后台。经过一番研究后,分享以下解决方法:

首先先来了解下几个表(prefix_为自己设定的表的前缀)
prefix_usergroups  //用户分组数据表;用户分组,一般会有Super Users、Public、Administrator等等……
prefix_users       //用户数据表;存放用户的帐密等信息
prefix_user_usergroup_map   //用户关联分组表;存放用户和分组的关联数据

prefix_user_usergroup_map 表中包含两个字段:
user_id       //用户id;对应prefix_users表中指定用户的id值
group_id      //分组id;对应prefix_usergroups表中指定的分组id值
Joomla账户的权限,都是通过用户所关联的分组读取权限;若用户无关联分组,自然不存在任何操作权限,所以会提示以上错误。一个用户可以关联多个分组;一个分组也可用于多个用户;他们之间的关联关系存放在prefix_user_usergroup_map表中。

要给用户分配分组,只需要在prefix_user_usergroup_map表中插入条数据即可,如
假设 prefix_users 表中存在用户admin,其id值为888, prefix_usergroup s表中存在用户分组Super User,其id值为8,那么在 prefix_user_usergroup_map 表中插入数据:user_id为888,group_id为8的数据即可。SQL语句为
插入该语句表示将admin用户分配到Super User的用户分组中;用户admin也就拥有了Super User分组的所有权限了。

joomla菜单默认首页/主页 不指定

Rinald 本站原创 CMS System 2015/09/15 22:59
joomla菜单默认首页   joomla set the default home page
admin -- menu -- main menu  -- click the index/home button

Example / Icon:
点击在新窗口中浏览此图片
Joomla 3.4 language package/extension,Joomla 3.4中文简体/繁体语言包下载及安装

Language extension/pack download:
Project Location
Joomla!®3.x Accredited Translations

Install & configuration:
Install:admin -- Extensions -- Extension Manager  -- Upload & Install Joomla Extension
Effective method:relogin & select the language

获取IP地址及对应城市函数 PHP 不指定

Rinald 本站原创 PHP 2015/09/10 00:21
PHP获取IP地址及城市名函数



html a标签提交表单 不指定

Rinald 本站原创 WEB前端 2015/09/08 15:49
html a标签提交表单

方法一:

方法二:


Nginx拒绝默认主机IP访问 不指定

Rinald 本站原创 Apache/Nginx 2015/09/06 16:38
Nginx拒绝访问默认主机 IP
server
    {
        listen 80 default;
        return 500;
     }
linux查找替换目录下文件中包含的字符串-sed命令

查找文件夹下包含字符串的文件
例:查找/opt/web/blog目录下所有包含”demo.fity.cn”的文件。
grep -lr 'demo.fity.cn' /opt/web/blog/*


vim替换单个文件中所有字符串方法
例:替换当前文件中所有demo为blog
:%s/demo/blog/g
#注释:%表示替换说有行,g表示替换一行中所有匹配点


替换文件夹下包含字符串的文件
sed结合grep,例:将目录/opt/web/blog下所有文件中的demo.fity.cn都替换为fity.cn:
sed -i "s/demo.fity.cn/fity.cn/g" `grep demo.fity.cn -rl /opt/web/blog`
显示动态时间 公历 农历日期的js效果代码
效果图
点击在新窗口中浏览此图片

HTML & Javascript代码
+阅读全文

hook discuz插件钩子 不指定

Rinald 本站原创 Discuz 2015/08/20 11:29
discuz hook——discuz插件的钩子


Bo-Blog验证码不显示 不指定

Rinald 本站原创 Blog相关 2015/08/19 10:06
PHP升级到5.4.X后Bo-Blog验证码不显示

博客VPS上的PHP由之前的5.2.x升级到了5.4.10后,有网友邮件过来反馈博客文章不能评论了 验证码不显示。

鉴于博客程序比较古老,猜测原因可能为验证码获取方法类/程序文件中使用了PHP 5.4废弃的函数。经查看源代码后发现程序中用到session_register函数为PHP5.4已废弃的函数,PHP 5.4后直接使用$_SESSION['session_name']='value' 取代,无需注册,直接赋值。

这里对session_register('code'); 进行注释后验证码显示恢复正常。

QQ互联登录失败彻底解决方法
QQ互联错误:抱歉,当前存在网络问题或服务器繁忙,详细错误:connect_error_code_20003,错误代码:20003 ,请您稍候再试。谢谢。

1、去官网下载最新程序:把source\plugin\qqconnect  把这个文件删除 重新换成最新的。
2、去论坛后台重新开通QQ互联。
3、去应用-插件-QQ互联里-安装-全部覆盖
4、更新数据库
5、正常了。

注意:
1、服务器时间快或慢或时区错误
可以通过后台  工具   云平台诊断查看服务器时间是否正常,同步服务器时间或修改服务器时间
2、云平台和QQ互联域名解析链接错误
可以通过后台  工具   云平台诊断  如果有可诊断正常的IP,可以设置IP后在测试看看是否正常
3、云平台信息的重新同步

扩展:QQ互联登录失败 问题解决
http://www.discuz.net/thread-3664310-1-1.html


PS:如果以上方式都尝试过仍然还是时不时出现该错误且频率很高,那么建议你重新下载官方完整程序代码文件进行覆盖。
第5页 / 共35页 第一页 « 上一页 1 2 3 4 5 6 7 8 9 10 下一页 » 最后页 [ 显示模式: 摘要 | 列表 ]