zoukankan      html  css  js  c++  java
  • Nginx 安装及配置

    概念

    安装

    apt-get install nginx # Ubuntu
    yum install nginx -y # CentOS
    

    配置文件

    nginx -t # 检查配置文件正确性 test configuration and exit
    

    主要文件位置

    • which nginx # or whereis nginx:查看主程序文件
    • /etc/init.d/:下创建了启动脚本nginx(需手动配置),支持service nginx start命令
    • /var/log/nginx:日志文件夹,/var/log/nginx/error.log:错误日志文件,/var/log/nginx/access.log:访问日志文件
    • /etc/nginx/nginx.conf:Nginx全局站点配置文件,日志文件可以在/etc/nginx/nginx.conf中配置,默认读取的配置文件
    • /etc/nginx/conf.d:自定义Nginx站点配置文件存放目录
    • /etc/nginx/conf.d/default.conf:网站默认站点配置
    • /usr/share/nginx/html:网站文件默认存放目录
    • sites-available:则是管理大量站点时服务器的一种通用配置。
    • sites-enabled:则是一种单独配置,需要使用enabled时,需要使用ln命令软连接到相应网站。
    sudo ln -s ~/path/to/your/mysite/mysite_nginx.conf /etc/nginx/sites-enabled/
    

    /etc/nginx/nginx.conf中有如下语句:

    	include /etc/nginx/conf.d/*.conf;
    	include /etc/nginx/sites-enabled/*;
    

    可见,配置文件放在sites-avaliable文件夹中,需要创建软连接在sites-enabled中,才会生效。

    server_name的作用其实是当该机器上同时部署了其他域名服务时起作用的。

    如果nginx中只配置一个server域的话,则nginx是不会去进行server_name的匹配的。因为只有一个server域,也就是这有一个虚拟主机,那么肯定是发送到该nginx的所有请求均是要转发到这一个域的,即便做一次匹配也是没有用的。还不如干脆直接就省了。如果一个http域的server域有多个,nginx才会根据$hostname去匹配server_name进而把请求转发到匹配的server域中。此时的匹配会按照匹配的优先级进行,一旦匹配成功进不会再进行匹配

    参考:

    location接受两个参数,一个字符串或者正则,和一段代码。字符串用于匹配某个特定目录。

         location / {
             autoindex on;
             autoindex_exact_size off; # 默认是开,以b为单位,关闭后,会显示MB GB
    

    注意点

    nginx 默认的账号权限太低,没有部分文件的访问权限,导致访问时出现 403 Forbidden

    配置文件 /etc/nginx/nginx.conf

    user  nginx;
    

    应该修改为:

    user root;
    

    Nginx运行

    /usr/sbin/nginx -h # 查看帮助
    
    /usr/sbin/nginx -c /etc/nginx/nginx.conf # 默认也会读取该配置文件,所以,可以不加-c参数
    nginx # 运行/usr/sbin目录下的nginx的命令
    nginx -s reload # 运行这句话的前提是,nginx正在运行,重载,如果之前运行了stop,那么会提示出错  "/run/nginx.pid" failed
    service nginx start
    service nginx status
    

    FAQ

    Q1:nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)

    Q2:中文乱码

    Nginx的server的配置内容,增加一行:charset utf-8;

    Q3:权限问题导致Nginx 403 Forbidden错误的解决方法

    参考

  • 相关阅读:
    div 和 span的区别
    div 和 span的区别
    javascript类的定义及成员修改
    C# bho操作dom 同时带有隐藏工具栏功能,菜单栏
    javascript类的定义及成员修改
    数据库原理8个例子sql语句
    数据库原理8个例子sql语句
    C++的声明和定义的出别
    C++的声明和定义的出别
    Visual Studio 添加图标和版本
  • 原文地址:https://www.cnblogs.com/michael-xiang/p/10467279.html
Copyright © 2011-2022 走看看