初始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
下一篇 2018-07-08

相关推荐

  • 第二周笔记

    ### 4 月2日笔记 – #### IO重定向“`I:input指的是标准输入 描述符用0表示O:output指的是标准输入 描述符用1表示标准错误 描述符用2表示“`一般文件或者命令的标准输入是指的键盘,标准输出是值得终端窗口。我们用重定向来改变他们的方向大于号> 表示标准输出:把输出内容定向到一个文件中&#82…

    Linux笔记 2018-04-01
  • 7月2日~7月8日作业

    1、列出当前系统上所有已经登入的用户的用户名,注意:同一个用户登入多次,则只显示一次即可。 ~]# who | cut -d  ‘  ’   -f1  |  sort  -u 2、取出最后登入到当前系统的用户的相关信息。 3、取出当前系统上被用户当作默认shell的最多的那个shell. 4、将/etc/passwd中的第三个字段数值最大的后10个用户信息全…

    2018-07-07
  • Linux笔记 – RPM及YUM软件包的管理与使用 2(YUM工具的使用方法)

    ◆ 软件包的管理- YUMYUM(Yellowdog Updater Modified)工具与APT(debain ubuntu等)工具一样,在解决软件依赖关系的同时可以下载、安装、升级、卸载等功能的重要工具。YUM的相关设定在 /etc/yum.conf 文件中有详细的描述。为了设置软件包的软件源信息,需要修改/etc/yum.conf 文件或在 /etc…

    2018-05-08
  • 课堂笔记(6)

    笔记

    Linux笔记 2018-04-08
  • 喜欢上find

    喜欢上findfind :查找目录下的文件。find 命令其实很好记,会用了,那简直太好玩太方便了-newer查找更改时间比指定文件新的文件-type 按类型查找 (d f l s b c p )D-name 按文件名查找-mtime 按修改时间查找( +2 -2 2)-size 按文件大小查找-perm 按文件权限查找-user 按文件属主来查找-nous…

    2018-04-18
  • 权限

    chmod 更改权限 语法 1 who 对谁操作 opt做什么操作 per 跟什么权限 跟文件 who u g o a opt +增加 -减掉 =覆盖 per rwx reset 重复系统 文本文件 r 读 打开 w 改 x 执行程序 chown 更改所有者 chgrp 更改所属组 chmod who (u) opt (g)per(o) file文件 绿色有…

    Linux笔记 2018-04-08