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

相关推荐

  • 运维自动化部署

    CentOS系统启动流程:bootloader(引导模式)>kernel(内核)>rootfs(根文件系统)>/sbin/init(开机启动服务) 安装程序启动过程:MBR:isolinux/boot.cat stage2: isolinux/isolinux.bin 配置文件:isolinux/isolinux.cfg每个对应的菜单…

    Linux笔记 2018-06-10
  • 迁移/home目录到新的分区上步骤

    迁移/home目录到新的分区上步骤 1、 安装一个新的硬盘 2、 查看新硬盘的设备名,如下图所示: 3、 在新硬盘上创建一个主分区,如下图所示: 4、 将新创建的分区格式化为ext4文件系统,并加上/home卷标,如下图所示: 5、 创建/home目录临时挂载点,并将分区挂载到临时挂载点上,如下图所示: 6、 切换单用户,将除了root用户之外的用户踢出,如…

    2018-04-27
  • 课堂笔记(6)

    笔记

    Linux笔记 2018-04-08
  • Linux用户和组

    我们知道Linux是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。由于是多用户操作系统,必然要涉及到时管理用户。由于用户访问Linux上的资源比较多,为了方便管理出现的组的概念.将多个用户添加到一个组里,方便管理。 介绍安全3A 资源分派: Authentication:认证 Au…

    Linux笔记 2018-04-08
  • Linux基础知识入门

    涉及内容:
    计算机组成、发行版介绍、哲学思想、基本命令介绍、命令帮助使用、系统基本目录名和功用介绍

    2018-05-13
  • 自制mini的Linux系统

    如何打造一个小的Linux系统。这个可以当做一个很简单的启动盘,并使它能够成功启动且能有简单的shell环境。

    Linux笔记 2018-05-11