本帖最后由 山东_朱文鑫 于 2023-6-5 23:59 编辑
大家好,我是大白,大凡人不可恃,有所恃,必败于所恃。善泅者溺,善骑者堕,理所必然。依旧感谢各位小伙伴的一路支持与陪伴。
本篇借之前我们对Nginx的详细介绍文章两篇进行了学习,今天因为托管云项目刚好有一个虚拟机我们进行Nginx的学习使用,不过客户说挺不错的,哈哈哈,,那么今天我们就以Nginx的两篇学习进行署配置代码需求实现详解,今天学习一下Nginx如何配置实现吧,芜湖~~!
本次部署我使用的Centos系统:
一、Nginx基本部署安装:
1.1环境准备:
模拟工具:托管云Centos虚拟机 操作系统:CentOS-6.10-x86_64-bin-DVD1.iso、纯净安装、桌面版 内存大小:2GB 连接工具:SecureCRT
1.2安装依赖:
- [root@wuhu ~]# yum install -y gcc gcc-c++ make libtool wget pcre pcre-devel zlib zlib-devel openssl openssl-devel
复制代码
1.3、Nginx下载
- [root@wuhu ~]# wget http://nginx.org/download/nginx-1.18.0.tar.gz
复制代码
1.4、Nginx解压
- [root@wuhu ~]# tar -zxvf nginx-1.18.0.tar.gz
复制代码
1.5、Nginx安装
- [root@wuhu ~]# cd nginx-1.18.0
- [root@wuhu nginx-1.18.0]# ./configure
- [root@wuhu nginx-1.18.0]# make && make install
复制代码
注意:安装完成后的路径为:/usr/local/nginx
1.6、Nginx命令
普通启动服务:/usr/local/nginx/sbin/nginx
配置文件启动:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
·暴力停止服务:/usr/local/nginx/sbin/nginx -s stop
·优雅停止服务:/usr/local/nginx/sbin/nginx -s quit
·检查配置文件:/usr/local/nginx/sbin/nginx -t
·重新加载配置:/usr/local/nginx/sbin/nginx -s reload
·查看相关进程:ps -ef | grep nginx
1.7、开放防火墙
- [root@wuhu ~]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
- [root@wuhu ~]# /etc/rc.d/init.d/iptables save
- iptables:将防火墙规则保存到 /etc/sysconfig/iptables:[确定]
复制代码
1.8、启动后效果
之前我们也说过Nginx不仅可以做反向代理,还能用作正向代理来进行上网等功能,但是我们主要针对反向代理需求进行配置处理。
二、Nginx配置反向代理实例1:
2.1、实现需求
2.2、实现思路图示:
2.3、实现步骤
步骤一:修改Windows中的hosts域名映射
复制“C:\Windows\System32\drivers\etc\hosts”到桌面,右键记事本打开,在里边加上以下代码保存,然后再复制回去,不要直接修改,会不让保存!
- #虚拟机域名 映射的网址
- 192.168.206.128 www.123.com
复制代码
步骤二:修改Nginx中的配置文件并启动
- [root@wuhu ~]# vi /usr/local/nginx/conf/nginx.conf
复制代码
nginx.conf配置:
- server {
- listen 80;
- server_name xxx.xxx.xxx.xxx; ##IP地址
- #charset koi8-r;
- #access_log logs/host.access.log main;
- location / {
- proxy_pass http:127.0.0.1:8080;
- root html;
- index index.html index.htm;
- }
复制代码
- [root@wuhu~]# /usr/local/nginx/sbin/nginx
复制代码
步骤三:下载Tomcat、解压Tomcat、安装Tomcat、启动Tomcat
注意:Tomcat启动需要JDK,在这里我没有安装,使用系统自带的OpenJDK Runtime Environment (rhel-2.6.14.10.el6-x86_64 u181-b00)
下载:
- [root@wuhu ~]# wget https://mirror.bit.edu.cn/apache ... mcat-7.0.105.tar.gz
复制代码
解压:
- [root@wuhu ~]# tar -zxvf apache-tomcat-7.0.105.tar.gz
复制代码
安装:
- [root@wuhu ~]# mv apache-tomcat-7.0.105 /usr/local/tomcat
复制代码
启动:
- [root@wuhu ~]# /usr/local/tomcat/bin/startup.sh
复制代码
添加到防火墙:
- [root@wuhu ~]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
- [root@wuhu ~]# /etc/rc.d/init.d/iptables save
复制代码
如果关闭请用:
- [root@wuhu ~]# /usr/local/tomcat/bin/shutdown.sh
复制代码
2.4、关闭服务
- [root@wuhu ~]# /usr/local/nginx/sbin/nginx -s quit
- [root@wuhu ~]# /usr/local/tomcat/bin/shutdown.sh
复制代码
三、Nginx配置反向代理实例2
3.1、实现需求
使用Nginx反向代理,根据访问的路径跳转到不同端口的服务中。
3.2、实现思路图示
3.3、实现步骤
步骤一:修改Nginx的配置文件,然后启动
- [root@wuhu ~]# vi /usr/local/nginx/conf/nginx.conf
复制代码
- server {
- listen 80;
- server_name xxx.xxx.xxx.xxx;##【IP地址】
- #charset koi8-r;
- #access_log logs/host.access.log main;
- location ~ /edu/ {
- proxy_pass http://127.0.0.1:8080;
- }
- location ~ /vod/ {
- proxy_pass http://127.0.0.1:8081;
- }
复制代码
- [root@wuhu ~]# /usr/local/nginx/sbin/nginx
复制代码
步骤二:拷贝两个Tomcat,将其中一个的端口信息修改为8081,开启防火墙,然后分别启动这两台Tomcat
解压:
- [root@wuhu ~]# tar -zxvf apache-tomcat-7.0.105.tar.gz
- [root@wuhu ~]# mv apache-tomcat-7.0.105 /usr/local/tomcat1
- [root@wuhu ~]# tar -zxvf apache-tomcat-7.0.105.tar.gz
- [root@wuhu ~]# mv apache-tomcat-7.0.105 /usr/local/tomcat2
复制代码
删除:
- [root@wuhu ~]# rm -f /usr/local/tomcat2/conf/server.xml
复制代码
添加:
- [root@wuhu ~]# vi /usr/local/tomcat2/conf/server.xml
复制代码
开启Tomcat2的防火墙:
- [root@wuhu ~]# /sbin/iptables -I INPUT -p tcp --dport 8081 -j ACCEPT
- [root@wuhu ~]# /etc/rc.d/init.d/iptables save
复制代码
在每一个Tomcat的WebApps中创建一个文件夹和一个a.html文件:
- [root@wuhu ~]# mkdir -p /usr/local/tomcat1/webapps/edu
- [root@wuhu ~]# echo "<h1>This is 8080 Port</h1>" > /usr/local/tomcat1/webapps/edu/a.html
- [root@wuhu ~]# mkdir -p /usr/local/tomcat2/webapps/vod
- [root@wuhu ~]# echo "<h1>This is 8081 Port</h1>" > /usr/local/tomcat2/webapps/vod/a.html
复制代码
启动:
- [root@wuhu ~]# /usr/local/tomcat1/bin/startup.sh
- [root@wuhu ~]# /usr/local/tomcat2/bin/startup.sh
复制代码
步骤三:打开本机浏览器进行测试
3.4、关闭服务
- [root@wuhu ~]# /usr/local/nginx/sbin/nginx -s quit
- [root@wuhu ~]# /usr/local/tomcat1/bin/shutdown.sh
- [root@wuhu ~]# /usr/local/tomcat2/bin/shutdown.sh
复制代码
四、Nginx的负载均衡
客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服务器处理完毕后,再将结果返回给客户端。单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。
4.2、实现效果
4.3、实现思路图示
4.4、实现步骤
- [root@wuhu ~]# vi /usr/local/nginx/conf/nginx.conf
复制代码
- upstream myserver {
- server xxx.xxx.xxx.xxx:8080;
- server xxx.xxx.xxx.xxx:8081;
- }
- server {
- listen 80;
- server_name xxx.xxx.xxx.xxx;
- #charset koi8-r;
- #access_log logs/host.access.log main;
- location / {
- proxy_pass http://myserver;
- }
复制代码
- [root@wuhu ~]# /usr/local/nginx/sbin/nginx
复制代码
第二步:在Tomcat2的webapps文件夹中,创建一个edu文件夹,在里边创建a.html
创建:
- [root@wuhu ~]# mkdir -p /usr/local/tomcat2/webapps/edu
- [root@wuhu ~]# echo "<h1>This is 8081 Port</h1>" > /usr/local/tomcat2/webapps/edu/a.html
复制代码
启动:
- [root@wuhu ~]# /usr/local/tomcat1/bin/startup.sh
- [root@wuhu ~]# /usr/local/tomcat2/bin/startup.sh
复制代码
第三步:测试效果
4.5、关闭服务
- [root@wuhu ~]# /usr/local/nginx/sbin/nginx -s quit
- [root@wuhu ~]# /usr/local/tomcat1/bin/shutdown.sh
- [root@wuhu ~]# /usr/local/tomcat2/bin/shutdown.sh
复制代码
五、Nginx动静分离
5.1、Nginx动静分离
Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat处理动态页面。
一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案。
一种方法就是动态跟静态文件混合在一起发布,通过Nginx来分开。
5.2、实现需求
如果不设置动静分离,默认会通过Nginx的反向代理去找Tomcat对应的资源,现在我们在根目录下创建一个/data/www/文件夹,里边放上静态资源,比如一个html页面,在8080的那台Tomcat的WebApps下也创建一个www目录,同样是放一个静态资源,当输入这个静态资源的请求时,访问到的是/data/www中的数据。
5.3、实现思路图示
5.4、实现步骤
第一步:创建静态资源文件,为了对比,Tomcat中也放一个
- [root@wuhu ~]# mkdir -p /data/www/
- [root@wuhu ~]# mkdir -p /usr/local/tomcat/webapps/ROOT/www
- [root@wuhu ~]# echo "<h1>/data/www/a.html</h1>" > /data/www/a.html
- [root@wuhu ~]# echo "<h1>/usr/local/tomcat/webapps/ROOT/www/a.html</h1>" > /usr/local/tomcat/webapps/ROOT/www/a.html
复制代码
第二步:修改Nginx的配置文件
- [root@wuhu ~]# vi /usr/local/nginx/conf/nginx.conf
复制代码
- server {
- listen 80;
- server_name xxx.xxx.xxx.xxx;
- #charset koi8-r;
- #access_log logs/host.access.log main;
- location /www/ {
- root /data/;
- index index.html index.htm;
- }
复制代码
- [root@wuhu ~]# /usr/local/nginx/sbin/nginx
复制代码
第三步:启动Tomcat
- [root@wuhu ~]# /usr/local/tomcat/bin/startup.sh
复制代码
第四步:启动浏览器进行测试
5.5、关闭服务
- [root@wuhu ~]# /usr/local/nginx/sbin/nginx -s quit
- [root@wuhu ~]# /usr/local/tomcat/bin/shutdown.sh
复制代码
以上就是本次的托管云虚拟机Nginx需求配置详解篇一,因为此次搞的有点多,展开进行描述发现比较长那我们就分多篇进行完成讲解部署的详解,感谢大佬们的参阅,此贴先到这里后续会带上更加优质的帖子,感谢大家!
励志分享超清壁纸语句~~:
要做到坚韧不拔,最要紧的是坚持到底。——陀思妥耶夫斯基
好的今天就到这里,老样子,感谢各位大神的参阅,孩子为了挣豆子不容易,孩子家里穷没豆子吃饭了!!! |