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

相关推荐

  • 08 tr命令练习

      tr命令 转换或删除字符 tr tr [OPTION]… SET1 [SET2]   -c 取反   -d 删除   -s 如果有重复字符,则代替为一个字符-压缩   -t 使set1长度和set2长度一致 示例1: tr set1 set2        将set1字符转换为set2要求的字符

    Linux笔记 2018-04-05
  • Linux文件管理命令,命令状态返回值及命令展开

    ls命令 功能: 列出目录下的所有文件和目录 语法格式: ls [OPTION]… [FILE]… 常用选项: -a :列出所有文件和目录 -A :列出除.和..的所有文件 -l :长选项,显示文件的详细属性信息 -rw——-. 1 root root 1.4K May 1 00:50 anaconda-ks.cfg -:文件类型 -:普通文…

    Linux笔记 2018-05-27
  • 计算机基础与linux基础

    描述计算机的组成及功能 按系列罗列linux的发行版,并描述不同发行版之间的联系与区别 描述linux的哲学思想,并按照自己的理解对其解释性描述 说明Linux系统上命令的使用格式;详细介绍ifconfig.echo,tty,startx,export,pwd,history,shutdown,poweroff,reboot,hwclock,date命令的使…

    Linux笔记 2018-06-19
  • 软件包管理

      软件包管理 API:Application Programming Interface POSIX:Portable OS 程序源代码 –> 预处理 –> 编译 –> 汇编 –> 链接 静态编译:.a 动态编译:.so 二进制应用程序的组成部分: 二进制文件、库文件、配置文…

    2018-04-19
  • 官方EPEL源配置

    本人最近在做实验zabbix, 闹了半天yum没有提供zabbix,最好才发现yum没提供,只有官方源才有
    这里最近操作安装epel源的整个过程,觉得对大家比较有用,发出来给大家如果需要的时候过来看看

    请大家进入笔记链接学习

    Linux笔记 2018-04-27