如何安装nginx第三方模块

如何安装nginx第三方模块,第1张

nginx文件非常小但是性能非常的高效,这方面完胜apache,nginx文件小的一个原因之一是nginx自带的功能相对较少,好在nginx允许第三方模块,第三方模块使得nginx越发的强大. 在安装模块方面,nginx显得没有apache安装模块方便,当然也没有php安装扩展方便.在原生的nginx,他不可以动态加载模块,所以当你安装第三方模块的时候需橡耐销要覆盖nginx文件.接下来看看如何安装nginx第三模块吧.

nginx第三方模块安装方法:

./configure --prefix=/你的安装梁游目录 --add-module=/第三方模块目录

1

./configure --prefix=/你的安装目录 --add-module=/第三方模块目录

以安装pagespeed模块实例

在未安装nginx的情况下安装nginx第三方模块

# ./configure --prefix=/usr/local/nginx-1.4.1 \

--with-http_stub_status_module \

--with-http_ssl_module --with-http_realip_module \

--with-http_image_filter_module \

--add-module=../ngx_pagespeed-master --add-module=/第三方模块目录

# make

# make install

# /usr/local/nginx-1.4.1/sbin/nginx

# ./configure --prefix=/usr/local/nginx-1.4.1 \

--with-http_stub_status_module \

--with-http_ssl_module --with-http_realip_module \

--with-http_image_filter_module \

--add-module=../ngx_pagespeed-master --add-module=/第三方模块目录

# make

# make install

# /usr/local/nginx-1.4.1/亩桥sbin/nginx

在已安装nginx情况下安装nginx模块

# ./configure --prefix=/usr/local/nginx-1.4.1 \

--with-http_stub_status_module \

--with-http_ssl_module --with-http_realip_module \

--with-http_image_filter_module \

--add-module=../ngx_pagespeed-master

# make

# /usr/local/nginx-1.4.1/sbin/nginx -s stop

# cp objs/nginx /usr/local/nginx/sbin/nginx

# /usr/local/nginx-1.4.1/sbin/nginx

# ./configure --prefix=/usr/local/nginx-1.4.1 \

--with-http_stub_status_module \

--with-http_ssl_module --with-http_realip_module \

--with-http_image_filter_module \

--add-module=../ngx_pagespeed-master

# make

# /usr/local/nginx-1.4.1/sbin/nginx -s stop

# cp objs/nginx /usr/local/nginx/sbin/nginx

# /usr/local/nginx-1.4.1/sbin/nginx

相比之下仅仅多了一步覆盖nginx文件.

总结,安装nginx安装第三方模块实际上是使用--add-module重新安装一次nginx,不要make install而是直接把编译目

录下objs/nginx文件直接覆盖老的nginx文件.如果你需要安装多个nginx第三方模块,你只需要多指定几个相应的--add-module

即可.

[warning]备注:重新编译的时候,记得一定要把以前编译过的模块一同加到configure参数里面.[/warning]

nginx提供了非常多的nginx第三方模块提供安装,地址http://wiki.nginx.org/3rdPartyModules

1)下载地址:

http://nginx.org

2)启动

解压至c:\nginx,运行nginx.exe(即nginx -c conf\nginx.conf),默认使用80端口,日志见文件夹C:\nginx\logs

3)使用

http://localhost

4)关蠢陆态闭

nginx -s stop 或taskkill /F /IM nginx.exe >nul

5)常用配置

C:\nginx\conf\nginx.conf,使用自己定义的conf文件如my.conf,命令为nginx -c conf\my.conf

常用配置如下:

Nginx.conf代码

http {

server {

#1.侦听80端口

listen 80

location / {

# 2. 默认主页目录在nginx安装目录的html子目录。

root html

index index.html index.htm

# 3. 没有索引页时,罗列文件和子目录

autoindex on

autoindex_exact_size on

autoindex_localtime on

}

# 4.指定虚拟目录

location /tshirt {

alias D:\programs\Apache2\htdocs\tshirt

index index.html index.htm

}

}

# 5.虚拟主机www.emb.info配置悉好

server {

listen 80

server_name www.emb.info

access_log emb.info/logs/access.log

location / {

index index.html

root emb.info/htdocs

}

}

}

http {

server {

#1.侦听80端口

listen 80

location / {

# 2. 默认主页目录在nginx安装目录的html子目录。

root html

index index.html index.htm

# 3. 没有索引页时,罗列文件和子目录

autoindex on

autoindex_exact_size on

autoindex_localtime on

}

# 4.指定虚拟目录

location /tshirt {

alias D:\programs\Apache2\htdocs\带源tshirt

index index.html index.htm

}

}

# 5.虚拟主机www.emb.info配置

server {

listen 80

server_name www.emb.info

access_log emb.info/logs/access.log

location / {

index index.html

root emb.info/htdocs

}

}

}

小提示:

运行nginx -V可以查看该Win32平台编译版支持哪些模块。我这里的结果为:

Log代码

nginx version: nginx/0.7.65

TLS SNI support enabled

configure arguments:

--builddir=objs.msvc8

--crossbuild=win32

--with-debug --prefix=

--conf-path=conf/nginx.conf

--pid-path=logs/nginx.pid

--http-log-path=logs/access.log

--error-log-path=logs/error.log

--sbin-path=nginx.exe

--http-client-body-temp-path=temp/client_body_temp

--http-proxy-temp-path=temp/proxy_temp

--http-fastcgi-temp-path=temp/fastcgi_temp

--with-cc-opt=-DFD_SETSIZE=1024

--with-pcre=objs.msvc8/lib/pcre-7.9

--with-openssl=objs.msvc8/lib/openssl-0.9.8k

--with-openssl-opt=enable-tlsext

