希望下面的东西对你有帮助,我们一起学习,一起加油
1.首先去官网下载:http://nginx.org/en/download.html
2.下载后解压到指定文件夹,如图:
3.启动negix有如下种:
(1).双击nginx应用程序即可,闪烁两下,即可
(2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe 或者 start nginx ,回车即可
4.检查nginx是否安装成功:
(1):直接在浏览器地址栏输入网址 http://localhost:80,回车,出现以下页面说明启动成功:
(2):也可以在cmd命令窗口输入命令 tasklist /fi "imagename eq nginx.exe" ,出现如下结果说明启动成功:
4.nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可:
检查80端口是否被占用的命令是: netstat -ano | findstr 0.0.0.0:80 或 netstat -ano | findstr "80"
当我们修改了nginx的配置文件nginx.conf 时,不需要关闭nginx后重新启动nginx,只需要在nginx目录下执行命令:
nginx -s reload 即可让改动生效:
5.关闭nginx,如果使用cmd命令窗口启动nginx,关闭cmd窗口是不能结束nginx进程的,可使用两种方法关闭nginx
(1)输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)
(2)使用taskkill taskkill /f /t /im nginx.exe
注意:
nginx: [error] CreateFile() "E:\nginx\nginx-1.9.3/logs/nginx.pid" failed
nginx: [error] Open() "E:\nginx\nginx-1.9.3/logs/nginx.pid" failed
解决方法:
使用命令创建/logs/nginx.pid文件:
nginx -c conf/nginx.conf
6.如图:这是我以项目实践的配置:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream serverProxy {
server 127.0.0.1:8084;
}
server {
listen 8090;
server_name netBank;
location /pweb {
alias D:\idea\project\NetBank\PerVx\static;
index index.php index.html index.htm;
}
location /pweb-web/ {
proxy_pass http://serverProxy/pweb/;
proxy_cookie_path /pweb /pweb-web;
proxy_redirect off;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
例如:我的login页面在D:\idea\project\NetBank\PerVx\static这个路径下面,当我用http://127.0.0.1:8090/pweb/login.html就能访问我的登陆页面了,
当我登陆的时候,http://127.0.0.1:8090/pweb-web/login.do,nginx进行反向代理,它会去走 http://serverProxy/pweb/,然后服务器我们配置的是127.0.0.1:8084,那么最终它会是 http://127.0.0.1:8084/pweb/去访问我们的后台服务器
worker_processes : 这是表示进程数
worker_connections 1024:这是表示最大连接数1024
keepalive_timeout : 这是表示请求完成后要保持连接多久
sndfile: sendfile是个比 read 和 write 更高性能的系统接口,SENDFILE 配置项能大大提高 Nginx 的性能。 但是当 Nginx 是作为一个反向代理来使用的时候,SENDFILE 则没什么用了
listen:表示当前的代理服务器监听的端口,默认的是监听80端口,这里我配置了8090。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。
server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,netBank是我的项目名称。
location:表示匹配的路径,这时配置了“/”表示所有请求都被匹配到这里
alias:里面配置了alias这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件即可,这里也可以用root代替。
alias指定的目录是准确的,root是指定目录的上级目录,并且该上级目录要含有location指定名称的同名目录。
index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。
include mime.types;
default_type application/octet-stream;
(mime.types)这个配置是告诉浏览器这些文件数据是什么,(application/octet-stream)这个类型会让浏览器认为响应是普通的文件流
upstream:这是实现负载均衡,就是实现nginx反向代理的配置
upstream依照轮询(默认)方式进行负载,每一个请求按时间顺序逐一分配到不同的后端服务器。假设后端服务器down掉。能自己主动剔除。尽管这样的方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。
除了负载均衡,还有weight(权重):
upstream serverProxy {
server 127.0.0.1:8084 weight=5;
server 39.106.92.181:19001 weight=10;
}
这说明,当反向代理时,会优先选择 server 39.106.92.181:19001这个服务器
ip_hash(訪问ip):每一个请求按訪问ip的hash结果分配。这样每一个訪客固定訪问一个后端服务器,能够解决session的问题
upstream serverProxy {
ip_hash;
server 127.0.0.1:8084;
server 39.106.92.181:19001;
}
fair(第三方)按后端服务器的响应时间来分配请求。响应时间短的优先分配
upstream serverProxy {
server 127.0.0.1:8084;
server 39.106.92.181:19001;
fair;
}