nginx简单配置
本文主要围绕下面几个点进行叙述。
1、什么是nginx?
Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
2、什么是反向代理?
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
关于反向代理,网上还有很多资料可以帮助理解。
3、window与Linux上的安装
简单说一下window上的安装,Linux上的后面补充。
首先下载地址:http://nginx.org/en/download.html
我现在的版本是nginx/Windows-1.10.2,找个位置,解压,来简单说明一下解压下的文件目录:
其他的就不介绍,说一下用的主要的俩文件,conf下是一些配置文件,logs中是一些日志文件。
我解压的路径是D:\yh,以为这个路径说明,进入\nginx-1.10.2文件夹下,shift+鼠标右键,进入命令窗口,如图:
下面介绍window下我使用比较多的几个命令。
4、nginx常用的几个命令
进入如上命令窗口后,start nginx,就可以启动nginx,不放心吗?你可以到任务管理中查看一下。
当修改了配置文件后,需要重新reload,命令是 nginx -s reload,这个命令也很常用,当然还有其他命令,如下
nginx -s stop 快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。
nginx -s quit 平稳关闭Nginx,保存相关信息,有安排的结束web服务。
nginx -s reopen 重新打开日志文件。
nginx -c filename 为 Nginx 指定一个配置文件,来代替缺省的。
nginx -t 不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。
nginx -v 显示 nginx 的版本。
nginx -V 显示 nginx 的版本,编译器版本和配置参数。
记得使用命令启动nginx或者重新reload的时候,可参考logs下的几个日志文件。
5、结合项目进行实际配置
其实我配置nginx仅仅是为了完成http的反向代理,这里没有复杂的配置,想使用自己配置的域名进行访问我的项目【抛弃localhost:9090】,至于使用 nginx做负载均衡,等后面配置到了再在博文的补充完善。
conf/nginx.conf配置如下:
#运行的用户 #user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志 error_log D:/yh/nginx-1.10.2/logs/error.log; error_log D:/yh/nginx-1.10.2/logs/notice.log notice; error_log D:/yh/nginx-1.10.2/logs/info.log info; #PID文件,记录当前启动的nginx的进程ID pid D:/yh/nginx-1.10.2/logs/nginx.pid; #工作模式及连接数上限 events { worker_connections 1024; #单个后台worker process进程的最大并发链接数 } #设定http服务器,利用它的反向代理功能提供负载均衡支持 http { #设定mime类型(邮件支持类型),类型由mime.types文件定义 include D:/yh/nginx-1.10.2/conf/mime.types; default_type application/octet-stream; #设定日志 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log D:/yh/nginx-1.10.2/logs/access.log main; #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用, #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime. sendfile on; #tcp_nopush on; #连接超时时间 #keepalive_timeout 0; keepalive_timeout 120; #gzip压缩开关 #gzip on; #设定实际的服务器列表 upstream server1{ server 127.0.0.1:9090; } #HTTP服务器 server { #监听80端口,80端口是知名端口号,用于HTTP协议 listen 80; #定义自己的访问url,hosts中有配置 server_name www.heyLuer.com; #首页 index index.html # 项目路径 root D:\yh\workspace\xx\src\main\webapp; # 编码格式 charset utf-8; #代理配置参数 proxy_connect_timeout 180; proxy_send_timeout 180; proxy_read_timeout 180; proxy_set_header Host $host; proxy_set_header X-Forwarder-For $remote_addr; #access_log logs/host.access.log main; location / { proxy_pass http://server1; } #错误处理页面(可选择性配置) #error_page 404 /404.html; #error_page 500 502 503 504 /50x.html; #location = /50x.html { # root html; #} } }
配置如上,写的很清晰,tomcat启动项目,使用域名访问,正常访问项目,配置ok!
由于能力有限,以上内容如有错误,欢迎大家的指正。
后续补充其他内容......