--with-zlib=objs.msvc8/lib/zlib-1.2.3

--with-select_module

--with-http_ssl_module

--with-http_realip_module

--with-http_addition_module

--with-http_sub_module

--with-http_dav_module

--with-http_stub_status_module

--with-http_flv_module

--with-http_gzip_static_module

--with-http_random_index_module

--with-http_secure_link_module

--with-mail

--with-mail_ssl_module

--with-ipv6

nginx version: nginx/0.7.65

TLS SNI support enabled

configure arguments:

--builddir=objs.msvc8

--crossbuild=win32

--with-debug --prefix=

--conf-path=conf/nginx.conf

--pid-path=logs/nginx.pid

--http-log-path=logs/access.log

--error-log-path=logs/error.log

--sbin-path=nginx.exe

--http-client-body-temp-path=temp/client_body_temp

--http-proxy-temp-path=temp/proxy_temp

--http-fastcgi-temp-path=temp/fastcgi_temp

--with-cc-opt=-DFD_SETSIZE=1024

--with-pcre=objs.msvc8/lib/pcre-7.9

--with-openssl=objs.msvc8/lib/openssl-0.9.8k

--with-openssl-opt=enable-tlsext

--with-zlib=objs.msvc8/lib/zlib-1.2.3

--with-select_module

--with-http_ssl_module

--with-http_realip_module

--with-http_addition_module

--with-http_sub_module

--with-http_dav_module

--with-http_stub_status_module

--with-http_flv_module

--with-http_gzip_static_module

--with-http_random_index_module

--with-http_secure_link_module

--with-mail

--with-mail_ssl_module

--with-ipv6

显然,最经常用的memcache, rewrite模块都没在其中,因此该win32编译版本仅能供基本开发测试使用,对于产品平台,应该重新编译自己想要的win32版本,或者在linux下使用更方便。

6)查看nginx进程

tasklist /fi "imagename eq nginx.exe",如下显示:

映像名称 PID 会话名 会话# 内存使用

========================= ======== ================ =========== ============

nginx.exe 8944 Console1 5,128 K

nginx.exe 6712 Console1 5,556 K

7)nginx常用命令

nginx -s stop 强制关闭

nginx -s quit 安全关闭

nginx -s reload 改变配置文件的时候,重启nginx工作进程,来时配置文件生效

nginx -s reopen 打开日志文件

8)其它

可以通过配置文件开启多个nginx工作进程,但同时只有其中一个nginx工作进程在工作,其他的阻塞等待。

一个nginx工作进程最多同时可以处理1024个连接。

nginx中需要共享内存的cache或者模块无法在windows下正常使用。

不过,nginx官方正在改进,将来nginx会以服务的方式运行,使用 I/O completion ports代替select方法,使多个工作进程能并发工作。

要使用nginx配合php-cgi使用,需要修改环境变量,否则,php-cgi运行一定次数就推出,需要重启,设置PHP_FCGI_MAX_REQUESTS这个变量为0即可。

以上在win7上通过。

8)nginx以windows服务形式启动

1.下载微软两个工具:

instsrv.exe srvay.exe

2.执行命令:

instsrv Nginxc:/nginx/srvany.exe

3.配置Nginx的运行参数

可以直接将配置导入到注册表

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NGINX/Parameters]

"Application"="C://nginx//nginx.exe"

"AppParameters"=""

"AppDirectory"="C://nginx//"

注意:windows 下的Nginx 内置的module 很多没有,用Nginx -V 命令查看。

9)Nginx下部署mono+asp.net环境

1、从Mono for Windows中提取FastCGI-Mono-Server

2、Nginx nginx.conf 的配置:

worker_processes 1

error_log logs/error-debug.log info

events {

worker_connections 1024

}

http {

include mime.types

default_type text/plain

sendfileon

keepalive_timeout 65

index index.html index.htm

server {

listen 80

server_name yourdomain.com

index index.aspx default.aspx

location / {

root D:\www/yourwebapp

fastcgi_pass 127.0.0.1:8000

fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name

include fastcgi_params

}

}

}

将上面的 FastCGI-Mono-Server 提取出来,所有文件全部注册到 GAC(否则 Web 应用会找不到他们,当然你也可以直接放到 webapp/bin),然后解压到某个文件夹,这里假设为 D:/FastCGI-Mono-Server。

之后我们就可以按下列命令运行 FastCGI:

fastcgi-mono-server2 /socket=tcp:127.0.0.1:8000 /root="D:\www\yourwebapp" /applications=yourdomain.com:/:. /multiplex=True

最后执行运行 Nginx 服务器,我们的 ASP.Net 程序就能脱离 IIS。

Nginx是一塌链陵款开源的高性能Web服务器和反向代理服务器,它支持众多的模块,如gzip压缩、SSL加密、反向代理、负载均衡等,这些模块可以通过配置文件中的指令进行启用。

如果您安装的唤返Nginx没有支持您所需的模块,可能有以下原因:

编译安装时未添加所需模块:在编译Nginx时需要手动指定需要安装的模块,如果未指定,则无法使用这些模块。您可以通过重新编译安装Nginx并指定需要的模块来解决该问题。

所需模块不兼容当前Nginx版本:Nginx版本更新时,一些模块可能会不再兼容,如果您尝试加载这些不兼容的模块,则会导致Nginx启动失败。您可以尝试升级Nginx或使用与当前版本兼容的团戚模块。

所需模块不存在于系统中:Nginx需要依赖一些库文件和其他系统组件才能正常运行,如果所需模块缺失,则可能导致Nginx无法启动。您可以通过安装缺失的组件或库文件来解决该问题。

无论是哪种情况,您都可以通过检查Nginx的错误日志来确定具体的错误信息,并进行相应的解决方案。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12509164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存