初始nginx

本文涉及到nignx的安装、nginx的配置说明、nginx的负载均衡、nginx的反向代理和nginx的ssl方反向代理以及nginx location路径匹配优先级等问题。

Nginx的安装与启动

1)pcre安装,支持正则表达式 

http://www.pcre.org/
# tar zxvf pcre-7.9.tar.gz
# cd pcre-7.9
#./configure
# make && make install

2)openssl安装(可选),支持安全协议的站点 

http://www.openssl.org/
# tar zxvf openssl-0.9.8l.tar.gz
# cd openssl-0.9.8l
#./config
# make && make install

3)nginx的安装  

# tar zxvf nginx-0.7.64.tar.gz
# cd nginx-0.7.64

4)启动

# cd usr/local/nginx/sbin
# /nginx

5)重启

./nginx -s reload

Nginx.conf 基本配置

#user  nobody;
worker_processes  1; #nginx进程数,建议设置为等于CPU总核心数。

events {
worker_connections  1024; #单个进程最大连接数(最大连接数=连接数*进程数)
}

http {
include       mime.types;#文件扩展名与文件类型映射表
default_type  application/octet-stream;#默认文件类型
sendfile        on;#sendfile on; #开启高效文件传输模式
keepalive_timeout  60;#长连接超时时间,单位是秒

#gzip模块设置(略)

upstream blog.ha97.com {
#upstream的负载均衡,weight是权重,可以根据机器配置定义权重
#weigth参数表示权值,权值越高被分配到的几率越大。
server 192.168.80.121:80 weight=3;
server 192.168.80.122:80 weight=2;
server 192.168.80.123:80 weight=3;
}

server {
listen       80;
server_name  localhost;

location / {
proxy_pass   http://192.168.24.152:8080/test1;
proxy_set_header  X-Real-IP  $remote_addr;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /test {
proxy_pass    http://192.168.24.152:8080/abc;
proxy_set_header  X-Real-IP  $remote_addr;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

server{
listen    8082;#监听端口
server_name   localhost;

location / {
proxy_pass   http://192.168.24.152:8080/test1;
proxy_set_header  X-Real-IP  $remote_addr;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}

Nginx.conf  server配置说明

1) server配置说明

server {
listen       80; #监听端口
server_name  localhost; #域名可以有多个,用空格隔开
location / {
proxy_pass   http://192.168.24.152:8080/test1;
proxy_set_header  X-Real-IP  $remote_addr;
#把真实的IP发送给 转发的web服务器,否则转发的IP是nginx这台的IP
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
#意思是增加一个$proxy_add_x_forwarded_for到X-Forwarded-For里去
#例X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3.3.3.3 代表 请求由1.1.1.1发出,
#经过三层代理,#第一层是2.2.2.2,第二层是3.3.3.3,而本次请求的来源
#IP4.4.4.4是第三层代理
}
}

2)多个server配置,监听不同端口

server { #server1
listen       80;
server_name  localhost;

location / {
proxy_pass   http://192.168.24.152:8080/test1;
proxy_set_header  X-Real-IP  $remote_addr;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

server{ #server2
listen    8082;#监听端口
server_name   localhost;

location / {
proxy_pass   http://192.168.24.152:8080/test1;
proxy_set_header  X-Real-IP  $remote_addr;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

server配置路径匹配问题

Nginx location中可能涉及的匹配规则有:

  • = 精确匹配
  • ^~ 普通字符匹配,区分大小写
  • ~ 正则匹配,区分大小写
  • /xxx/yyy.zzz 最长匹配
  • /

其优先级顺序如下:

  • =优先级大于^~
  • ^~优先级大于~
  • ~ 对比 /xxx/yyy.zzz
  • ^~优先级大于/xxx/yyy.zzz
  • ~优先级大于/
  • /xxx/yyy.zzz优先级大于/
  • /xxx/yyy/ 优先级大于 /xxx/

综上所述location规则优先级顺序为 = > ^~ > ~ > /xxx/yyy.zzz > / ,路径匹配的优先级与location在文档中的位置先后无关。

Nginx实现ssl反向代理

server {
listen       443;    #监听443端口
server_name  localhost;

ssl                on;   #启用ssl加密
ssl_certificate      /ect/cert/free4lab.crt;    #服务器证书crt文件
ssl_certificate_key  /ect/cert/free4lab.key;   #服务器私钥key文件

location / {
proxy_pass   http://192.168.24.152:8080/test1;
proxy_set_header  X-Real-IP  $remote_addr;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/102472

(1)
单爆手单爆手
上一篇 2018-07-08 21:11
下一篇 2018-07-08 21:22

相关推荐

  • 计算机组成及其功能

    计算机组成

    2018-05-09
  • d1-d2 命令总结

    1.bc 计算器 [root@centos7 ~]# bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For det…

    Linux笔记 2018-07-19
  • 第二周总结

    反向单引号 ` `:执行能力强,可以执行命令 [等价于$()]单引号 ‘ ’:只显示字符双引号 “ ”:识别变量,不识别命令花括号{ }: 里面内容互相组合 打印重复字符串的简化形式echo file{1,3,5} 结果为:file1 file3 file5rm -f file{1,3,5} 删除file1 file3 file5echo file{1..1…

    Linux笔记 2018-07-29
  • linux ACL访问控制列表

    1.ACL介绍 Linux 下用户对文件的操作权限有 r-读, w-写, x-可执行三种,而对linux 下的文件而言,用户身份分为:所有者, 所属组, 其它人, 且文件的所有者,所属组都只能是一个,所以在对文件分配用户的使用权限时,只能对这三种身份进行分配rwx 权限.Linux 主要作为服务器系统使用,用户众多.所以在实际使用场景中,这三种身份并不能很好…

    Linux笔记 2018-04-08
  • 新加磁盘的实现方法

    生产中硬盘会不断的出现故障此时我们就需要更换新的硬盘,那么拿到一个新的硬盘之后我们该如何来使用呢?一个新的硬盘首先我们要把旧硬盘上的东西进行备份然后用新的硬盘替代。新硬盘使用之前我们必须要先对新硬盘进行 分区—>创建文件系统—>挂载—>设置开机自启 这几个步骤,那么接下来我们一个一个来说明每个步骤的实现过…

    Linux笔记 2018-04-30
  • 三、(1)常用文本查看及处理命令

    cat、cut、uniq、sort、grep、wc命令的使用方法

    2018-01-15