Nginx介绍
是一款反向代理服务器,用来代理服务器。
还可以作为电子邮件(IMAP、POP3)代理服务器
由俄罗斯的一位程序员开发
优点:
并发高,能够支持5w并发连接
cpu、内存等资源消耗非常低
运行非常稳定
Nginx应用场景
1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、虚拟主机。可以实现一台服务器虚拟出多个网站。例如个人网站使用给的虚拟主机。
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要多态服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载过高宕机而某台服务器闲置的情况。
Linux下安装Nginx
一般都是独立的机器安装Nginx、mysql、redis、tomcat这些软件
1、下载对应的tar.gz包到服务器上
2、安装依赖环境
yum install gcc-c++
yum install -y pcre pcre-devel # 解析正则表达式
yum install -y zlib zlib-devel # 解压缩
yum install -y openssl openssl-devel # nginx支持http,https(在ssl协议上传输http),所以需要openssl库。
3、解压缩
tar -zxvf nginx-1.8.0.tar.gz
4、安装
# 执行以下命令,使用configure命令创建makefile文件
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
在解压目录中使用
make
make install
5、启动Nginx与访问
# 启动之前需要创建上面指定的临时文件目录
mkdir /var/temp/nginx/client -p
cd /usr/local/nginx/sbin
./nginx # 启动nginx
ps aux | grep nginx # 查看进程
./nginx -s stop # 杀进程方式停止nginx
./nginx -s quit # 保存配置,做各种工作后正常退出nginx
./nginx -s reload # 刷新配置文件
Nginx功能1:静态资源的部署
使用Editplus可以通过配置,连接到Linux的文件系统。
将nginx.conf文件中的server部分修改为:
server {
listen 81; # 默认端口号 判断端口号是否匹配
server_name localhost; # 域名或者IP,如果请求的域名是这个名称,则往下执行获取资源,不是则不会往下执行。
location / {
root index; # 默认访问的资源目录
index index.html index.htm; #默认访问资源名称
}
error_page 500 502 503 504 /50x.html; # 错误页面
location = /50x.html {
root html;
}
}
问题:虚拟机Linux中可以访问启动的端口,但是在外面无法访问
出现这种问题,一般都是防火墙的原因。
cd /etc/sysconfig
vim iptables
# 把需要开放的端口放到默认开放的ssh的22端口下一行即可
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 82 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
service iptables restart # 修改防火墙配置后,一定要重启防火墙才会生效
SSH:安全外壳协议,Secure Shell的缩写,SSH是建立在应用层基础上的安全协议。SSH是较可靠的,专为远程登陆会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
配置虚拟主机
Nginx功能2:端口绑定
修改nginx.conf文件,中的listen,与请求的端口对应即可。
server {
listen 81; # 监听的端口
server_name localhost; # 域名或ip
location / { # 访问路径配置
root index;# 根目录
index index.html index.htm; # 默认首页
}
error_page 500 502 503 504 /50x.html; # 错误页面
location = /50x.html {
root html;
}
}
server {
listen 82; # 监听的端口
server_name localhost; # 域名或ip
location / { # 访问路径配置
root regist;# 根目录
index regist.html; # 默认首页
}
error_page 500 502 503 504 /50x.html; # 错误页面
location = /50x.html {
root html;
}
}
访问出现对应界面即可:
http://192.168.31.129:81
http://192.168.31.129:82
Nginx功能2:域名绑定
做DNS,修改C:\Windows\System32\drivers\etc\hosts文件
192.168.31.129 www.hmtraval.com
192.168.31.129 regist.hmtraval.com
在nginx.conf中配置server_name,为请求中对应的域名即可访问到对应的资源:
server {
listen 80; # 默认端口号
server_name www.hmtraval.com; # 域名或者IP
location / {
root index; # 默认访问的资源目录
index index.html; #默认访问资源名称
}
error_page 500 502 503 504 /50x.html; # 错误页面
location = /50x.html {
root html;
}
}
server {
listen 80; # 默认端口号
server_name regist.hmtraval.com; # 域名或者IP
location / {
root regist; # 默认访问的资源目录
index regist.html; #默认访问资源名称
}
error_page 500 502 503 504 /50x.html; # 错误页面
location = /50x.html {
root html;
}
}
修改完nginx.conf文件后,要记得:
./nginx -s reload # 刷新nginx配置,否则不会生效
Nginx功能3:反向代理
反向代理介绍
正向代理:
代理的是客户端
反向代理:
代理的是服务端
使用方向代理服务器的好处:
配置反向代理准备
在Linux中,启动tomcat,部署一个war项目。
访问http://192.168.31.129:8080 可以访问到即可
反向代理配置
upstream tomcat-travel{
server 192.168.177.129:8080;
}
server {
listen 80; # 监听的端口
server_name www.hmtravel.com; # 域名或ip
location / { # 访问路径配置
# root index;# 根目录
proxy_pass http://tomcat-travel;
index index.html index.htm; # 默认首页
}
}
访问:http://www.hmtravel.com 测试
Nginx功能4:负载均衡
如果并发要求比较高,需要做tomcat集群,如下图所示:
1、复制几份刚刚部署好的tomcat
drwxr-xr-x. 9 root root 4096 7月 18 04:31 apache-tomcat-7.0.57
-rw-r--r--. 1 root root 8900571 7月 18 04:30 apache-tomcat-7.0.57.tar.gz
drwxr-xr-x. 9 root root 4096 7月 18 04:34 apache-tomcat-7.0.86
-rw-r--r--. 1 root root 9044537 7月 18 04:34 apache-tomcat-7.0.86.tar.gz
[root@itheima tomcat]# cp -r apache-tomcat-7.0.57 tomcat1
[root@itheima tomcat]# cp -r apache-tomcat-7.0.57 tomcat2
[root@itheima tomcat]# cp -r apache-tomcat-7.0.57 tomcat3
2、修改复制的tomcat的端口
在editplus中,通过ftp连接,修改。
在server.xml文件中,几乎所有的端口都要修改。
可以在上一个tomcat的基础上,+1即可。
3、在nginx的nginx.conf配置文件中,修改:
upstream tomcat-traval {
server 192.168.31.129:8080; # 这样每个服务器访问到的概率都是相同的
server 192.168.31.129:8081;
server 192.168.31.129:8082;
}
# 如果需要让不同的服务器承载的访问量不同
upstream tomcat-traval {
server 192.168.31.129:8080 weight=2; # 默认权重是1,这样修改后:2:1:1,也就是第一台占一半
server 192.168.31.129:8081;
server 192.168.31.129:8082;
}