Nginx入门学习

»其他

目录

在Linux系统下安装nginx

  1. 安装第三方环境
    • 安装gcc环境 yum install gcc-c++
    • 安装第三方开发包
      • yum install -y pcre pcre-devel
      • yum install -y zlib zlib-devel
      • yum install -y openssl openssl-devel
  2. nginx源码包传到Linux
  3. 解压缩
  4. 进入nginx目录下使用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
    
  5. 使用make命令,然后使用make install命令,于是在/usr/local目录下出现一个nginx文件夹
  6. cd /usr/local/nginx 看到有三个文件夹
    • conf
    • html
    • sbin
  7. 进入sbin文件夹,使用命令./nginx
  8. 发现出现错误:nginx: [emerg] mkdir() "/var/temp/nginx/client" failed (2: No such file or directory)
  9. 使用命令创建文件目录: mkdir /var/temp/nginx/clien -p
  10. 再次执行./nginx命令,成功,使用ps aux|grep nginx发现有两个进程表示成功。
  11. 使用./nginx -s stop./nginx -s quit停止nginx
  12. 可以使用./nginx -s reload来刷新配置文件

    至此,nginx安装完毕,可以在浏览器输入ip地址查看,默认端口号是80(前提是关闭了防火墙)

配置虚拟主机

通过端口号区分不同网站

实现效果:

浏览器输入同一个域名,但是后面的端口号不同,访问的网站也不同

实现步骤:

进入 nginxconf目录下,有一个nginx.conf文件里面有一段配置

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

这里一个server节点就代表一个虚拟主机,其中listen是端口号,server_nameIProot是访问的文件夹即conf同级目录下的html目录,index是访问的页面。

要想实现通过端口号访问不同的网站,即需要配置多个虚拟主机的节点,并且使端口号和location不同 ,于是在下面加上如下配置

server {
        listen       81;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html-81;
            index  index.html index.htm;
        }
    }

然后在nginx文件夹里面新增一个html-81的文件夹,可以通过直接复制原来的html文件夹,修改名字来简单实现


至此,实现了通过不同端口号来访问不同的虚拟主机

image image

通过域名区分虚拟主机

一个域名只可对应一个IP地址,多个域名可以绑定到同一个IP地址上面,例如通过www.ruanwenjun.com, www.ruanwenjunhaoshuai.com可以访问同一个IP192.168.248.132,当然这上面两个域名实际上不是我的,不过可以这样理解。

实现效果:

通过不同的域名访问同一个nginx服务器,然后转到不同网站。

实现步骤:


至此,实现了为一个IP绑定多个域名,但是不同的域名访问不同的网站。

image image

反向代理

首先理解什么是正向代理?正向代理指的是,客户通过一个服务器来访问网络资源,那么此时这个服务器就是代理服务器,这个过程就是正向代理,代理服务器位于客户和网络之间。

反向代理指的是,网络传来的请求通过代理服务器转发到具体的内部服务器,反向代理服务器位于网络和内部网络的服务器之间,即反向代理服务器不处理请求,只是转发请求,决定将请求转发给哪台服务器

image

nginx实现反向代理

实现效果:

不同的域名访问同一个nginx服务器,然后nginx将不同的域名发来的请求转发到不同的tomcat,即发送不同的域名请求访问不同的Tomcat,但是实际上是通过同一个nginx转发

实现步骤:

即将 www.tomcat-01.com 的请求转发给 192.168.248.132:8080 ,将 www.tomcat-02.com 的请求转发给 192.168.248.132:8081

image image

利用nginx实现负载均衡

负载均衡只的是将同一请求分配给不同的服务器(这些服务器都是一样的可以响应这些请求,服务器集群)从而使服务器不至于因为请求太多而瘫痪。

修改nginx.conf文件的tomcat-02中的配置,增加一条server 192.168.248.132:8080; 即实现对tomcat-02的请求分配给下面两个实际的服务器,后面还可加一个权重weight=2,3,。。。,权重越高分配的请求越多。

upstream tomcat-02 {
	server 192.168.248.132:8081;
	server 192.168.248.132:8080;
}

这样在访问www.tomcat-02.com的时候会将请求均匀分配给上面配置的两个服务器,即有ngnix来实现了负载均衡