nginx 个人总结

nginx 简明教程

安装

nginx 的安装可以使用 apt-get 或者从官网(http://nginx.org/download)下载安装包自行安装。不过两者最后的安装路径是不同的,所以造成后面需要配置的文件路径也是不同的。具体不同如下:

通过下载安装包(nginx-1.9.9.tar.gz)进行的安装,软件路径在 /usr/local/nginx 下

安装方法:

  1. wget http://nginx.org/download/nginx-1.9.9.tar.gz
  2. tar -zxvf nginx-1.9.9.tar.gz
  3. cd nginx-1.9.9/
  4. ./configure:此时如果可能提示诸如 缺少 PCRE Library,通过 sudo apt-get install libpcre3 libpcre3-dev 即可
  5. make
  6. sudo make install

结构介绍: 

  • logs/(日志路径): 包含access.log(正常访问日志),error.log(错误日志),nginx.pid(运行时的 nginx id 号)
  • sbin/(执行路径): 包含 nginx(可执行文件)
  • html/(静态内容路径):index.html(默认的 nginx 欢迎页面,具体在后面配置时介绍)
  • conf/(配置路径):nginx.conf(配置文件)

通过 apt-get 进行的安装, 软件路径在 /etc/nginx 下

  • 可执行文件已经添加到 /usr/sbin/nginx 中,可以直接在命令行执行
  • conf.d/:放置自定义的配置文件
  • sites-available/ sites-enabled/:sites-available 存放系统配置文件,sites-enabled 存放 sites-available 中需要使用的某些配置的连接
  • nginx.conf:nginx 的配置文件,其中 include 了上面的 conf.d/ 和 sites-enabled/ 中的配置

配置

两种安装方式需要配置的东西大致类似,不过细节上还是有一定区别。

通过安装包安装

需要的配置主要就是 /usr/local/nginx/conf/nginx.conf 文件,其中主要结构如下

http {
     # 静态文件映射
     server {
         listen          80;       ------------- 监听的端口
         server_name     www.domain1.com;  ------------- 直接访问的 url
         location / {  ------------- 映射的 url 路径,后续路径将对应路径与 root 指定的根路径的对应路径关联
             index index.html;    ------------- 映射的对应文件
             root  /var/www/domain1.com/htdocs;   ------------- 实际访问的根目录
         }
     }
 
     # 动态访问映射
     server {
         listen          80;
         server_name     www.domain2.com;
         location /test {
             proxy_pass http://127.0.0.1:8051/real_test ------------- 对 www.domain2.com/test 的访问将被转发到本机 8051端口的 real_test 请求上
         }
     }
}

其结构主要通过 http {} 来指定 http 相关内容,server {} 指定每一个映射关系。如果需要负载均衡(存在多个服务),可以通过配置 upstream {} 进行配置。需要注意的是映射时,location /*** 路径最后是否需要添加 / 结尾需要与实际服务关联的路径一致,实际服务有,就加 /;没有就不加。

通过 apt-get 安装

通过系统安装 /etc/nginx/nginx.conf 主要作用是引入 conf.d/ 和 sites-enabled/ 两个文件夹下的配置。

具体的配置和安装包类似不再介绍。不过有几点需要注意:

  • 由于引入顺序的不同,好像 sites-enabled/ 的配置会覆盖 conf.d/;同时由于 sites-enabled/default 中整体监听了 80 端口,可能造成 conf.d/ 中的配置无效。
  • 由于在 /etc/nginx/nginx.conf 中的 include 的操作已经在 http {} 中,所以 conf.d/ 和 sites-enabled/ 中的配置直接应该从 server {} 开始即可。
server {
    listen 80;
    server_name 127.0.0.1;

    location / {
        proxy_pass http://127.0.0.1:8051/api;
    }
}

操作命令

  • nginx -v:查看版本信息
  • nginx -t:检查当前配置是否合法
  • nginx:启动 nginx
  • nginx -s reload|reopen|stop|quit:重新加载配置|重启|停止|退出 nginx

猜你喜欢

转载自blog.csdn.net/a40850273/article/details/107106613
今日推荐