nginx相关

1.下载:http://nginx.org/en/download.html
下载Stable version(稳定版本)

2.将下载完成的nginx-1.20.2.tar.gz放到linux环境下/home目录

3.将包解压,然后进入到解压后的目录
tar -zxvf nginx-1.20.2.tar.gz

4.安装相关环境
yum -y install gcc gcc-c++ autoconf automake make

5.配置基本信息(在nginx的解压目录下执行)
./configure --prefix=/usr/local/nginx-1.20.2 --with-http_ssl_module --with-http_stub_status_module

(1)报错

<1>./configure: error: the HTTP rewrite module requires the PCRE library.

安装:yum -y install pcre-devel

<2>./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library

yum -y install openssl openssl-devel

执行成功后再次执行

./configure --prefix=/usr/local/nginx-1.20.2 --with-http_ssl_module --with-http_stub_status_module

6.进行编译安装(在nginx解压目录下执行)
make & make install

7.进入到安装目录里/usr/local/nginx-1.20.2
进入到sbin目录,执行启动命令
启动:./nginx
关闭:./nginx -s stop
重新加载:./nginx -s reload

8.验证
访问ip:80

页面显示:Welcome to nginx!
 

Nginx负载均衡配置
vi ../conf/nginx.conf

在http模块添加:三个localhost 是三台机器
    upstream Test.com{
        server localhost:8081;
        server localhost:8081;
        server localhost:8081;
    }
     
     
     
    server {
        #请求nginx的端口
        listen       8090;
        #请求nginx的ip
        server_name  localhost;
        
        #charset koi8-r;
        
        #access_log  logs/host.access.log  main;
        
        location /entry/ {
        # root   html;
            #index  index.html index.htm;
            proxy_pass http://Test.com/Test/entry;
        }
        
        location /busin/ {
        # root   html;
        #index  index.html index.htm;
        proxy_pass http://Test.com/Test/busin;
        }
        
    }

解析:
proxy_pass http://Test.com/Test/entry;
Test.com 为upstream 的名称,代表拼接的机器地址为upstream配置的地址
/Test/entry 为实际项目的上下文

请求nginx的上下文为:
http://localhost:8090/busin/
http://localhost:8090/entry/

location匹配命令解释
参数    解释
空    location 后没有参数直接跟着 标准 URI,表示前缀匹配,代表跟请求中的 URI 从头开始匹配。
=    用于标准 URI 前,要求请求字符串与其精准匹配,成功则立即处理,nginx停止搜索其他匹配。
^~    用于标准 URI 前,并要求一旦匹配到就会立即处理,不再去匹配其他的那些个正则 URI,一般用来匹配目录
~    用于正则 URI 前,表示 URI 包含正则表达式, 区分大小写
~*    用于正则 URI 前, 表示 URI 包含正则表达式, 不区分大小写
@    @ 定义一个命名的 location,@ 定义的locaiton名字一般用在内部定向,例如error_page, try_files命令中。它的功能类似于编程中的goto。

location  = / {
    # 只精准匹配 / 的查询.
  [ configuration A ] 
}
# 匹配成功: / 

location / {
    # 匹配任何请求,因为所有请求都是以”/“开始
    # 但是更长字符匹配或者正则表达式匹配会优先匹配
  [ configuration B ] 
}
#匹配成功:/index.html

location /documents {
    # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索/
    # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条/
  [ configuration C ] 
}
# 匹配成功:/documents/document.html
# 匹配成功:/documents/abc

location ~ /documents/ABC {
    # 区分大小写的正则匹配
    # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索/
    # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条/
  [ configuration CC ] 
}

location ^~ /images/ {
    # 匹配任何以 /images/ 开头的地址,匹配符合以后,立即停止往下搜索正则,采用这一条。/
  [ configuration D ] 
}
# 成功匹配:/images/a.gif

location ~* \.(gif|jpg|jpeg)$ {
    # 匹配所有以 .gif、.jpg 或 .jpeg 结尾的请求,不区分大小写
    # 然而,所有请求 /images/ 下的图片会被 [ config D ]  处理,因为 ^~ 到达不了这一条正则/
    [ configuration E ] 
}
# 成功匹配:/documents/a.jpg

location /images/ {
    # 字符匹配到 /images/,继续往下,会发现 ^~ 存在/
  [ configuration F ] 
}

location /images/abc {
    # 最长字符匹配到 /images/abc,继续往下,会发现 ^~ 存在/
    # F与G的放置顺序是没有关系的/
  [ configuration G ] 
}

location ~ /images/abc/ {
    # 只有去掉 [ config D ] 才有效:先最长匹配 [ config G ] 开头的地址,继续往下搜索,匹配到这一条正则,采用/
    [ configuration H ] 
}

你可能感兴趣的:(nginx,服务器,运维)