nginx配置实例-反向代理

目录

一、目标-反向代理实现效果

二、安装tomcat

三、配置nginx服务

四、配置反向代理


一、目标-反向代理实现效果

访问过程分析:

二、安装tomcat

1、安装jdk环境

新建/export/server目录

解压jdk

查看是否解压成功

配置jdk软连接

进入jdk的bin目录中,可以看到都是可执行文件

配置JAVA_HOME环境变量。以及$JAVA_HOME/bin文件夹加入到PATH环境变量中

使得修改的/etc/profile生效

删除系统自带的java程序,并软连接我刚刚自己安装的Java程序

验证,这时显示的java版本就是就变成我刚刚安装的java

2、安装部署Tomcat

解压Tomcat安装包

创建tomcat软链接

进入到tomcat的bin目录下启动tomcat

进入Tomcat的logs目录,查看tomcat的启动日志cat catalina.out

配置防火墙,放行8080端口的外部访问永久生效,并重载防火墙规则使其生效。

查看使用8080端口的进程以此来确定tomcat进程的状态。

三、配置nginx服务

使用源码包安装nginx及其依赖关系

安装gcc、g++(在Linux系统中,g++叫做gcc-g++)

依次解压、编译源码包代码、生成二进制安装程序、运行二进制服务程序安装包到最后为了不浪费磁盘空间而清理源码包临时文件。

