Nginx学习笔记(入门版)

一、Centos下安装Nginx

参考文档

如果机器是第一次安装Nginx,需要在安装Nginx之前设置Nginx的软件包仓库,之后都是通过设置的这个仓库进行安装和更新Nginx

  • 安装一些预先需要的配置
yum install yum-utils
  • 设置yum仓库,在/etc/yum.repos.d创建一个nginx.repo文件
    • 文件内容为
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

默认情况下使用的是稳定版

若要使用开发版,可以通过yum-config-manager --enable nginx-mainline来设置。

  • 安装Nginx
yum install nginx

二、Nginx入门

参考文档

Nginx的配置文件nginx.conf的存放位置(或关系):

  • /usr/local/nginx/conf
  • /etc/nginx
  • /usr/local/etc/nginx

Nginx的启动、停止与重新加载配置文件

启动Nginx

nginx

停止Nginx

# 立即停止
nginx -s stop
# 待nginx处理完正在服务的请求后才会停止
nginx -s quit

重新加载配置文件

nginx -s reload

当配置文件修改之后,若不重启Nginx服务器或者重新加载配置文件,则修改后的配置不会生效。

当使用nginx -s reload重新加载配置文件时,Nginx的主进程会对新的配置文件进行语法检查,并使用新的配置信息;

若上述操作成功:

  • 主进程就会开启新的工作进程
  • 主进程会向旧的工作进程发送消息要求它们停止工作,当工作进程收到停止工作的命令后,便不会再接收新的请求,只会服务于当前正在服务的请求,当所有的请求被处理完之后,旧的工作进程便会被关闭掉。

若上述操作失败:

  • 主进程会回滚发生的改变,依旧使用旧的配置文件中的配置信息

reload的过程中,Nginx服务不会停止。

重新打开日志文件

nginx -s reopen

查看Nginx的版本

nginx -v

三、Nginx作为静态资源服务器

参考文档

  • 准备工作

    • 创建/data/www文件夹并在其中创建一个index.html文件
    <!-- index.html文件内容 -->
    <h1>Hello Nginx</h1>
    
    • 创建/data/images文件夹并在其中放入一些图片资源
  • 配置信息

# 在nginx.conf配置文件的http块中加入一下配置
server {
	# /(前缀) 表示当请求的URI和/匹配时,请求的URI将会和root所指定的路径进行拼接,获取到最终的资源路径
    location / {
            root /data/www;
    }

    location /images {
            root /data;
    }
}
# 当有多个location与请求的URI匹配时,选择前缀较长的location
  • 重新加载Nginx的配置文件
nginx -s reload
  • 测试

四、Nginx作为反向代理服务器

参考文档

  • 准备工作
    • 创建/data/up1文件夹,并在其中创建index.html文件
  • 配置信息
# 代理服务器的信息
server {
		# 处理http://localhost:80请求
        location / {
        		# 配置配代理的服务器的地址
                proxy_pass http://localhost:8080;
        }

        location ~ \.(gif|jpg|png)$ {
                root /data/images;
        }
    }

# 被代理服务器的信息
server{
    listen 8080;
    root /data/up1;

    location / {

    }
}
  • 重新加载配置文件
  • 测试

反向代理案例一

目标:在Windows浏览器中输入www.test.com,页面跳转到Centos中的Tomcat服务器的首页

  • 配置IP地址和域名的映射关系

编辑C:/Windows/System32/drivers/etc/hosts文件,添加一下信息

# IP地址和域名的映射关系
192.168.48.128 www.test.com
  • 配置信息
server {
        listen 80;
        server_name 192.168.48.128;
        
        location / {
        		# 代理服务器的地址
                proxy_pass http://localhost:8080;
                root /data;

                index index.html index.htm;
        }
    }
  • 重新加载配置文件
  • 测试

反向代理案例二

目标:使用nginx反向代理,根据访问的路径跳转到不同端口的服务中

访问 http://192.168.48.128:9001/edu/ 直接跳转到 192.168.48.128:8080
访问 http://192.168.48.128:9001/vod/ 直接跳转到 192.168.48.128:8081

  • 配置
server {
		# 监听9001端口
        listen 9001;

        server_name 192.168.48.128;
        # 利用正则进行匹配,
        location ~ /edu {
        		# 指定负载均衡的地址
                proxy_pass http://localhost:8080;
        }

        location ~ /vod {
                proxy_pass http://localhost:8081;
        }
    }

五、Nginx实现负载均衡

http {
	# 配置服务器的集群,myserver为服务器集群的名字
	# 这里配置的是代理服务器的信息
    upstream myserver{
        server 192.168.48.128:8080 weight=5;
        server 192.168.48.128:8081;
    }

    server {
        listen 80;

        server_name 192.168.48.128;
        location / {
                proxy_pass http://myserver;
        }
    }
}

erver{
server 192.168.48.128:8080 weight=5;
server 192.168.48.128:8081;
}

server {
    listen 80;

    server_name 192.168.48.128;
    location / {
            proxy_pass http://myserver;
    }
}

}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值