Nginx安装方法和反向代理配置
安装过程:
在线安装包(参考):
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
离线安装--先安装插件:
tar –zxvf pcre2-8.44.tar.gz
cd pcre2-8.44/
./configure
make
make check
make install
pcre-config --version
--
tar –zxvf zlib.tar.gz
cd zlib
./configure
make
make check
make install
--
tar -zxvf nginx-1.8.1.tar.g
cd nginx-1.8.1
./configure
./configure --prefix=/opt/nginx
make
make install
--
配置防火墙:
开通防火墙端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:
firewall-cmd --reload
查看防火墙开启端口列表:
firewall-cmd --list-ports
查看防火墙状态:
systemctl status firewalld
正式安装Nginx!
一.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://127.0.0.1:8001/
(外网端口映射)http://27.185.15.89:501/
访问成功!
例:apache-tomcat-8002
(本机)http://127.0.0.1:8002/
(外网端口映射)http://27.185.15.89:502/
访问成功!
例:apache-tomcat-8003
(本机)http://127.0.0.1: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; } } }七.访问网址,查看是否设置成功:
http://27.185.15.89:31/
http://27.185.15.89:32/
http://27.185.15.89:33/
结尾:
重复访问同一个网址,出现不同的访问结果,说明nginx代理成功!访问不同的Tomcat容器。到此,nginx的反向代理就完成了!
---------------------
nginx 文件结构:
... #全局块 events { #events块 ... } http #http块 { ... #http全局块 server #server块 { ... #server全局块 location [PATTERN] #location块 { ... } location [PATTERN] { ... } } server { ... } ... #http全局块 }