如何让nginx支持apache和nginx的mod

如何让nginx支持apache的mod_百度知道
如何让nginx支持apache的mod
提问者采纳
要是没有,找找你要用的mod有没有提供nginx的,mod是不通用的两个程序架构不一样
知道智能回答机器人
我是知道站内的人工智能,可高效智能地为您解答问题。很高兴为您服务。
其他类似问题
为您推荐:
nginx的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Apache、NGINX支持中文URL图片、文件名的终极解决方案 - wdcp|linux下免费的服务器/虚拟主机管理系统 -
WDlinux官方论坛 Linux服务器架构,性能优化.免费CDN系统,智能DNS,负载均衡,集群分流等应用
无标题文档
wdCP系统 (,,,,,,)
wdCDN系统 (,,,,,,)
wdOS系统 (,,,,,,)
wdDNS系统 (,,,,,,)
提问三步曲: 提问先看教程/FAQ索引(,,)及搜索,会让你更快解决问题
1 对应版块,提供系统版本位数,wdcp版本,lamp,lnmp,lnamp是哪个环境,rpm或编译安装
2 有哪些错误信息或提示,贴上论坛或截图发论坛
3 做过哪些操作或更改或设置等详细说明
温馨提示:信息不详,很可能会没人理你!论坛有相应教程说明的,也可能没人理!因为,你懂的
Apache、NGINX支持中文URL图片、文件名的终极解决方案
本帖最后由 vzandy 于
15:40 编辑
Apache(32位):
安装环境:CentOS 5.6 + Apache 2.2.15
安装结果:安装后支持“中文图片、文件名”链接直接打开
以下为安装过程:
1、下载安装包
wget /fc5/mod_encoding/mod_encoding-2.2.0-1.i386.tar.gz复制代码
2、直接解压
tar zxvf mod_encoding-2.2.0-1.i386.tar.gz复制代码
& &&&看到2个rpm安装包,进行安装
rpm -ivh iconv_hook-1.0.0-1.i386.rpm
rpm -ivh mod_encoding-2.2.0-1.i386.rpm复制代码
3、用 find / -name httpd.conf 找到apache配置文件httpd.conf,vi编辑加入以下内容
LoadModule encoding_module modules/mod_encoding.so
Header add MS-Author-Via &DAV&
EncodingEngine on
NormalizeUsername on
SetServerEncoding GBK
DefaultClientEncoding UTF-8 GBK GB2312
AddClientEncoding &(Microsoft .* DAV $)& UTF-8 GBK GB2312
AddClientEncoding &Microsoft .* DAV& UTF-8 GBK GB2312
AddClientEncoding &Microsoft-WebDAV*& UTF-8 GBK GB2312复制代码
4、重启apache
service httpd restart复制代码
注:如果安装的是WDCP,重启apache会失败,需要将mod_encoding.so复制到/www/wdlinux/httpd-2.2.22/modules下,
命令:
cp /usr/lib/httpd/modules/mod_encoding.so /www/wdlinux/httpd-2.2.22/modules复制代码
Apache(64位):
————————————————————-
此方案用于解决Apache软件对中文网址、中文图片、文件名的支持问题。
通过测试环境:64位CentOS5.5 + Apache2.2.15
————————————————————-
下载 mod_encoding_64.tar.gz
源码包由吴世昌整理,已经包含了apache2.2所需的补丁。
由的Captain修改补充。
————————————————————-
1、安装gcc组件
yum install gcc -y复制代码
2、下载压缩包
wget /files/mod_encoding_64.tar.gz复制代码
3、将压缩包解压,进行编译
tar zxvf mod_encoding_64.tar.gz
cd mod_encoding_64
patch -p0 & mod_encoding.c-apache2.2-.patch
cd lib
chmod 755 configure
./configure --prefix=/usr
make && make install
ldconfig
cd ../
chmod 755 configure
cp -p /usr/sbin/apxs /usr/bin
./configure --with-apxs=/usr/bin/apxs --with-iconv-hook=/usr/include
make
gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
cp mod_encoding.so /usr/lib/httpd/modules复制代码
注:/usr/lib/httpd/modules为apache的modules目录,可以用
find / -name modules复制代码找出这个目录的路径
注意把/usr/lib/httpd/modules改成你的apache模块存放路径。
4、完成以上操作后,再修改apache的配置文件(可以用find / -name httpd.conf,找出httpd.conf文件的路径),把下面的内容添加到apache的配置文件httpd.conf中。
LoadModule encoding_module modules/mod_encoding.so
EncodingEngine on
NormalizeUsername on
SetServerEncoding GBK
DefaultClientEncoding UTF-8 GBK GB2312
AddClientEncoding &(Microsoft .* DAV $)& UTF-8 GBK GB2312
AddClientEncoding &Microsoft .* DAV& UTF-8 GBK GB2312
AddClientEncoding &Microsoft-WebDAV*& UTF-8 GBK GB2312复制代码
保存,退出5、重启apache
service httpd restart复制代码
6、完成注:如果安装的是WDCP,重启apache会失败,需要将mod_encoding.so复制到/www/wdlinux/httpd-2.2.22/modules下,
命令:
cp /usr/lib/httpd/modules/mod_encoding.so /www/wdlinux/httpd-2.2.22/modules复制代码Nginx:一、确定你的Linux系统是UTF编码,Root登录SSH: env|grep LANG
LANG=en_US.UTF-8复制代码二、NGINX配置文件里默认编码设置为utf-8 server
{
listen 80;
server_ ;
index index.html index.htm index.
root /usr/local/nginx/;
charset utf-8;
}复制代码
三、如果使用putty
windows –& translation –&UTF-8mkdir 中文目录名
echo ‘中文目录名’ & 中文目录名/中国.html四、如果是用securecrt 上传文件,请选择 回话–&外观–UTF-8
如果是FTP软件也将默认编码设置为TUF-8五、如果上传的文件名出现乱码显示
执行 for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done复制代码完毕。以上都是在互联网收集整理。已经测试过完全没有问题, 上次我在论坛发过两次求助中文URL教程,得到的回复寥寥无几,管理员的回答也有点看不懂,就自己变摸索变找教程了
看清提问三步曲及多看教程/FAQ索引(,,),益处多多.
收藏了,呵呵
& &话说我找到了三个这文件肿么办???/www/wdlinux/wdapache/conf/httpd.conf
/www/wdlinux/httpd-2.2.22/conf/original/httpd.conf
/www/wdlinux/httpd-2.2.22/conf/httpd.conf
这个好&&希望老大在下个版本中集成
问一下楼主,我的Apache 64位 下 按照你的做法出错,貌似路径问题
cp -p /usr/sbin/apxs /usr/bin& & 怎么找不到/usr/sbin/apxs 呢? /usr/sbin/下没有apxs啊
在/www/wdlinux/apache/sbin/下
看清提问三步曲及多看教程/FAQ索引(,,),益处多多.
本帖最后由 aleyy 于
00:44 编辑
& &老大,帮忙看下哪里出错了,谢谢!64位Apache 下 第三步 还是出错,
命令代码:
tar zxvf mod_encoding_64.tar.gz
cd mod_encoding_64
patch -p0 & mod_encoding.c-apache2.2-.patch
cd lib
chmod 755 configure
./configure --prefix=/usr
make
make install
ldconfig
cd ../
chmod 755 configure
cp -p /www/wdlinux/apache/sbin/apxs /usr/bin
./configure --with-apxs=/www/wdlinux/apache/sbin/apxs --with-iconv-hook=/usr/include
make
gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
cp mod_encoding.so /www/wdlinux/httpd-2.2.22/modules复制代码
运行后还是提示错误:
[root@ebs-216 mod_encoding_64]# make
/www/wdlinux/apache/sbin/apxs -c&&-I/usr/include&&-liconv_hook -liconv -liconv mod_encoding.c
make: /www/wdlinux/apache/sbin/apxs 命令未找到
make: *** [mod_encoding.so] 错误 127
[root@ebs-216 mod_encoding_64]# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
gcc: mod_encoding.o 没有那个文件或目录
[root@ebs-216 mod_encoding_64]# cp mod_encoding.so /www/wdlinux/httpd-2.2.22/modules
按照老大说的,貌似这个/www/wdlinux/apache/sbin/apxs 命令还是没有找到啊
/www/wdlinux/apache/bin/apxs
看清提问三步曲及多看教程/FAQ索引(,,),益处多多.
& &apxs 进不去啊
然后第3步起,就看不懂了
Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流 &&Linux php 技术交流
我的环境:
当前版本: wdcp_v2.5.11()
操作系统:Linux 2.6.18-308.el5 64位
apache目录:/www/wdlinux/httpd-2.2.24
原贴中有的符号由于被转码,版本升级导致的目录不对,我经过试验已经成功:
使用原贴的错误:
11. cp -p /www/wdlinux/apache/bin/apxs /usr/bin& && && &
15. cp mod_encoding.so /www/wdlinux/httpd-2.2.24/modules& & & & //应该使用apache的modules目录而不是wdlinux的目录
下面是对的方法:& & tar zxvf mod_encoding_64.tar.gz
& & cd mod_encoding_64
& & patch -p0 & mod_encoding.c-apache2.2-.patch
& & cd lib
& & chmod 755 configure
& & ./configure --prefix=/usr
& & make && make install
& & ldconfig
& & cd ../
& & chmod 755 configure
& & cp -p /www/wdlinux/apache/bin/apxs /usr/bin
& & ./configure --with-apxs=/usr/bin/apxs --with-iconv-hook=/usr/include
& & make
& & gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
& & cp mod_encoding.so /www/wdlinux/httpd-2.2.24/modules复制代码解决!
希望版猪整理一个官方的,搞这玩意太花时间,一不注意全部挂掉,干脆直接加到新版本中去。
感谢楼主及各位朋友 !
& &看12楼已解决。
& &看12楼已解决。
& &您好,我是不太懂linux,在学习中。我是centos 6.5 32位环境,你写的我大概明白,不过不知道怎么应用到我的系统里去。可以出个32位版本的脚本么?
[通过 QQ、MSN 分享给朋友]如何让nginx支持apache的mod_百度知道
如何让nginx支持apache的mod
提问者采纳
mod是不通用的两个程序架构不一样,要是没有,找找你要用的mod有没有提供nginx的
来自团队:
其他类似问题
为您推荐:
异黄酮的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何让nginx支持apache的mod_百度知道
如何让nginx支持apache的mod
提问者采纳
vrnishcombined#CustomLog logs/RPAFenable OnRPAFsethostname OnRPAFproxy_ips 127.c#这里是apache 2;usr&#47.x的不是这样(#/httpd.so现在要做的就是让apache加载这个模块编辑/s %b \& } else {
$user_ip=$_SERVER[&conf/mod_rpaf-2,重启apache修改nginx的配置文件编辑/|/nginx/&& %&local/.c&apache&#47,&#47,1;usr/access_%{Referer}i&#92,重启nginx让apache日志记录正确的访客IP在LogFormat中加入 %{X-Forwarded-For}i 例如;& } ;apache/cronolog /usr&#47.0;sbin/ combined(apapche默认)CustomLog &3 proxy_set_header
X-Forwarded-For $proxy_add_x_forwarded_apache&#47.%Y%m%d&quot.c
Apache 1;]==&httpd&#47.1
#ip换成前端nginx服务器ipRPAFheader X-Forwarded-For&lt:1 LogFormat &&var//bin/httpd&#47.3;apxs -i -a -c mod_rpaf.conf在LoadModule区域插入以下文本1 LoadModule rpaf_module
modules&#47.x 的安装)修改apache的配置文件做完前面工作后;&IfModule mod_var/usr/%{User-Agent}i&#92.so mod_rpaf-2;REMOTE_ADDR&access_log combined#CustomLog &%{X-Forwarded-For}i %l %u %t \apache&#47.0;sbin/];保存配置文件;usr/apxs -i -c -n mod_rpaf-2;local&#47.0;&quot.0.log/ combinedphp程序获取正确访客IP &HTTP_X_FORWARDED_FOR&local/];2 proxy_set_header
X-Real-IP $remote_IfModule&local&#47.%Y%m%d &HTTP_X_FORWARDED_FOR&modules目录多出mod_rpaf-2;local/%r\保存配置文件?&bin/|/log/conf/usr/access_log?php if ($_SERVER[&quot.so& &#92.6;) {
$user_ip=$_SERVER[&usr/&quot.0安装mod_rpaftar xvfz mod_rpaf-0.gzcd mod_rpaf-0;rotatelogs&#47.conf加入以下文本1 proxy_set_header
Host $host.x的安装命令.0.6&#47
来自团队:
其他类似问题
为您推荐:
其他1条回答
就只能用nginx的强大代理功能来代理apache了,要是没有两个程序架构不一样,找找你要用的mod有没有提供nginx的,mod是不通用的
nginx的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 nginx与apache的区别 的文章

 

随机推荐