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.hqwc.cn/news/597960.html

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

相关文章

[Apple Vision Pro]开源项目 Beautiful Things App Template

1. 技术框架概述: - Beautiful Things App Template是一个为visionOS设计的免费开源软件(FOSS),用于展示3D模型画廊。 2. 定位: - 该模板作为Beautiful Things网站的延伸,旨在为Apple Vision Pro用户…

在实体类中使用JSONObject对象

有时候我们的业务需求可能字段是json格式,这个时候我们的实体类就对应的也应该是json格式,需要使用到JSONObject这个对象,但是可能会使用不了这个对象,那接下来我将简单介绍如何使用这个对象。 以下为我的实体类中的某个字段&…

Linux进程状态深度解析:探索进程的生命周期

文章目录 一、引言1、进程的概念与重要性2、Linux系统下进程状态的意义3、进程状态与系统性能的关系 二、Linux下进程状态概述1、Linux进程状态的分类2、进程状态信息的获取方法 三、Linux下进程状态详解1、运行状态(Running)2、可中断睡眠状态&#xff…

乐健体育刷分----AI运动的站姿风车

一.前情提要 1.本文仅作学习参考不得用于其他不当途径,若有问题后果自负 二.操作 1.打开乐健体育 2.点击AI运动,找到站姿风车 3.摄像头对准以下图片,拖动图片或保持不动均可 (站姿风车2组及以上效果更佳)

14届蓝桥杯省赛 C/C++ B组 T8 整数删除(双向链表,堆)

瞬间定位一个数的左边或者右边,需要用到双向链表。 在过程中不断维护最小值,需要用到堆。 所以定义一个pair类型优先队列,每次取出堆顶进行删除,并且同时让删除元素的左右元素加上其值。 同时需要注意,在删除元素之后…

睿考网:税务师考试怎么报名?

税务师考试怎么报名?对于初次报考的考生来说,首先在“报名系统”中注册账户并进行身份验证。成功注册后遵循系统指引,逐一填写个人基本资料,上传近期所拍的1寸白色背景免冠证件照片,注意照片需要满足规定才可以,否则可…

区块链相关概念

区块链是什么,就算是做计算机技术开发的程序员,100个当中都没有几个能把这个概念理解明白,更不要说讲清楚了。那对于普通人来说,就更扯了。 除了“挖矿”表面意思似乎比较好理解外,其他的基础概念真TMD绕。 去中心化、…

numpy,matplotilib学习(菜鸟教程)

所有内容均来自于: NumPy 教程 | 菜鸟教程 Matplotlib 教程 | 菜鸟教程 numpy模块 numpy.nditer NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式。 for x in np.nditer(a, orderF):Fortran order,即是列序优先&#x…

爬虫 新闻网站 以湖南法治报为例(含详细注释) V1.0

目标网站:湖南法治报 爬取目的:为了获取某一地区更全面的在湖南法治报已发布的宣传新闻稿,同时也让自己的工作更便捷 环境:Pycharm2021,Python3.10, 安装的包:requests,csv&#xff…

PostgreSQL入门到实战-第三弹

PostgreSQL入门到实战 PostgreSQL安装之linux官网地址PostgreSQL概述linux安装PostgreSQL更新计划 PostgreSQL安装之linux 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://www.postgresql.org/PostgreSQL概述 Postg…

SD-WAN企业组网塑造智能网络

云桥通SD-WAN技术正在成为企业网络架构的主流选择,它通过智能管理和控制网络,为客户提供灵活、安全和高效的网络连接,以满足不断增长的业务需求。 云桥通SD-WAN为客户提供的业务能力: A. 提高网络性能 通过智能路由和负载均衡功…

什么牌子开放式耳机好用?优选五大高分好物真诚分享

对于习惯长时间佩戴耳机的朋友来说,入耳式耳机固然能够提供较优质的音质体验。但是,由于其较为封闭的设计以及对耳洞的压迫,舒适感较差,长时间佩戴可能会对听力造成一定的影响。因此,开放式耳机的出现为音乐发烧友们提…