[root@linuxprobe src]# tar xzvf pcre-8.35.tar.gz 
[root@linuxprobe src]# cd pcre-8.35
[root@linuxprobe pcre-8.35]# ./configure --prefix=/usr/local/pcre
[root@linuxprobe pcre-8.35]# make
[root@linuxprobe pcre-8.35]# make install [root@linuxprobe pcre-8.35]# cd /usr/local/src
[root@linuxprobe src]# tar xzvf openssl-1.0.1h.tar.gz
[root@linuxprobe src]# cd openssl-1.0.1h
[root@linuxprobe openssl-1.0.1h]# ./config --prefix=/usr/local/openssl
[root@linuxprobe openssl-1.0.1h]# make
[root@linuxprobe openssl-1.0.1h]# make install openssl软件包安装后默认会在/usr/local/openssl/bin目录中提供很多的可用命令,我们需要像前面的操作那样,将这个目录添加到PATH环境变量中,并写入到配置文件中,最后执行source命令以便让新的PATH环境变量内容可以立即生效:
[root@linuxprobe pcre-8.35]# vim /etc/profile
………………省略部分输出信息………………64 65 for i in /etc/profile.d/*.sh ; do66 if [ -r "$i" ]; then67 if [ "${-#*i}" != "$-" ]; then68 . "$i"69 else70 . "$i" >/dev/null71 fi72 fi73 done74 export PATH=$PATH:/usr/local/mysql/bin:/usr/local/openssl/bin75 unset i76 unset -f pathmunge
[root@linuxprobe pcre-8.35]# source /etc/profile[root@linuxprobe pcre-8.35]# cd /usr/local/src
[root@linuxprobe src]# tar xzvf zlib-1.2.8.tar.gz 
[root@linuxprobe src]# cd zlib-1.2.8
[root@linuxprobe zlib-1.2.8]# ./configure --prefix=/usr/local/zlib
[root@linuxprobe zlib-1.2.8]# make
[root@linuxprobe zlib-1.2.8]# make install在安装部署好具有依赖关系的软件包之后,创建一个用于执行Nginx服务程序的账户。账户名称可以自定义,但一定别忘记,因为在后续需要调用:[root@linuxprobe zlib-1.2.8]# cd ..
[root@linuxprobe src]# useradd www -s /sbin/nologin在使用命令编译Nginx服务程序时,需要设置特别多的参数,其中,--prefix参数用于定义服务程序稍后安装到的位置,--user与--group参数用于指定执行Nginx服务程序的用户名和用户组。在使用参数调用openssl、zlib、pcre软件包时,请写出软件源码包的解压路径,而不是程序的安装路径:
[root@linuxprobe src]# tar xzvf nginx-1.6.0.tar.gz 
[root@linuxprobe src]# cd nginx-1.6.0/
[root@linuxprobe nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.1h --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.35
[root@linuxprobe nginx-1.6.0]# make
[root@linuxprobe nginx-1.6.0]# make install要想启动Nginx服务程序以及将其加入到开机启动项中,也需要有脚本文件。在安装完Nginx软件包之后默认并没有为用户提供脚本文件.我们需要自己创造。[root@linuxprobe nginx-1.6.0]# vim /etc/rc.d/init.d/nginx
#!/bin/bash
# nginx - this script starts and stops the nginx daemon
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`if [ -z "`grep $user /etc/passwd`" ]; thenuseradd -M -s /bin/nologin $userfi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; doif [ `echo $opt | grep '.*-temp-path'` ]; thenvalue=`echo $opt | cut -d "=" -f 2`if [ ! -d "$value" ]; then# echo "creating" $valuemkdir -p $value && chown -R $user $valuefifi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
#configtest || return $?
stop
sleep 1
start
}
reload() {
#configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)rh_status_q && exit 0$1;;
stop)rh_status_q || exit 0$1;;
restart|configtest)
$1
;;
reload)rh_status_q || exit 7$1;;
force-reload)force_reload;;
status)rh_status;;
condrestart|try-restart)rh_status_q || exit 0;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac保存脚本文件后记得为其赋予755权限,以便能够执行这个脚本。然后以绝对路径的方式执行这个脚本,通过restart参数重启Nginx服务程序,最后再使用chkconfig命令将Nginx服务程序添加至开机启动项中。[root@linuxprobe nginx-1.6.0]# chmod 755 /etc/rc.d/init.d/nginx
[root@linuxprobe nginx-1.6.0]# /etc/rc.d/init.d/nginx restart
Restarting nginx (via systemctl):                          [  OK  ]
[root@linuxprobe nginx-1.6.0]# chkconfig nginx on

配置防火墙放行80端口的流量。

在浏览器测试访问,输入服务器的IP地址查看到默认网页。

nginx安装部署成功!!!

四、配置反向代理

修改windows的hosts文件

修改nginx的配置文件

使得修改的配置文件生效,无需重启nginx,实现动态刷新。

在浏览器测试

反向代理实验配置成功!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/798373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

echart 折线图或散点图当横坐标为小数位时,若想显示整数该如何处理?

如图当前是这样的: 横坐标刻度目前是小数位,如果直接将小数位取整则会失去精度,所以我们要做的是刻度即是整数,又能显示小数位对应的数值; 思路就是直接手动设置刻度:设置xAxis的min,max,splitNumber,同时不…

next_permutation(下一个排列)问题

模板 从后往前找到第一次降序的位置,将这个点换成比之前大的最小数,将后面的数字转变为尽量小(转化为升序)。 下一个排列(LeetCode31) class Solution { public int nextGreaterElement(int n) { Stri…

蓝桥杯-冶炼金属(二分求最大最小)

P9240 [蓝桥杯 2023 省 B] 冶炼金属 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 二分做法&#xff1a; #include<bits/stdc.h> using namespace std; #define int long long const int N 1e410; int n,a,b; int v[N],cnt[N]; int check(int x){for(int i1;i<n;i…

火山方舟大模型服务平台调用Demo测试(豆包)

豆包得后台大模型支持为字节得火山方舟&#xff0c;所以想使用豆包的API&#xff0c;直接从这里就可以。 一、首先注册账号&#xff1a; 火山引擎-云上增长新动力 注册完成之后&#xff0c;控制台-账户-API访问密钥 二、找到API测试用例&#xff1a; Skylark-chat API调用…

数组排序(Comparator)

题目 import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();sc.nextLine();Integer[] res new Integer[n1];//使用Integ…

让智能体像孩子一样观察别人学习动作,跨视角技能学习数据集EgoExoLearn来了

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 在探索人工智能边界时&#xff0c;我们时常惊叹于人类孩童的学习能力 —— 可以轻易地将他人…

OLAP 和 OLTP

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 OLTP与OLAP的介绍OLTP&#xff08;on-line transaction processing&#xff09;&#xff1a;联机事务处理OLAP&#xff08;On-Line Analytical Processing&#xff…

SOLIDWORKS在教育领域的应用

随着科技的飞速发展和数字化浪潮的推进&#xff0c;SOLIDWORKS作为一款强大的三维设计软件&#xff0c;其应用领域已经不仅局限于工程设计和制造行业&#xff0c;还逐渐渗透到教育领域中&#xff0c;成为培养学生实践能力和创新思维的重要工具。本文将探讨SOLIDWORKS在教育领域…

MySQL基础学习内容指南

MySQL是一款广泛使用的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;对于数据库初学者来说&#xff0c;掌握MySQL的基础知识是非常重要的。本文将为您介绍MySQL基础学习的核心内容&#xff0c;帮助您快速入门并提升数据库操作能力。 一、MySQL概述 在开…

【JavaEE】_Spring MVC项目获取Cookie

目录 1. Cookie与Session基础知识 1.1 Cookie与Session的区别 2. 使用servlet原生方法获取Cookie 2.2 关于λ表达式遍历法的空指针问题 2.3 Cookie的伪造 3. 使用Spring注解获取Cookie 3.1 获取单个Cookie 3.2 获取多个Cookie 1. Cookie与Session基础知识 在本专栏HTT…

AcWing785. 快速排序

题目 给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行&#xff0c;第一行包含整数 n。 第二行包含 n 个整数&#xff08;所有整数均在 1∼10^9 范围内&#xff09;&#xff0c;表示…

CICD流水线 发布公用jar到maven私仓

3.1 发布公用jar到Maven私仓 1.选择流水线 2.新建流水线 3.选择模版 4.选择代码仓库 5. 调整构建命令 6.新增一个新阶段为 ”发送通知“&#xff0c;这里以邮件通知为例&#xff0c;保存之后&#xff0c;运行该流水线&#xff0c;对应jar就会自动发到我们私仓&#xff0c;并之…

【计算机网络】会话层

负责维护两个会话主机之间链接的建立、管理和终止&#xff0c;以及数据的交换。 会话控制&#xff1a;决策该由谁来传递数据 令牌管理&#xff1a;禁止双方同时执行一个关键动作 同步功能&#xff1a;在一个长的传输过程中设置一些断点&#xff0c;以便系统崩溃后能恢复至崩…

中药配方颗粒备案信息数据库<2.5W+备案>

中药配方颗粒备案信息是指中药配方颗粒生产企业向国家药品监督管理局申报备案的相关信息。备案信息包括中药配方颗粒的名称、备案号、备案时间、备案状态、生产企业、生产地址、规格、包装、执行标准、保质期、不良反应检测、备案省局等信息。 通过对中药配方颗粒备案信息的查…

【Linux】正则表达式实验操作实例

正则表达式是一种强大的工具&#xff0c;用于在文本中查找、匹配和替换特定的字符串模式。 实验目的 掌握正则表达式的表达方式掌握grep/egrep命令的用法掌握sed 命令的用法掌握awk命令的用法 正则表达式 实验目的实验内容实验过程创建grep文件来进行如下操作用sed命令完成下列…

春招-实战项目冲刺直播课

春招-实战项目冲刺直播课 CCtalk 丰富多元的综合内容平台-专业的知识分享与在线教育平台https://www.cctalk.com/m/group/91161801

蓝桥杯刷题-13-子矩阵-二维滑动窗口 ಥ_ಥ

给定一个 n m &#xff08;n 行 m 列&#xff09;的矩阵。 设一个矩阵的价值为其所有数中的最大值和最小值的乘积。求给定矩阵的所有大小为 a b &#xff08;a 行 b 列&#xff09;的子矩阵的价值的和。 答案可能很大&#xff0c;你只需要输出答案对 998244353 取模后的结果。…

Redis 常见面试题

目录 1. Redis是什么&#xff1f;2. Redis优缺点&#xff1f;3. Redis为什么这么快&#xff1f;4. 既然Redis那么快&#xff0c;为什么不用它做主数据库&#xff0c;只用它做缓存&#xff1f;5. Redis的线程模型&#xff1f;6. Redis 采用单线程为什么还这么快&#xff1f;7. R…

Linux——静态库 共享库

1.库文件 1).库文件 库是一组预先编译好的方法的集合; Linux系统存储库的位置一般在/lib 和 /usr/lib (64位系统/usr/lib64) 库的头文件放在/usr/include 2).库的分类 静态库:libxxx.a(命名规则) 共享库:libxxx.so(命名规则) 3).准备文件: //add.c int add(int x,int y) { re…

localStorage封装代码

localStorage封装 JSON.stringfy()和JSON.parse() JSON.stringfy(): 将 JS 对象转化为 JSON 字符串。 const obj { name: John, age: 30 }; const jsonString JSON.stringify(obj); console.log(jsonString); // {"name":"John","age":30}J…