nginx配置详解
配置文件整体结构
vi设计http://www.maiqicn.com 办公资源网站大全https://www.wode007.com
# 全局基础配置 user 用户名 [用户组]; #建议同cpu数一样,如果number=2,启动nginx后,后台会看到2个nginx进程 worker_processes number | auto; # 日志输出级别有debug,info,notice,warn,error,erit,其中,debug输出日志最为详细,而crit输出日志最少 error_log logs/error.log notice; #nginx进程是作为系统守护进程在进行,需要在某个文件中保存当前运行程序的主进程号 pid nginx.pid; #指定进程可以打开的最多文件描述数目,理论值应该是最多打开文件数(ulimit -n )与nginx进程数相除, #但是Nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致 worker_rlimit__nofile 65535; #events 事件指令是设定Nginx的工作模式及连接数上限 events { #use是事件模块指令,用来指定Nginx的工作模式,工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll 。 #其中select 和poll 都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平台上,而kqueue用在BSD系统中。 #对于Linux系统,epoll工作模式是首选 use epoll; #work_connections用于定义Nginx每个进程的最大连接数,默认是1024 worker_connections 65535; } http { #该指令主要用于将其他的Nginx配置或第三方模块的配置引用到当前的主配文件中,减少主配置文件的复杂度 include file; #属于HTTP核心模块指令,这里设定默认类型为二进制流。也就是当文件类型未定义时使用这种方式 default_type application/octet-stream; #用于指定Nginx日志的输出日志 log_format main ......; #这个指令中的参数on是表示开启高效文件传输模式,默认是关闭状态(off),将tcp_nopush和tcp_nodelay两个指令设置为on用于防止网络阻塞 sendfile on; #连接超时时间。设置客户端连接保持活动的超时时间。在超过这个时间之后,服务器会关闭该连接 keepalive_timeout number; #开启压缩 gzip on; gzip_types text/html text/plain text/css text/JavaScript application/json application/JavaScript application/x-javascript application/xml; #配置代理服务,在http 模块下,通过server端调用 upstream back-server { server 192.168.1.10:8080; server 192.168.1.11:8080; server 192.168.1.12:8080; } upstream front-server { server 127.0.0.1:9090; } #虚拟主机的配置 server { listen 80; #用来指定IP地址或域名,多个域名之间用空格分开 server_name zhoulp.com; rewrite https://${server_name} } server { listen 443; server_name zhoulp.com; ssl_certificate com.zhoulp.crt; ssl_certificate_key com.zhoulp.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #用于设定访问的默认首页地址 index home.html; #用于指定虚拟主机的网页根目录,这个目录可以是相对路径,也可以是绝对路径 root /home/zhoulp/static/html; #设置网页的默认编码格式 charset utf8; #指定虚拟主机的访问日志存放路径,最后的main 用于指定访问日志的输出格式 access_log logs/access-$year-$month-$day.log main; error_log logs/error-$year-$month-$day.log error; #location支持正则表达式匹配,也支持条件判断匹配;可以实现对动、静态网页进行过滤处理、还可以实现反向代理、动态解析或者负载均衡 location ^~/back/ { proxy_pass http://back-server/; proxy_send_timeout 300; proxy_read_timeout 300; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location ^~/front/ { proxy_pass http://front-server/; } error_page 404 403 400 /404.html; location ^~/404.html { root /home/zhoulp/static/html; } error_page 500 502 503 504 /500.html; location ^~/500.html { root /home/zhoulp/static/html; } } }