1.概述:
nginx是一款由c++开发的高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯人开发,官方测试nginx能够支撑5万并发连接,并且cpu、内存等资源消耗非常低,运行稳定。
2.应用场景:
-
http服务器。可以作为网页静态服务器。
-
虚拟主机。可以在一台服务器上虚拟出多个网站
-
反向代理。用多台服务器集群可以使用nginx做反向代理,达到负载均衡。
3.安装(当然得先下载):
3.1. windows下:
3.1.1. 第一种方法:双击nginx.exe,打开访问地址http://127.0.0.1即可看到欢迎页面。关闭可以使用任务管理器(任务管理器里有两个nginx进程,一个是守护进程,一个是工作进程,需要手动分别关闭)。
3.1.2. 第二种方法:命令行启动。在nginx目录下,输入命令start nginx即可。关闭需要输入命令nginx -s stop。重启输入命令 nginx -s reload。
3.2. linux下:。
3.2.1. 第一步首先需要安装gcc的环境和第三方的开发包。
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
3.2.2. 第二步解压源码包。
3.2.3. 第三步使用configure命令创建makeFile文件。
./configure
因为默认会将临时文件目录指定为/var/temp/nginx,所以需要在/var下创建temp及nginx目录。
mkdir /var/temp/nginx/client -p
3.2.4. 第四步输入命令make
make
3.2.5. 第五步
make install
3.2.6. 进入nginx目录下的sbin目录启动nginx
./nginx
3.2.7. 关闭nginx
./nginx -s stop
3.2.8. 重启niginx
./nginx -s reload
4.nginx配置文件nginx.conf(windows版本在conf文件夹下,linux在/usr/local/nginx/conf/nginx.conf下):
4.1. 端口号修改,找到listen 80,将80改成需要的端口号即可。
4.2. 页面存放位置和欢迎页面,表示页面都放在nginx的html目录下,默认会访问index.html或者index.htm文件
5.配置虚拟主机,即在一台服务器上配置多个网站。只要在conf文件中添加一个server节点,每次修改完成需要重启nginx。
server {
listen 81;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html-81;
index index.html index.htm;
}
}
6.反向代理的配置,即用户要访问A网站,A网站却把这个请求让B网站来做,B网站就是反向代理。
只需要做如上修改,重启nginx即可。然后访问nginx的地址即可访问配置的网址了,例如上图的8111端口。
7.动静分离。
nginx处理静态内容的吞吐量很高(图片,css,js),jsp可以交由
将上一步反向代理配置成tomcat的ip。然后在location下加上一个新的location如下:这表示所有的css,js,png访问都是nginx来做,地址就是配置中的地址。(填写本地地址时要用正斜杠\)
location ~\.(css|js|png)$ {
root C:/Users/Xxx/Downloads/tomcat_8111/webapps/ROOT;
}
8.负载均衡
如果一个服务由多条服务器提供,需要把负载分配到不同的服务器处理,需要负载均衡。
可以根据服务器的实际情况调整服务器权重。权重越高分配的请求越多,权重越低,请求越少。默认都是1。
增加一个upstream节点即可。
upstream tomcat2 {
server 192.168.18.158:8081;
server 192.168.18.158:8082 weight=2;
}
然后还可以配置反向代理:
location / {
proxy_pass http://tomcat2;
}