centos 7.3配置Nginx,简易的图片服务器

1.安装gcc gcc-c ++(如新环境,未安装请先安装)
yum install -y gcc gcc-c ++

2.安装PCRE库
$ cd /usr/local
$ wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz
$ tar -zxvf pcre-8.33.tar.gz
$ cd pcre -8.33
$ ./configure
$ make && make install
如报错:configure:错误:您需要一个C ++编译器来支持C ++
解决:yum install -y gcc gcc-c ++`

3.安装SSL库
$ cd / usr / local /
$ wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz
$ tar -zxvf openssl-1.0.1j.tar.gz
$ cd openssl-1.0.1j
$ ./config
$ make && make install

4.安装的zlib的库存
$ cd / usr / local /
$ wget http://zlib.net/zlib-1.2.11.tar.gz
$ tar -zxvf zlib-1.2.11.tar.gz
$ ./configure
$ make && make install

5.安装nginx的
./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.33 --with-zlib=/usr/local/zlib-1.2.11 --with-openssl=/usr/local/openssl-1.0.1j

make && make install

6.启动
$ /usr/local/nginx/sbin/nginx

检查是否启动成功:
打开浏览器访问此机器的IP,如果浏览器出现欢迎来到nginx的!则表示Nginx的已经安装并运行成功。
部分命令如下:
重启:
$/usr/local/nginx/sbin/nginx -s reload
停止:
$ /usr/local/nginx/sbin/nginx -s stop

测试配置文件是否正常:
$ /usr/local/nginx/sbin/nginx -t
强制关闭:
$ pkill nginx

配置
以上安装方法的nginx的的配置文件位于
/usr/local/nginx/conf/nginx.conf
Nginx的配置文件常见结构的从外到内依次是「HTTP」「服务器」「位置」
等等,缺省的继承关系是从外到内,也就是说内层块会自动获取外层块的值作为缺省值。

服务器
接收请求的服务器需要将不同的请求按规则转发到不同的后端服务器上,在nginx的中我们可以通过构建虚拟主机(服务器)的概念来将这些不同的服务配置隔离。
服务器{
听80;
server_name localhost;
root html;
index index.html index.htm;
}

例如我们笔戈玩下的两个子项目passport和wan就可以通过在nginx的配置文件中配置两个服务器,servername分别为passport.bigertech.com和wan.bigertech.com。这样的话不同的url请求就会对应到nginx相应的设置,转发到不同的后端服务器上。
这里的听指监听端口,server_name用来指定IP或域名,多个域名对应统一规则可以空格分开,index用于设定访问的默认地址,root指令用于指定虚拟主机的网页跟目录,这个地方可以是相对地址也可以是绝对地址。
通常情况下我们可以在nginx.conf中配置多个服务器,对不同的请求进行设置。就像这样:
服务器{
听80;
server_name host1;
root html;
index index.html
index.htm的;
}
服务器{
听80;
server_name host2;
root / data / www / html;
index index.html index.htm;
}

但是当服务器超过2个时,建议将不同对虚拟主机的配置放在另一个文件中,然后通过在主配置文件nginx.conf加上包括指令包含进来。更便于管理。
包括vhosts / * .conf;

就可以把虚拟主机的文件都​​包含进去啦。

Localtion
每个url请求都会对应的一个服务,nginx进行处理转发或者是其他服务器的一个服务路径。而这个路径的匹配是通过location来进行的。我们可以将server当做对应一个域名进行的配置,而位置是在一个域名下对更精细的路径进行配置。

以上面的例子,可以将根和索引指令放到一个位置中,那么只有在匹配到这个位置时才会访问根后的内容:
位置 / {
root / data / www / host2;
index index.html index.htm;
}

location匹配规则
〜波浪线表示执行一个正则匹配,区分大小写
〜*表示执行一个正则匹配,不区分大小写
〜表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
=进行普通字符精确匹配

匹配例子:
location = / {
#只匹配“/”。[配置A]
}
位置 / {
#匹配任何请求,因为所有请求都是以“/”开始#但是更长字符匹配或者正则表达式匹配会优先匹配[配置B]
}
位置^〜/ images / {
#匹配任何以/ images /开始的请求,并停止匹配其它
位置[配置C]
}
location~ *。(gif | jpg | jpeg)$ {
#匹配以gif,jpg或jpeg结尾的请求。
#但是所有/ images /目录的请求将由[Configuration C]处理。
[配置D]
}
请求:/ - >符合配置A.
/documents/document.html - >符合配置B.
/images/1.gif - >符合配置C.
/documents/1.jpg - >符合配置D.

静态文件映射
访问文件的配置主要有 root和alias p的两个指令。这两个指令的区别容易弄混:
alias
别名后跟的指定目录是准确的,并且末尾必须加/。

location / c / {
别名/ a /;
}
根根后跟的指定目录是上级目录,并且该上级目录下要含有和位置后指定名称的同名目录才行。

location / c / {
root / a /;
}

如果你需要将这个目录展开,在这个位置的末尾加上「autoindex on; 」就可以了
转发配置起来很简单比如我要将所有的请求到转移到真正提供服务的一台机器的8001端口,只要这样:
位置 / {
proxy_pass 172.16.1.1:8001;
}

这样访问host时,就都被转发到172.16.1.1的8001端口去了。
负载均衡

上游myserver; {
ip_hash;
server 172.16.1.1:8001;
服务器172.16.1.2:8002;
服务器172.16.1.3;
服务器172.16.1.4;
}
位置 / {
proxy_pass http:// myserver;
}

我们在 upstream 中指定了一组机器,并将这个组命名为 myserver,这样在 proxypass 中只要将请求转移到 myserver 这个 upstream 中我们就实现了在四台机器的反向代理加负载均衡。其中的 ip_hash 指明了我们均衡的方式是按照用户的 ip 地址进行分配。另外还有轮询、指定权重轮询、fair、url_hash几种调度算法。

总结

以上是最简单的通过 nginx 实现静态文件转发、反向代理和负载均衡的配置。在 nginx 中所有的功能都是通过模块来实现的,比如当我们配置 upstream 时是用 upstream 模块,而 server 和 location 是在 http core 模块,其他的还有流控的 limt 模块,邮件的 mail 模块,https 的 ssl 模块。他们的配置都是类似的可以再 nginx 的模块文档中找到详细的配置说明。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值