CentOS 7.6安装与Nginx的配置文件详解

一、安装Nginx需要的环境库 注:所有命令均在root权限下执行 项目首先我们需要安装gcc、gcc-c++、zlib、pcre 和openssl。 安装gc

一、安装Nginx需要的环境库

注:所有命令均在root权限下执行
  • 项目首先我们需要安装gcc、gcc-c++、zlib、pcre 和openssl。
  1. 安装gcc gcc-c++;
yum install -y gcc gcc-c++
  1. 下载安装pcre;
 cd /usr/local/
 wget http://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz
 tar -zxvf pcre-8.45.tar.gz
 cd pcre-8.45
 ./configure
 make && make install
  1. 下载安装openssl;
 cd /usr/local/
 wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz --no-check-certificate
 tar -zxvf openssl-1.1.1t.tar.gz
 cd openssl-1.1.1t
 ./config
 make && make install

注:wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz 后面记得一定加上–no-check-certificate,不然要报错。显示www.openssl.org上颁发的证书已经过期无法验证,手动狗头。

直接下载报错

  1. 下载安装zlib;
 cd /usr/local/
 wget http://zlib.net/zlib-1.2.13.tar.gz
 tar -zxvf zlib-1.2.13.tar.gz
 cd zlib-1.2.13
 ./configure
 make && make install

二、安装Ngnix

  1. 下载安装Nginx;
 cd /usr/local/
 wget http://nginx.org/download/nginx-1.23.3.tar.gz
 tar -zxvf nginx-1.23.3.tar.gz
 cd nginx-1.23.3
 ./configure  --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.45
 make && make install
  1. 创建ssl的软链接,不然启动nginx会报错;
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

报错图片如下:
创建软链接之前启动报错

三、启动Nginx

  1. 启动nginx
/usr/local/nginx/sbin/nginx

测试一下nginx,从别台机器访问一下服务器的IP,出现“Welcome to nginx!”页面就说明成功了;如果访问不到页面但是可以ping通服务器的话可能是开启了防火墙,关闭就行。
在这里插入图片描述
关闭防火墙

systemctl stop firewalld.service

关闭防火墙开机自启

systemctl disable firewalld.service

四、介绍一下Nginx命令

  1. 启动nginx服务
/usr/local/nginx/sbin/nginx
  1. 重启nginx服务
/usr/local/nginx/sbin/nginx –s reload
  1. 停止nginx服务
/usr/local/nginx/sbin/nginx –s stop
  1. 强制关闭nginx服务
pkill nginx

五、介绍一下Nginx的配置

  1. nginx.conf配置文件介绍
