初始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

相关推荐

  • 正则表达式浅解

    正则表达式:由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能。 扩展正则表达式元字符: 字符匹配:. 匹配任意单个字符[] 匹配指定范围内的任意单个字符[^] 匹配指定范围外的任意单个字符[:alnum:] 字母和数字[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z[:lower:] 小…

    2018-04-07
  • 文本处理三剑客:sed简介

    文本处理三剑客:sed简介 sed是一种流编辑器,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。 处理过程 sed命令将当前处理的行读入模式空间(pattern space)进行处理,sed在该行上执…

    Linux笔记 2018-04-03
  • d

    ““ function fun(){ echo “这是一句非常牛逼的代码”;}fun(); ““

    Linux笔记 2018-07-09
  • Linux用户与组管理

    linux用户及组管理

    Linux笔记 2018-05-24
  • 第一周作业

    1、描述计算机的组成及其功能。 计算机由运算器,控制器,存储器,输入设备和输出设备五大部分组成。 (1)运算器的功能是用于完成算术运算、逻辑运算。负责计算机执行的所有数学与逻辑功能。 (2)控制器的功能是主要负责对程序所执行的指令进行分析,并协调计算机各部件进行工作计算机的所有 其他部件。 (3)存储器的功能是用于储存信息的设备,通常是将信息数字化后再利用电…

    Linux笔记 2018-05-11
  • 小节

    管道符:cmd1 输出cmd2 输入cmd1 | cmd2如果想将错误信息传给cmd2cmd1 |& cmd2 或 cmd1 2>&1| cmd2加上 >2><&>就是重定向<< key与用户名和组相关的/etc/passwd/etc/shadow 放用户口令的/etc/group/etc/g…

    Linux笔记 2018-04-07