美文网首页
搭建网站服务器 Nginx

搭建网站服务器 Nginx

作者: 风之化身呀 | 来源:发表于2019-01-06 16:16 被阅读10次

0、安装准备

  • 安装
    Nginx 安装配置
    安装完了后,软链一下,以后就可全局运行 nginx 命令
ln -s /usr/local/webserver/nginx/sbin/nginx /usr/local/bin
  • nginx 关键目录
// 诸如 nginx 的配置文件,日志文件等
cd /usr/local/webserver/nginx
  • 几个命令
// 启动 nginx
nginx
// 修改配置文件后重启 nginx
nginx -s reload
// 终止 nginx
nginx -s stop
// 检查 配置文件 语法是否有误
nginx -t -c  **/**.conf

1、语法基础

location

语法: location [=||*|^~|@] /uri/ { … } 或 location @name { … }

  • location 的2种匹配模式
    普通字符串匹配:以=开头或开头无引导字符(~)的规则
    正则匹配:以~或~开头表示正则匹配,~表示正则不区分大小写
    总体的匹配原则是:先匹配普通字符串模式,再匹配正则模式。

一个请求过来后,Nginx匹配这个请求的流程如下:

  • 先查找是否有=开头的精确匹配,如:location = /test/abc/user.do { … }
  • 再查找普通匹配,以 最大前缀 为原则,如有以下两个location,则会匹配后一项
    location /test/ { … }
    location /test/abc { … }
  • 匹配到一个普通格式后,搜索并未结束,而是暂存当前匹配的结果,并继续搜索正则匹配模式
  • 所有正则匹配模式location中找到第一个匹配项后,就以此项为最终匹配结果
    所以正则匹配项匹配规则,受定义的前后顺序影响,但普通匹配模式不会
  • 如果未找到正则匹配项,则以3中缓存的结果为最终匹配结果
  • 如果一个匹配都没搜索到,则返回404
location =/ { … }   // 精准匹配
location / { … }     // 模糊匹配,贪婪原则
location ~ /test/.+.jsp$ { … }  // 正则匹配
location ^~ / { … } //  ^~意思是关闭正则匹配,当搜索到这个普通匹配模式后,将不再继续搜索正则匹配模式

root 与 alias

当资源匹配上 location 时,
root: root + location配置的路径 = 资源在磁盘真实寻找路径
alias: alias = 资源在磁盘真实寻找路径

proxy-pass 中的 /

在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。

假设下面四种情况分别用 http://192.168.1.1/proxy/test.html 进行访问。

第一种:
location /proxy/ {
proxy_pass http://127.0.0.1/;
}
代理到URL:http://127.0.0.1/test.html

第二种(相对于第一种,最后少一个 / )
location /proxy/ {
proxy_pass http://127.0.0.1;
}
代理到URL:http://127.0.0.1/proxy/test.html

第三种:
location /proxy/ {
proxy_pass http://127.0.0.1/aaa/;
}
代理到URL:http://127.0.0.1/aaa/test.html

第四种(相对于第三种,最后少一个 / )
location /proxy/ {
proxy_pass http://127.0.0.1/aaa;
}
代理到URL:http://127.0.0.1/aaatest.html

2、常用配置

2.1 主配置文件

#user www www;                                                    
#nginx进程数,建议设置为等于CPU总核心数。             
worker_processes  1;                                             
#工作模式与连接数上限                           
events {                              
    #单个进程最大连接数(最大连接数=连接数*进程数)         
    worker_connections  1024;         
}                                     
                                      
#设定http服务器                            
http {                                                                    
    #文件扩展名与文件类型映射表                    
    include       mime.types;         
                                 
    #默认文件类型                           
    default_type  application/octet-st
                                      
    error_log  logs/error.log;        
                                      
    sendfile        on;               
                                      
    #防止网络阻塞                           
    tcp_nopush     on;                
                                                                
    #长连接超时时间,单位是秒                     
    keepalive_timeout  65;            
                                      
    #开启gzip压缩输出                       
    gzip  on;                         
                                      
    # 把其他 server 配置写到其他文件,方便管理        
    include ../vhost/*.conf;          
}                                     

2.2 Server 配置

server {
    listen       80;
    server_name  localhost test.ycfeng.site;

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

    location /static/ {
        root /frontend/dist/;
    }
}

2.3 反向代理

server {
    listen 8182;
    server_name localhost;
    location / {
        proxy_pass http://localhost:8082; 
    }
 }

2.4 负载均衡配置

http {
    upstream myproject {
        server 127.0.0.1:8000 weight=3;
        server 127.0.0.1:8001;
        server 127.0.0.1:8002;
        server 127.0.0.1:8003;
    }

    server {
        listen 80;
        server_name www.domain.com;
        location / {
            proxy_pass http://myproject;
        }
    }
}

3、常见问题

  • 401
    往往是路径配置不对
  • 403
    往往是 root 路径无访问权限,chmod a+x /root ;然后 nginx -s reload 一般可以解决

相关文章

网友评论

      本文标题:搭建网站服务器 Nginx

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