Nginx的使用经验小结

 更新时间:2017年10月25日 08:36:47   作者:reallyli  
相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额。今天我们就简单介绍下本人在使用nginx的过程中的一些小小的经验

Nginx

Nginx简单介绍

一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器

Nginx命令参数

nginx -t 测试配置是否正确
nginx -s reload 加载最新配置
nginx -s stop 立即停止
nginx -s quit 优雅停止
nginx -s reopen 重新打开日志
kill -USR2 cat /usr/local/nginx/logs/nginx.pid 快速重启

Nginx全局段配置

worker_processes 1;工作进程为1个 CPU 数量 * 核数
events 区段 网卡请求 80 443 Nginx 触发事件

Nginx配置虚拟主机

listen
server_name
location

Nginx日志管理

* 系统默认日志格式:log_format main '$remote_addr $request_length $body_bytes_sent $request_time[s] - - [$time_local] ' '"$request" $status $http_referer "-" "$http_user_agent" $server_name $server_addr $http_x_forwarded_for $http_x_real_ip';
* 自定义日志格式:log_format simple '$remote_addr -- $request'
* 系统默认日志释义:远程IP-远程用户/用户时间 请求方法 请求body长度长度 referer 来源信息 http-user-agent 用户代理/蜘蛛 被转发请求的原始ip http_x_forwarded_for 在经过代理是 代理把你的本来的IP加在此头信息中,传输你的原始IP

Nginx-Laravel5 项目搭建

window上传本地项目使用 secureCRT-sftp put get 命令上传 connect sftp session, 远程:cd 本地:lcd,lpwd, put *.zip
Laravel5返回500权限修改:1.chmod 777 -R storage 2.chmod 777 -R bootstrap/cache/
配置env : vi .env 修改数据库配置相关参数
执行 php artisan migrate 创建数据表

Nginx 支持pathinfo

# 典型配置
location ~ \.php$ {
  root      html;
  fastcgi_pass  127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
  include    fastcgi_params;
}

# 修改第1,6行,支持pathinfo

location ~ \.php(.*)$ { # 正则匹配.php后的pathinfo部分
  root html;
  fastcgi_pass  127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
  fastcgi_param PATH_INFO $1; # 把pathinfo部分赋给PATH_INFO变量
  include    fastcgi_params;
}

Nginx 支持URL重写

1.如果 不是资源文件就重写

if (!-e $request_filename) {
  rewrite (.*)$ /index.php/$1;
}

2.try_files

try_files $uri $uri/ /index.php?$args;

Nginx 反向代理与动静分离

用Nginx做反向代理用proxy_pass,以反向代理为例,nginx不自己处理图片的相关请求,而是把图片的请求转发给Apache处理。

location ~\.(jpg|jpeg|png|gif)${
   proxy_pass HTTP://IP:port;
 }

反向代理导致了后端服务器接到客户端IP为前端服务器的IP而不是真正的IP解决方案

location ~ \.(jpg|jpeg|png|gif) {
   proxy_set_header X-Forwarded-For $remote_addr;
   proxy_pass IP:port;
 }


Nginx 集群和负载均衡

Upstream{} 模块 把多台服务器加入到一个组 然后 memcache pass, fastcgi_pass, proxy_pass => upstream 组

配置Upstream

 upstream web{
   server IP:8080 weight=1 max_fails=2 fail_timeout=30s;
   server IP2:80 weight=1 max_fails=2 fail_timeout=30s;
 } 
 

  下游调用

 location ~ \.(jpg|png|gif|jpeg) {
 proxy_set_header X-Forwarded-For $remote_addr;
     proxy_pass http://web;
 }

负载均衡常见的策略释义

基于cookie值区别做负载均衡(Nginx sticky 们模块)
  基于URI利用一致性哈希算法做均衡(NginxHttpUPstreamConsistentHash 模块)
  基于IP做负载均衡

相关文章

  • Nginx+SSL+Node.js运行环境配置教程

    Nginx+SSL+Node.js运行环境配置教程

    这篇文章主要介绍了Nginx+SSL+Node.js运行环境配置教程,本文用反向代理的方式代理基于Node.js的Web应用,需要的朋友可以参考下
    2014-09-09
  • nginx worker进程循环的实现

    nginx worker进程循环的实现

    这篇文章主要介绍了nginx worker进程循环的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 详解nginx 301跳转到带www域名方法

    详解nginx 301跳转到带www域名方法

    这篇文章主要介绍了详解nginx 301跳转到带www域名方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Nginx服务器下配置个性二级域名及多个域名的实例讲解

    Nginx服务器下配置个性二级域名及多个域名的实例讲解

    这篇文章主要介绍了Nginx服务器下配置个性二级域名及多个域名的实例讲解,注意一下rewrite的写法规则,需要的朋友可以参考下
    2016-01-01
  • 让Nginx支持shtml格式的配置方法

    让Nginx支持shtml格式的配置方法

    这篇文章主要介绍了让Nginx支持shtml格式的配置方法,shtml格式可以包含一些服务端指令,同PHP中的include功能类似,需要的朋友可以参考下
    2014-08-08
  • 在Nginx中增加对OAuth协议的支持的教程

    在Nginx中增加对OAuth协议的支持的教程

    这篇文章主要介绍了在Nginx中增加对OAuth协议的支持的教程,OAuth协议如今广泛用于社交网络的API中,需要的朋友可以参考下
    2015-06-06
  • Nginx配置https原理及实现过程详解

    Nginx配置https原理及实现过程详解

    这篇文章主要介绍了Nginx配置https原理及实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Nginx-rtmp实现直播媒体实时流效果

    Nginx-rtmp实现直播媒体实时流效果

    这篇文章主要介绍了Nginx-rtmp实现直播媒体实时流效果,文中给出了总体设计图,为了整合平台,会自建RTMP流媒体服务器和使用云厂商SaaS的RTMP流媒体服务,需要的朋友可以参考下
    2018-08-08
  • Node.js站点使用Nginx作反向代理时配置GZip压缩的教程

    Node.js站点使用Nginx作反向代理时配置GZip压缩的教程

    这篇文章主要介绍了Node.js站点使用Nginx作反向代理时配置GZip压缩的教程,文中演示了Node使用Express框架时的HTTP传输压缩配置,需要的朋友可以参考下
    2016-04-04
  • nginx下的代理服务器80端口被封的解决方案

    nginx下的代理服务器80端口被封的解决方案

    这篇文章主要是讲:通过nginx下面的代理服务器,实现访问A地址的时候自动代理到B地址的某个端口,主要用于标题说的某个端口被日.其他东西都正常的情况下,这玩意早上我刚刚测试过,这博客就是个很好的例子.
    2010-06-06

最新评论