实用的Nginx配置笔记

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

网上关于Nginx文章介绍非常多,但是老感觉说的要不是太多太广泛,要不就是瞄准一个点说的太细,并没有针对一个web项目,列出其最基本,最常用的配置。所以我想总结一篇,不敢说100%,就是大部分的项目其实有下面介绍的配置就完全能跑起来,够用。

Nginx应用场景

  • http服务器:

    Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

  • 反向代理:

     反向代理是针对服务器来说的,一般来说是 客户端直接访问服务器,反向代理是客户端->Nginx->后端接口

  • 负载均衡:

    当网站并发量大时,一台服务器已经无法承受,此时需要部署多个服务器来分担压力,这时候可以通过Nginx配置来将请求,通过一定分发规则,分发到不同的服务器来达到负载的作用。

    Nginx可以通过反向代理来实现负载均衡。

  • 虚拟主机:

    有的网站访问量大,需要负载均衡。然而并不是所有网站都如此出色,有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。

    例如将www.abc.com和www.bca.com两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。

  • 解决跨域问题

    项目开发过程中,有时候前端需要同时访问两个服务的后端接口,两个服务的端口肯定不一样,这时候通过Nginx配置转发就可以实现跨域访问。

静态界面配置

server {  listen       10117;  access_log  logs/host.10117.log  ;  charset utf-8;  location / {      charset utf-8;      root D:\hbidding\hst-meet\web\meet; #静态界面路径      index index.html; #默认首页地址    }}

后端服务器转发配置​​​​​​​

server {    listen       9006;  #监听端口    access_log  logs/host.9006.log ; #日志    server_name www.baidu.com; #可以不写,不写默认当前服务器    # 表示以 purchaser 开头的地址    location /purchaser {            proxy_pass http://127.0.0.1:7132;            proxy_set_header   Host    $http_host ;            proxy_set_header   X-Real-IP   $remote_addr;            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;        }    # /表示所有地址    location / {                    proxy_pass http://127.0.0.1:8006;            proxy_set_header   Host    $http_host ;            proxy_set_header   X-Real-IP   $remote_addr;            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;        }        error_page   500 502 503 504  /50x.html;
}

设置

指令

说明

=

精准匹配,优先级最高

^~

表示uri以某常规字符串开头

~

区分大小写的正则匹配

~*

不区分大小写的正则匹配

! ~

区分大小写不匹配正则

! ~*

不区分大小写不匹配的正则

/

通用匹配,匹配任何请求

优先级:

表格依次向下,也就是“=”最高 “/” 最低

websocket配置​​​​​​​

location / {        ...        #其他配置不变,下面添加这两列配置。        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection "upgrade";}

负载均衡​​​​​​​

upstream mkj_pools {  server 192.168.1.72:8880   weight=1;  server 192.168.1.73:9990   weight=2;  server 192.168.1.74:8989   weight=3;  #weigth参数表示权值,权值越高被分配到的几率越大}server {   listen 80;  server_name www.mkj.com;  location / {       proxy_pass http://mkj_pools;   }}

其他配置​​​​​​​

proxy_connect_timeout 60s; #nginx和后端服务器连接超时时间proxy_read_timeout 300s; # 连接成功后,后端服务器响应时间

Host X-Real-IP  X-Forwarded-For具体含义请看 如何正确获取http客户端IP地址

Nginx常用命令​​​​​​​

//常用命令,使用命令需要先到nginx安装目录下重启启动Nginx:nginx.exe -s reload预编译:nginx.exe -t停止所有服务:taskkill /f /im nginx.exe  //有模块新增时,需要先停止后启动才能生效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值