windows下nginx安装配置后怎么使用

windows下nginx安装配置后怎么使用,第1张

1)查看nginx进程

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

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

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

nginx.exe 8944 Console1 5,128 K

nginx.exe 6712 Console1 5,556 K

2)nginx常用命令

nginx -s stop 强制关闭

nginx -s quit 安全关闭

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

nginx -s reopen 打开日志文件

3)其它

可以通过配置文件开启多个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安装、虚拟机的安装有了解,并未对这些内容作详细介绍。

一台pc

pc安装的 *** 作系统为win7,使用vmware虚拟两台linux,pc 连接到了一台交换机,IP为: 192.168.1.100

nginx版本为1.05,其中win7为负载均衡代理机器,虚拟的linux为web服务器

vmware配置时,在网络连接一项选: bridged,两台虚拟机的ip分别为: 192.168.1.102,192.168.1.103

二、配置文件

1 win7用于负载均衡的nginx的配置文件如下(nginx.conf),修改完后可再控制台输入: nginx -t,来测试修改的配置文件是否正确。

upstream test {

server 192.168.1.102

server 192.168.1.103

}

server {

listen 80

server_name localhost

charset gbk

#access_log logs/host.access.log main

location / {

proxy_next_upstream error timeout invalid_header http_500

http_502 http_503 http_504 http_404

proxy_connect_timeout 10s

proxy_read_timeout 2s

#proxy_send_timeout 10s

proxy_pass http://test

}

2 linux上作为web服务器的nginx的配置文件可为默认,没有变化

3 修改作为web服务器的nginx,html目录下的index.html,在Welcome to nginx!后面加上描述: i am server x!,这一步是为了区分服务是否生效。

三、运行服务

1.win7:直接在控制台输入:nginx即可

2.linux:nginx -c ./conf/nginx.conf

如果运行成功,这时在你win7的浏览器中输入http://192.168.1.100 ,这时会有i am server 2显示,按f5刷新,server名字每次都会变化!

四、结论

本文只是在一台机器上简单对轮询试负载均衡做了简单的测试。

后续的实验,将全部在此机器上做测试了

在win7下用的是IIS做web服务器,但近来因项目需求的原因,需要在服务器遇到404错误的时候自动做转向(不是在客户端的跳转,而是在服务器收到客户端请求去某目录下读取文件返回时,如果发现目录或目录下文件不存在,自动转到另一个服务器去取),用IIS发现很难做到这点,于是决定搭建nginx的开发环境,通过配置实现这一点。 首先,google nginx和php,分别到他们的官网把最新版本的下载回来,我当时下的PHP是5.4.3的版本,nginx是1.5.2,我把他们都放在D盘下一个叫webserver的文件夹里,然后开始做配置了。 nginx的启动很简单,进入它的目录,然后双击nginx.exe,如果没有端口冲突等问题的话,直接在浏览器输入localhost就可以访问welcome to nginx字样的网页了,这是默认的欢迎页面,放在自带的默认网页文件目录html下的。难道就这么简单吗?当然不是的。 这时如果你在html目录下建一个php文件,写上一句测试php环境的最经典的,然后在浏览器输入这个php文件的路径进行访问,你会发现nginx根本不懂怎样去解析php代码,这是因为nginx与PHP还没有配合起来。按道理来说,当遇到php文件的时候,nginx应该把它交给php的fast-cgi来处理,然后把处理完的结果返回给客户端(浏览器)的。 怎样告诉nginx当遇到php文件时交给谁处理呢?打开nginx1.5.2的文件夹,找到conf目录,编辑目录下的nginx.conf文件,我的编辑结果如下所示,具体配置过程中需要注意什么请看注释: server { listen 80 server_name localhost charset utf-8 location / { root E:/work/jentian/client//html文件目录,由于我们项目的客户端代码与服务端服务是严格分开的,所以这里的root跟php的root不同 index index.html index.htm } location ~ .php { root E:/work/jentian/server//php文件目录 fastcgi_param SCRIPT_FILENAME E:/work/jentian/server$fastcgi_script_name//注意,$fastcgi_script_name前面的路径必须与root是一致的 fastcgi_index index.php fastcgi_pass 127.0.0.1:9000 include fastcgi_params } } nginx的配置也就这么多了,很简单吧,但这时候当你刷新php页面的时候,会发现nginx现在还是没有办法解析php文件,原因在于php的fast-cgi还没有启动,如果打开一个普通的命令提示符窗口,然后输入命令启动fast-cgi时,启动后这个窗口是不能关闭的,否则fast-cgi的进程也会终止,不能继续解析php文件了,后来查了一下,原来windows是有一个运行隐形控制台的方法的,用这个方法启动fast-cgi,就不怕关闭控制台后fast-cgi也跟着结束的问题的。最后,写了一个批处理文件来启动fast-cgi和nginx,这能就能一键启动nginx+php的环境了。下面是这个批处理文件的内容: @echo off set PHP_FCGI_MAX_REQUESTS = 1000 echo Starting PHP FastCGI... rem 下面这里的分别替换成你的php-cgi.exe和php.ini的路径 ,后面的-b,-c等参数必须保留且注意前后空格 RunHiddenConsole D:/webServer/php-5.4.3/php-cgi.exe -b 127.0.0.1:9000 -c D:/webServer/php-5.4.3/php.ini //这里 echo Starting nginx... rem 注意替换成你的nginx目录 D:/webServer/nginx-1.5.2/nginx.exe -p D:/webServer/nginx-1.5.2/ cd D:/webServer/nginx-1.5.2/ pause 把这个批处理文件保存到好,双击,就能启动你的nginx+php环境了,这时再刷新一下你的phpinfo页面,一切正常了。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存