一.Nginx准备安装环境
Nginx是C语言开发,建议在linux上运行,本教程使用Centos7.0作为安装环境.
(1)gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc
yum install gcc-c++
(2)PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
(3)zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
(4)openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
二.nginx准备安装
1.在/usr/local/下创建文件nginx文件
mkdir /usr/local/nginx
2.将nginx安装文件拷贝到此文件夹下
手动拷贝--“nginx” 文件!
3.进入并解压nginx
cd /usr/local/nginx
tar -zxvf nginx-1.21.1.tar.gz
cd nginx-1.21.1
三.nginx编译安装
1.在Nginx路径下,输入:
./configure
文件夹中出现:Makefile,这个文件。
2.在当前路径下,输入:
<1> make
<2> make install
安装目录,如图:
3.启动nginx:
进入到nginx的sbin的目录:
cd /usr/local/nginx/sbin/
输入启动命令: ./nginx
4.查看nginx进程情况:
ps aux|grep nginx
5.查看nginx版本:
/usr/local/webserver/nginx/sbin/nginx -v
6.查看端口号:
firewall-cmd --query-port=80/tcp
手动开启端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
开启端口后,要重启防火墙:
firewall-cmd --reload
7.测试网页访问nginx是否成功:
输入:网址+端口号
出现:
即成功!
四.设置开机启动和端口号
首先修改/etc/rc.d/rc.local文件:
vi /etc/rc.d/rc.local
如图:
填加内容为:/usr/local/nginx/sbin/nginx
然后执行如下命令,使/etc/rc.d/rc.local变成可执行文件。
chmod +x /etc/rc.d/rc.local
指定配置文件进行重启:
/usr/local/nginx/sbin/nginx -s reload -c /usr/local/nginx/conf/nginx.conf
使用reboot命令重启,查看nginx是否成功的自启动!
修改nginx默认端口号:
cd /usr/local/nginx/conf/
路径下,输入:
vi nginx.conf
修改红色部分,为新的端口号,即可!
备注:
进入安装目录:
cd /usr/local/nginx/sbin
启动、关闭、重启命令:
./nginx 启动
./nginx -s stop 关闭
./nginx -s reload 重启
五.Nginx配置反向代理的原理图:
什么是反向代理
反向代理服务器决定哪台服务器提供服务。返回代理服务器不提供服务器。只是请求的转发。
正向代理如下
反向代理如下
以上是Nginx实现反向代理的过程!
六.修改Tomcat和Nginx配置文件
一、Tomcat配置文件:
首先在电脑上安装三个tomcat服务器,三个端口分别是8081和8082和8083。
然后,
通过Editplus远程连接修改tomcat8081里面的server.xml配置里面修改端口号
<Connector port="8001" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
通过Editplus远程连接修改tomcat8082里面的server.xml配置里面修改端口号
<Connector port="8002" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
通过Editplus远程连接修改tomcat8083里面的server.xml配置里面修改端口号
<Connector port="8003" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
然后,
把tomact8001里面的webapps文件夹里面的ROOT文件夹里面的index.jsp变成下面这样,此时可以看到下面输入的内容是8001,
<html lang="en">
<head>
<title><%=request.getServletContext().getServerInfo() %></title>
<link href="favicon.ico" rel="icon" type="image/x-icon" />
<link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
<link href="tomcat.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>tomcat8001index.jsp<h1>
</body>
</html>
把tomact8002里面的webapps文件夹里面的ROOT文件夹里面的index.jsp变成下面这样,此时可以看到下面输入的内容是8002,
<html lang="en">
<head>
<title><%=request.getServletContext().getServerInfo() %></title>
<link href="favicon.ico" rel="icon" type="image/x-icon" />
<link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
<link href="tomcat.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>tomcat8002index.jsp<h1>
</body>
</html>
把tomact8003里面的webapps文件夹里面的ROOT文件夹里面的index.jsp变成下面这样,此时可以看到下面输入的内容是8003,
<html lang="en">
<head>
<title><%=request.getServletContext().getServerInfo() %></title>
<link href="favicon.ico" rel="icon" type="image/x-icon" />
<link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
<link href="tomcat.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>tomcat8003index.jsp<h1>
</body>
</html>
然后,启动tomcat8001和tomcat8002和tomcat8003,访问成功!
例:apache-tomcat-8001
(外网端口映射)http://27.185.15.89:501/
访问成功!
例:apache-tomcat-8002
(外网端口映射)http://27.185.15.89:502/
访问成功!
例:apache-tomcat-8003
(外网端口映射)http://27.185.15.89:503/
访问成功!
二、Nginx配置文件:
修改nginx配置文件的路径:
cd /usr/local/nginx/conf/
路径下,输入:
vi nginx.conf
修改文件如下内容:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream tomcat1{
server 27.185.15.89:501;
server 27.185.15.89:502;
server 27.185.15.89:503;
}
server {
listen 31;
server_name localhost;
location / {
proxy_pass http://tomcat1;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
upstream tomcat2{
server 27.185.15.89:501;
server 27.185.15.89:502;
server 27.185.15.89:503;
}
server {
listen 32;
server_name localhost;
location / {
proxy_pass http://tomcat2;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
upstream tomcat3{
server 27.185.15.89:501;
server 27.185.15.89:502;
server 27.185.15.89:503;
}
server {
listen 33;
server_name localhost;
location / {
proxy_pass http://tomcat3;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
七.访问网址,查看是否设置成功:
结尾:
重复访问同一个网址,出现不同的访问结果,说明nginx代理成功!访问不同的Tomcat容器。到此,nginx的反向代理就完成了!
---------------------
nginx 文件结构:
... #全局块 events { #events块 ... } http #http块 { ... #http全局块 server #server块 { ... #server全局块 location [PATTERN] #location块 { ... } location [PATTERN] { ... } } server { ... } ... #http全局块 }