Nginx入门

作者: elef | 来源:发表于2018-12-17 13:17 被阅读77次

    这篇教程主要讲解的是如果启用和停止 nginx ,和重新加载配置,描述配置文件的基本结构和怎样搭建一个 nginx 静态服务器,怎样配置 nginx 作为一个代理服务器来。

    参考

    安装nginx

    先安装 Nginx for Windows 点击这里下载,下面的例子是将下载的压缩包接到C盘根目录

    cd c:\
    unzip nginx-1.15.7.zip
    cd nginx-1.15.7
    start nginx
    

    执行命令:tasklist 可以查看到Nginx的进程

    C:\nginx-1.15.7>tasklist /fi "imagename eq nginx.exe"
    
    Image Name           PID Session Name     Session#    Mem Usage
    =============== ======== ============== ========== ============
    nginx.exe            652 Console                 0      2 780 K
    nginx.exe           1332 Console                 0      3 112 K
    

    nginx 有一个主进程和其他子进程。主进程的主要工作是加载和执行配置文件,并且驻留子进程。子进程用来作为实际的请求处理。
    如果nginx没有启动成功,可以查看 logs\error.log。
    conf/nginx.conf 配置了nginx使用的各种文件路径,上面的例子nginx部署在C:\nginx-1.15.7. 目录下,配置文件中的路径必须采用Unix风格的路径写法。

    access_log   logs/site.log;
    root         C:/web/html;
    

    如果, nginx 已经开启,那么它就可以通过使用 -s 参数的可执行命令控制。使用下列格式:

    nginx -s stop 快速关闭
    nginx -s quit 等待处理完成后关闭
    nginx -s reload 重新加载配置文件,相当于重启
    nginx -s reopen 重新打开日志文件

    配置文件结构

    nginx 是由一些模块组成,我们一般在配置文件中使用一些具体的指令来控制它们。指令被分为简单指令和块级命令。一个简单的指令是由名字和参数组成,中间用空格分开,并以分号结尾。例如:

    // 简单指令
    root /data/www;

    块级指令和简单指令一样有着类似的结构,但是末尾不是分号而是用 {} 大括号包裹的额外指令集。如果一个块级指令的大括号里有其他指令,则它被叫做一个上下文(比如:eventshttpserver,和 location)。在配置文件中,没有放在任何上下文中的指令都是处在主上下文中。events 和 http 的指令是放在主上下文中,server 放在 http 中, location 放在 server 中。
    以 # 开头的行,会被当做注释。

    # this is a comment
    events {
      worker_connections  4096;  ## Default: 1024
    }
    http {
    server {
    listen       80;
    server_name  domain1.com www.domain1.com;
    access_log   logs/domain1.access.log  main;
    root         html;
         }
    }
    

    静态服务器

    修改nginx.conf,在http节点下 增加如下 代码:

        server{
          listen       80;   #监听端口,基于IP配置的时候变更此处,比如192.168.1.100:8080;
          server_name  demo.com;  #主机域名,实际项目发布的话,填公网上的域名,本地部署的话,可以在C:\Windows\System32\drivers\etc\hosts文件中添加IP和域名的映射
          location / {      #映射解析,/代表根路径,此处解析还有正则表达式的解析方式,具体请参考http://tengine.taobao.org/nginx_docs/cn/docs/http/ngx_http_core_module.html#location
             root   E:\git.demo\htmlsample-master;   #工程所在路径
             index  index.html index.htm;  #首页(默认页)
          }
         }
    

    确保上面的目录存在,并且新建一些文件,重启nginx服务 nginx -s reload ,打开浏览器 查看 输入 demo.com

    静态资源服务器

    搭建简易的代理服务

    server{
          listen       80;   
          server_name  refine.com; 
              location / {
                 proxy_pass http://frame.apps.com;
                 index  index.html index.htm;  #首页(默认页)
              }
              location /app1 {
                 rewrite  ^/app1/(.*)$ /S1 break;
                 proxy_pass http://app1.apps.com;
                 index  index.html index.htm;  #首页(默认页)
              }
              location /app2 {
                 rewrite  ^/app2/(.*)$ /S1 break;
                 proxy_pass http://app2.apps.com;
                 index  index.html index.htm;  #首页(默认页)
              }
         }
    
    通过代理服务器将跨域的应用整合到同域下

    相关文章

      网友评论

        本文标题:Nginx入门

        本文链接:https://www.haomeiwen.com/subject/qsiqkqtx.html