Nginx常用场景


简介

Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。

应用场景

负载均衡

轮询

upstream test {
  server 10.200.100.3:8080;
  server 10.200.100.4:8081;
}
upstream admin {
  server 10.200.100.3:9080;
  server 10.200.100.4:9081;
}
server {
  listen       81;                                                         
  server_name  localhost;                                               
#映射地址
  location / {
    ssi on;
    ssi_silent_errors on;
    proxy_read_timeout 300;
    proxy_set_header Host $host:$server_port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    # proxy_pass内容与upstream对应
    proxy_pass http://test;
    proxy_redirect default;

  }
  #映射地址指定多个,根据访问路径匹配不同地址`location`
  location /admin {
    ssi on;
    ssi_silent_errors on;
    proxy_read_timeout 300;
    proxy_set_header Host $host:$server_port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    # proxy_pass内容与upstream对应
    proxy_pass http://admin;
    proxy_redirect default;

  }
}

设置权重

通过weight指定访问服务器权重,权重越高代表服务器被访问的几率的越大。

upstream test {
  server localhost:8080 weight=9;
  server localhost:8081 weight=1;
}

iphash

iphash的每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。(分布式session同步可采用redis解决)

upstream test {
  ip_hash;
  server localhost:8080;
  server localhost:8081;
}

反正代理

反向代理隐藏了真实的服务端,例如访问http://www.baidu.com,可能有成千上万的程序为我们服务。代理对象为服务端。

server {  
  listen       80;                                                         
  server_name  localhost;                                               
  
  location / {
    proxy_pass http://10.200.100.2:8080;
    proxy_set_header Host $host:$server_port;
  }
}

正向代理: 它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求.代理对象为客户端。

HTTP服务器

Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器。

server {
  listen       80;                                                         
  server_name  localhost;                                               

  location / {
  #指定静态文件位置
    root   /opt/dist;
    #访问首页
    index  index.html;
  }
}

常用操作

解压安装常用

查看nginx安装位置:
whereis nginx

启动:
$ /usr/local/nginx/sbin/nginx

热重启:
$ /usr/local/nginx/sbin/nginx –s reload

停止:
$ /usr/local/nginx/sbin/nginx –s stop

测试配置文件是否正常:
$ /usr/local/nginx/sbin/nginx –t

强制关闭:
$ pkill nginx

yum安装常用

systemctl enable nginx   # 设置开机启动 Nginx
systemctl disable nginx  # 关闭开机启动 Nginx
systemctl start nginx    # 启动 Nginx
systemctl stop nginx     # 停止 Nginx
systemctl restart nginx  # 重启 Nginx
systemctl reload nginx   # 重新加载 Nginx
systemctl status nginx   # 查看 Nginx 运行状态

文章作者: 苏叶新城
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 苏叶新城 !
  目录