nginx那点事

安装nginx

以下四点,如果服务器装过可以忽略
1.安装make:
yum -y install gcc automake autoconf libtool make
2.安装g++:
yum install gcc gcc-c++
一、选定安装文件目录
可以选择任何目录,本文选择 cd /usr/local/src
二、安装PCRE库
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
tar -zxvf pcre-8.37.tar.gz
cd pcre-8.34
./configure
make
make install
三、安装zlib库
cd /usr/local/src
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install
四、安装openssl(某些vps默认没装ssl)
cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz
tar -zxvf openssl-1.0.1t.tar.gz
五、安装nginx
Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:
下载nginx:wget https://nginx.org/download/nginx-1.11.3.tar.gz

我们一般安装linux软件都会在/usr/local目录下,然后进行解压编译安装:

tar -zxvf nginx-1.11.3.tar.gz
mv nginx-1.11.3 /usr/local/nginx-1.11.3

此时开始安装,注意,
/usr/local/nginx-1.11.3 --是nginx的解压后的源码包。
./configure --prefix=/usr/local/nginx
安装到/usr/local/nginx的nginx目录下
make
make install
六、配置文件
1.listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个 server,这个listen要配置不一样,不然就不能确定转到哪里去了。
server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。
location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这 里对我们之后的静态文件伺服很有用。
index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推
在这里插入图片描述
2.那我们知道了具体的配置了,怎么让它访问localhost时转到tomcat时。实际上就修改两个地方:
server_name localhost:8080;

location / {
proxy_pass http://localhost:8080
}
我们就修改了上面两个地方,我的tomcat在8080端口,可以根据自己的需要修改。这里有一个新元素proxy_pass,它表示代理路径,相当于转发,而不像之前说的root必须指定一个文件夹。
此时我们修改了文件,是不是就意思着必须先关了nginx再重新启动了,其实不必,nginx可以重新加载文件的。
3.上面我们直接试了一个小例子,让nginx进行转发,即所谓的反向代理。但实际上我们的需求不会是这样的,我们需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP,而html,js,css这些不需要处理的,直接给nginx进行缓存。
下面我们来进行一下配置,让JSP页面直接给tomcat,而html,png等一些图片和JS等直接给nginx进行缓存。
这时最主要用的还是location这个元素,并且涉及到一部分正则,但不难:
location ~ .jsp$ {
proxy_pass http://localhost:8080;
}

location ~ .(html|js|css|png|gif)$ {
root D:/software/developerTools/server/apache-tomcat-7.0.8/webapps/ROOT;
}

4.有些人会说,这些都只会找一台服务器,但如果我们想在一台服务器挂了的时候,自动去找另外一台,这怎么办?这实际上nginx都考虑到了。
这时,我们之前用的proxy_pass就有大用途了。
upstream local_tomcat {
server localhost:8080;
}

server{
location / {
proxy_pass http://local_tomcat;
}
#…其他省略
}
我们在server外添加了一个upstream,而直接在proxy_pass里面直接用http://+upstream的名称来使用。
我们还是直接来http://localhost,还是和第一个一样的效果,所有链接都没问题,说明我们配置正确。
upstream中的server元素必须要注意,不能加http://,但proxy_pass中必须加。

我们刚才说可以在一个服务器挂了的情况下连到另外一个,那怎么弄呢?
其实很简单,在upstream中的local_tomcat中配置多一个server。比如我现在弄多一个jetty,端口在9999,所以我们配置如下:
upstream local_tomcat {
server localhost:8080;
server localhost:9999;
}
但有时我们就不想它挂的时候访问另外一个,而只是希望一个服务器访问的机会比另外一个大,这个可以在server最后加上一个weight=数字来指定,数字越大,表明请求到的机会越大。
upstream local_tomcat {
server localhost:8080 weight=1;
server localhost:9999 weight=5;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我本無心何來傷心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值