#nginx配置
#user  nobody;
worker_processes  1;    #服务器并发处理服务关键配置
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;   #最大连接数为 1024.
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;  #http头压缩
    #正向代理配置
    server {    
        listen       8080;  # 代理监听端口
        resolver 114.114.114.114; #代理DNS配置
        #charset koi8-r;
        access_log  /home/lich/logs/fproxy.access.log;  #accesslog输出路径
        error_log /home/lich/logs/fproxy.error.log;     #errorlog输出路径
        location / {
            proxy_pass $scheme://$host$request_uri;     # 配置正向代理参数
            proxy_set_header Host $http_host;           # 解决如果URL中带"."后Nginx 503错误
            proxy_buffers 256 4k;   # 配置缓存大小
            proxy_max_temp_file_size 0;     # 关闭磁盘缓存读写减少I/O
            proxy_connect_timeout 30;       # 代理连接超时时间
            # 配置代理服务器HTTP状态缓存时间
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 301 1h;
            proxy_cache_valid any 1m;
        }
    }
    #反向代理配置
    server {
        listen       80;
        server_name  test.test.com;   #代理转发域名配置
        access_log  /home/lich/logs/rproxy.access.log;
        error_log /home/lich/logs/rproxy.error.log;
        location / {
            proxy_pass http://172.16.113.1:8001;    #代理到后段实际应用服务器地址
            index  index.html index.htm index.jsp;
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
  1. 监听配置用法
listen *:80 | *:8080        #监听所有80端口和8080端口
listen IP_address:port     #监听指定的地址和端口号
listen IP_address          #监听指定ip地址所有端口
listen port                 #监听该端口的所有IP连接
  1. server_name:基于名称的虚拟主机配置
  • 语法格式如下:
# server_name   name ...;
  • 对于name 来说,可以只有一个名称,也可以有多个名称,中间用空格隔开。而每个名字由两段或者三段组成,每段之间用“.”隔开。
server_name test.com www.test.com
  • 可以使用通配符“*”,但通配符只能用在由三段字符组成的首段或者尾端,或者由两端字符组成的尾端。
server_name *.test.com www.test.*
  • 还可以使用正则表达式,用“~”作为正则表达式字符串的开始标记。
server_name ~^www\d+\.test\.com$;
  1. server_name:基于IP地址的虚拟主机配置

#语法结构和基于域名匹配一样,而且不需要考虑通配符和正则表达式的问题。

server_name 192.168.1.1
  1. proxy_pass

该指令用于设置被代理服务器的地址。可以是主机名称、IP地址加端口号的形式

# proxy_pass URL;
# URL 为被代理服务器的地址,可以包含传输协议、主机名称或IP地址加端口号,URI等。
proxy_pass  http://www.test.com/uri;
  1. index

该指令用于设置网站的默认首页。

#index  filename ...;
#后面的文件名称可以有多个,中间用空格隔开。
index  index.html index.jsp;

六 ngxin负载均衡

  1. 轮询算法负载均衡
upstream OrdinaryPolling {
    server 172.16.113.1:8081;
    server 172.16.113.1:8082;
}
server {
listen       80; 
server_name  test.test.com;
access_log  /home/lich/logs/rproxy_slb.access.log;
error_log /home/lich/logs/rproxy_slb.error.log;
location / {
             proxy_pass http://OrdinaryPolling;
             index  index.html index.htm index.jsp;
             # deny ip
             # allow ip
        }
}
  1. 基于比例加权轮询负载均衡
upstream OrdinaryPolling {
    server 172.16.113.1:8081 weight=2;
    server 172.16.113.1:8082 weight=5;
}
server {
listen       80; 
server_name  test.test.com;
access_log  /home/lich/logs/rproxy_slb.access.log;
error_log /home/lich/logs/rproxy_slb.error.log;
location / {
             proxy_pass http://OrdinaryPolling;
             # index  index.html index.htm index.jsp;
             # deny ip
             # allow ip
        }
}
  1. 基于IP路由负载均衡

在 upstream 指令块中增加了ip_hash 指令。该指令就是告诉 nginx 服务器,同一个 IP 地址客户端发送的请求都将分发到同一个 Tomcat 服务器进行处理。

upstream OrdinaryPolling {
    server 172.16.113.1:8081 weight=2;
    server 172.16.113.1:8082 weight=5;
    ip_hash;
}
server {
listen       80; 
server_name  test.test.com;
access_log  /home/lich/logs/rproxy_slb.access.log;
error_log /home/lich/logs/rproxy_slb.error.log;
location / {
             proxy_pass http://OrdinaryPolling;
             # index  index.html index.htm index.jsp;
             # deny ip
             # allow ip
        }
}
  1. 基于服务器响应时间负载均衡

根据服务器处理请求的时间来进行负载,处理请求越快,也就是响应时间越短的优先分配。

upstream OrdinaryPolling {
    server 172.16.113.1:8081 weight=2;
    server 172.16.113.1:8082 weight=5;
    fair;
}
server {
listen       80; 
server_name  test.test.com;
access_log  /home/lich/logs/rproxy_slb.access.log;
error_log /home/lich/logs/rproxy_slb.error.log;
location / {
             proxy_pass http://OrdinaryPolling;
             # index  index.html index.htm index.jsp;
             # deny ip
             # allow ip
        }
}

到此这篇关于CentOS 7.6安装Nginx及配置文件详解的文章就介绍到这了,更多相关CentOS 7.6安装Nginx及配置文件详解内容请搜索好代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好代码网!

您可能有感兴趣的文章
在windows cmd 中如何使用ssh远程连接linux服务器的方法

如何解决 win10/win11 wsl下的WslRegisterDistribution failed with error: 0x800701bc 错误

windows远程连接centos图形桌面的方法

推荐一款简单好用的 Linux/Windows服务器管理面板

windows下搭建nginx + php 开发环境的好代码教程