腾讯云服务器挂机实战一文带你读懂Nginx反向代理

云服务器调证范围 开源Linux 欢迎来到『开源Linux』,这里是国内专业Linux技术社区。专注分享Linux/Unix相关内容,包括Linux运维、Linux系统开发、网络编程、以及虚拟化和云···

云服务器调证范围

开源Linux

欢迎来到『开源Linux』,这里是国内专业Linux技术社区。专注分享Linux/Unix相关内容,包括Linux运维、Linux系统开发、网络编程、以及虚拟化和云计算等技术干货。后台回复『读书』,有我为您特别筛选的书籍资料~

一个执着于技术的公众号

前言

在前面的章节中,我们已经学习了nginx基础知识:

给小白的 Nginx 10分钟入门指南

Nginx编译安装及常用命令

完全卸载nginx的详细步骤

Nginx 配置文件详解

理解正向代理与反向代理的区别

今天我们通过两个实例,带大家读懂nginx反向代理

Nginx反向代理实例 1

1、实现效果

打开浏览器,在地址栏输入地址www.test.com,跳转到百度首页。

2、准备工作

(1)在Linux系统安装nginx

1)创建用于运行Nginx的用户 useradd -M -s /sbin/nologin nginx 2)下载nginx软件包 wget http://nginx.org/download/nginx-1.18.0.tar.gz 3)解压 tar -xf nginx-1.18.0.tar.gz -C /usr/src 4)configure ./configure--user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_ssl_module参数说明:--user=nginx:指定nginx程序运行用户--group=nginx:指定nginx程序运行用户组--prefix=/usr/local/nginx:指定安装路径--with-http_ssl_module:开启nginx的SSL模块来支持HTTPS访问5)编译安装 make -j 4 && makeinstall6)给nginx命令做个软链接,以便PATH能找到ln-s /usr/local/nginx/sbin/nginx /usr/local/sbin/7)本次实验nginx版本 [root@qll251 ~]nginx -vnginxversion: nginx/1.18.0

(2)编辑nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

server_name:监听访问的域名;proxy_pass URL:把请求转发到指定URL

(3)重启nginx服务

如果出现以上报错,说明Nginx未开启SSL模块,解决方案:

在安装编译时,需配置ssl支持 ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_ssl_module

重启nginx服务:

nginx -s stop && nginx

购买云服务器的

(4)Windows hosts文件修改

在Windows的hosts文件中进行域名和ip对应关系的配置

3、访问测试

如果您在实验过程中遇到如下报错:

出现上面的问题,原因是nginx 没办法监听本地不存在的ip地址。

解决方法是在/etc/sysctl.conf 中加入如下内核参数配置

echonet.ipv4.ip_nonlocal_bind = 1>>/etc/sysctl.conf sysctl -p

4、访问过程分析

Nginx反向代理实例 2

1、实现效果

使用nginx反向代理,根据访问路径跳转到不同端口的服务中:

本次nginx反向代理中使用9001端口访问http://10.43.187.251:9001/edu/,直接跳转转至127.0.0.1:8080访问http://10.43.187.251:9001/vod/,直接跳转转至127.0.0.1:8081

2、准备工作

(1)部署两个tomcat服务器

tomcat依赖java运行环境,因此先完成jdk环境变量的配置

1、下载jdk wget http://big.gxkjbg.com:8080/201704/tools/jdk-linux-x64.tar.gz tar -zxvf jdk-linux-x64.tar.gz -C /usr/src/ ls /usr/src/jdk1.8.0_131/ 2、编辑环境变量 vim /etc/profileexportJAVA_HOME=/usr/src/jdk1.8.0_131exportJAVA_BIN=/usr/src/jdk1.8.0_131/binexportPATH=${JAVA_BIN}:$PATHexportCLASSPATH=.:{JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar 3、使环境变量立即生效source/etc/profile 4、检查java版本 [root@qll251 ~]java -versionjava version"1.8.0_131"Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) [root@qll251 ~]

(2)启动2个tomcat服务

1、下载免安装版Tomcat wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.54/bin/apache-tomcat-8.5.54.tar.gz2、创建两个文件夹mkdir/usr/src/tomcat8080mkdir/usr/src/tomcat80813、解压 tar -zxvf apache-tomcat-8.5.54.tar.gz -C /usr/src/tomcat8080tar -zxvf apache-tomcat-8.5.54.tar.gz -C /usr/src/tomcat80814、启动tomcat1 [root@qll251 ~]cd /usr/src/tomcat8080[root@qll251 tomcat8080]./apache-tomcat-8.5.54/bin/startup.sh5、启动tomcat2 由于tomcat1使用8080默认端口,防止端口冲突,我们修改下tomcat2端口: [root@qll251 ~]cd /usr/src/tomcat8081[root@qll251 tomcat8081]vim apache-tomcat-8.5.54/conf/server.xml22 shutdown="SHUTDOWN">69 "HTTP/1.1"启动tomcat2: [root@qll251 tomcat8081]./apache-tomcat-8.5.54/bin/startup.sh

(3)检测tomcat端口已正常启动

(4)创建测试访问页面

云服务器限制软件

1、在tomcat1中创建a.thml文件 [root@qll251 ~]cd /usr/src/tomcat8080[root@qll251 tomcat8080]cd apache-tomcat-8.5.54/webapps/[root@qll251 webapps]mkdir edu[root@qll251 webapps]echo "

8080!

" > edu/a.thml
2、在tomcat2中创建a.thml文件 [root@qll251 ~]cd /usr/src/tomcat8081[root@qll251 tomcat8081]cd apache-tomcat-8.5.54/webapps/[root@qll251 webapps]mkdir vod[root@qll251 webapps]echo "

8081!

" > vod/a.thml

(5)编辑nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

3、最终测试

使用nginx反向代理功能实现了访问两个tomcat服务的需求

天津云主机云服务器商家

您好:云优数据云计算 www.yunyoushuju.cn 2核2G6M最低19.9元/月 欢迎开机

发表评论

评论列表
未查询到任何数据!