Nginx学习笔记

Nginx介绍

是一款反向代理服务器,用来代理服务器。

还可以作为电子邮件(IMAP、POP3)代理服务器

由俄罗斯的一位程序员开发

优点:

并发高,能够支持5w并发连接

cpu、内存等资源消耗非常低

运行非常稳定

Nginx应用场景

1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

2、虚拟主机。可以实现一台服务器虚拟出多个网站。例如个人网站使用给的虚拟主机。

3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要多态服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载过高宕机而某台服务器闲置的情况。

Linux下安装Nginx

一般都是独立的机器安装Nginx、mysql、redis、tomcat这些软件

1、下载对应的tar.gz包到服务器上

2、安装依赖环境

yum install gcc-c++
yum install -y pcre pcre-devel # 解析正则表达式
yum install -y zlib zlib-devel # 解压缩
yum install -y openssl openssl-devel # nginx支持http,https(在ssl协议上传输http),所以需要openssl库。

3、解压缩

tar -zxvf nginx-1.8.0.tar.gz

4、安装

# 执行以下命令,使用configure命令创建makefile文件
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

在解压目录中使用

make
make install

5、启动Nginx与访问

# 启动之前需要创建上面指定的临时文件目录
mkdir /var/temp/nginx/client -p
cd /usr/local/nginx/sbin
./nginx # 启动nginx
ps aux | grep nginx # 查看进程
./nginx -s stop # 杀进程方式停止nginx
./nginx -s quit # 保存配置,做各种工作后正常退出nginx
./nginx -s reload # 刷新配置文件

Nginx功能1:静态资源的部署

使用Editplus可以通过配置,连接到Linux的文件系统。

将nginx.conf文件中的server部分修改为:

server {
        listen       81; # 默认端口号 判断端口号是否匹配
        server_name  localhost; # 域名或者IP,如果请求的域名是这个名称,则往下执行获取资源,不是则不会往下执行。

        location / {
            root   index; # 默认访问的资源目录
            index  index.html index.htm; #默认访问资源名称
        }

        
        error_page   500 502 503 504  /50x.html; # 错误页面
        location = /50x.html {
            root   html;
        }
    }

问题:虚拟机Linux中可以访问启动的端口,但是在外面无法访问

出现这种问题,一般都是防火墙的原因。

 cd /etc/sysconfig
 vim iptables
 # 把需要开放的端口放到默认开放的ssh的22端口下一行即可
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 82 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
service iptables restart # 修改防火墙配置后,一定要重启防火墙才会生效

SSH:安全外壳协议,Secure Shell的缩写,SSH是建立在应用层基础上的安全协议。SSH是较可靠的,专为远程登陆会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。

配置虚拟主机

Nginx功能2:端口绑定

修改nginx.conf文件,中的listen,与请求的端口对应即可。

server {
        listen       81; # 监听的端口
        server_name  localhost; # 域名或ip
        location / {	# 访问路径配置
            root   index;# 根目录
            index  index.html index.htm; # 默认首页
        }
        error_page   500 502 503 504  /50x.html;	# 错误页面
        location = /50x.html {
            root   html;
        }
    }


     server {
        listen       82; # 监听的端口
        server_name  localhost; # 域名或ip
        location / {	# 访问路径配置
            root   regist;# 根目录
            index  regist.html; # 默认首页
        }
        error_page   500 502 503 504  /50x.html;	# 错误页面
        location = /50x.html {
            root   html;
        }

        
    }

访问出现对应界面即可:

http://192.168.31.129:81

http://192.168.31.129:82

Nginx功能2:域名绑定

做DNS,修改C:\Windows\System32\drivers\etc\hosts文件

192.168.31.129 www.hmtraval.com
192.168.31.129 regist.hmtraval.com

在nginx.conf中配置server_name,为请求中对应的域名即可访问到对应的资源:

 server {
        listen       80; # 默认端口号
        server_name  www.hmtraval.com; # 域名或者IP

        location / {
            root   index; # 默认访问的资源目录
            index  index.html; #默认访问资源名称
        }

        
        error_page   500 502 503 504  /50x.html; # 错误页面
        location = /50x.html {
            root   html;
        }
    }

    server {
        listen       80; # 默认端口号
        server_name  regist.hmtraval.com; # 域名或者IP

        location / {
            root   regist; # 默认访问的资源目录
            index  regist.html; #默认访问资源名称
        }

        
        error_page   500 502 503 504  /50x.html; # 错误页面
        location = /50x.html {
            root   html;
        }
    }

修改完nginx.conf文件后,要记得:

./nginx -s reload # 刷新nginx配置,否则不会生效

Nginx功能3:反向代理

反向代理介绍

正向代理:

代理的是客户端

1658580300067

反向代理:

代理的是服务端

1658580330040

使用方向代理服务器的好处:

1658580482518

配置反向代理准备

在Linux中,启动tomcat,部署一个war项目。

访问http://192.168.31.129:8080 可以访问到即可

反向代理配置

   upstream tomcat-travel{
	   server 192.168.177.129:8080;
    }

    server {
        listen       80; # 监听的端口
        server_name  www.hmtravel.com; # 域名或ip
        location / {	# 访问路径配置
            # root   index;# 根目录
	    proxy_pass http://tomcat-travel;
        index  index.html index.htm; # 默认首页
    }
}

访问:http://www.hmtravel.com 测试

Nginx功能4:负载均衡

如果并发要求比较高,需要做tomcat集群,如下图所示:

1658582060857

1、复制几份刚刚部署好的tomcat

drwxr-xr-x. 9 root root    4096 718 04:31 apache-tomcat-7.0.57
-rw-r--r--. 1 root root 8900571 718 04:30 apache-tomcat-7.0.57.tar.gz
drwxr-xr-x. 9 root root    4096 718 04:34 apache-tomcat-7.0.86
-rw-r--r--. 1 root root 9044537 718 04:34 apache-tomcat-7.0.86.tar.gz
[root@itheima tomcat]# cp -r apache-tomcat-7.0.57 tomcat1
[root@itheima tomcat]# cp -r apache-tomcat-7.0.57 tomcat2
[root@itheima tomcat]# cp -r apache-tomcat-7.0.57 tomcat3

2、修改复制的tomcat的端口

在editplus中,通过ftp连接,修改。

在server.xml文件中,几乎所有的端口都要修改。

可以在上一个tomcat的基础上,+1即可。

1658582691457

3、在nginx的nginx.conf配置文件中,修改:

 upstream tomcat-traval {
	server 192.168.31.129:8080; # 这样每个服务器访问到的概率都是相同的
	server 192.168.31.129:8081;
	server 192.168.31.129:8082;
 }
 # 如果需要让不同的服务器承载的访问量不同
 upstream tomcat-traval {
	server 192.168.31.129:8080 weight=2; # 默认权重是1,这样修改后:2:1:1,也就是第一台占一半
	server 192.168.31.129:8081;
	server 192.168.31.129:8082;
 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值