Nginx入门(安装+配置文件解析+反向代理)

本篇博文是在看尚硅谷中快速入门Nginx视频时所做的笔记,写的比较浅,而且可能会有错误或者不当的地方,请指正!

1.windows下Nginx的安装


下载地址:http://nginx.org/en/download.html

下载解压就行,然后在cmd中到你解压的文件夹下,运行start nginx命令即可,运行tasklist /fi "imagename eq nginx.exe" 命令即可查看是否成功启,也可访问http://localhost:80查看是否出现以下界面,如能访问则启动成功 。

不成功的情况:最大的可能就是端口被占用无法成功启动,建议修改conf文件夹下的nginx.conf文件中的端口号


2.常用的nginx命令

验证配置是否正确: nginx -t

查看Nginx的版本号:nginx -V

启动Nginx:start nginx

快速停止或关闭Nginx:nginx -s stop

正常停止或关闭Nginx:nginx -s quit

配置文件修改重装载命令:nginx -s reload

查看是否成功启动:tasklist /fi "imagename eq nginx.exe"  


3.配置文件解析

全局块:从配置文件开始到 events 块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行 Nginx服务器的用户(组)、允许生成的worker process 数,进程PID存放路径、日志存放路径和类型以及配置文件的引入等。

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

其中worker_processes 1;是Nginx服务器处理服务的关键配置,值越大,可以支持的并发处理量越多,但是会收到硬件和软件等设备的制约。其他注释掉的信息是错误日志的相关配置信息,pid文件记录nginx主进程的id号。


events块:events块涉及的指令主要影响Nginx服务器与用户的网络连接,常用的设置包括是否开启对多 work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 wordprocess可以同时支持的最大连接教等。

events {
    worker_connections  1024;
}

默认配置为每个work process支持的最大连接数为1024,这部分的配置对Nginx的性能影响较大,在实际中应该灵活配置。


http块:这算是Nginx服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里需要注意的是:http块也可以包括http全局块、server块。

http全局块:http全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

    #设定mime类型,类型由mime.type文件定义
    include       mime.types;
    default_type  application/octet-stream;

    #设定日志的格式
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #使用哪种日志格式
    #access_log  logs/access.log  main;

    #sendfile函数在两个文件描述符之间直接传递数据(完全在内核中操作),从而避免了内核缓冲区和用户缓        
    #冲区之间的数据拷贝,效率很高,这被称为零拷贝
    #是否调用sendfile函数
    sendfile        on;
    #tcp_nopush     on;

    #连接超时时间
    #keepalive_timeout  0;
    keepalive_timeout  65;

    #开启gzip压缩
    #gzip  on;

不懂mime的同学可以查看这边文章“什么是MIME-Type”

server块:这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。每个 http块可以包括多个server块,而每个server块就相当于一个虚拟主机。每个server块也分为全局server 块,以及可以同时包含多个 locaton块。

        listen       8090;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location /tools {
            alias  G:\kjl;
            allow all;
            autoindex on;
        }

其中 listen为端口号,server_name为主机名,location为资源的位置。

4.Nginx配置实例1—反向代理

反向代理:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

实现效果:打开浏览器,在浏览器地址栏输入地址www.123.com,跳转到指定的主页面

具体实现:  

  1. 下载安装tomcat,参考Tomcat的安装,安装完成后启动tomcat,浏览器输入localhost:8080,查看是否成功启动
  2. 在windows系统的host文件进行域名和ip对应关系的配置,host文件的位置为C:\Windows\System32\drivers\etc
  3.  添加你的ip和域名:例如我的192.xxx.xx.xxx     www.123.com(可能需要提供文件修改的权限),此时在浏览器中输入www.123.com:8080则可以进行tomcat的访问
  4.  在nginx中进行请求转发的配置(反向代理配置)  server_name后面改为自己的ip地址,在location中,加入proxy_paxx http://127.0.0.1:8080;
  5.  如果80端口被占用,可查看此篇博文:解决80端口被占用的问题
  6.  现在访问www.123.com可以直接跳转到tomcat服务器的首页

5.Nginx配置实例2—反向代理

实现效果:更改监听端口9001,访问http://127.0.0.1:9001/edu/直接跳转到127.0.0.1:8080,http://127.0.0.1:9001/vod/直接跳转到127.0.0.1:8081;

具体实现:

  1. 在tomcat文件夹中,进入到webapps中,新建一个文件夹为edu和vod,分别放入一个a.html文件,另一个tomcat也是如此
  2. 在nginx中进行请求转发的配置,如下所示:

    3.开放对外访问的端口号

location简单讲解:

location[=|~|~*|^~]uri{

}

1、= :用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。v

2、~:用于表示uri包含正则表达式,并且区分大小写

3、~*用于表示ugi包含正则表达式,并且不区分大小写。v

4、^~:用于不含正则表达式的uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的 location后,立即使用此 location处理请求,而不再使用location块中的正则uri和请求字符串做匹配。
注意:如果uri包含正则表达式,则必须要有~或者~*标识。。
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值