一、安装Nginx需要的环境库
1 | 注:所有命令均在root权限下执行 |
- 项目首先我们需要安装gcc、gcc-c++、zlib、pcre 和openssl。
- 安装gcc gcc-c++;
1 | yum install -y gcc gcc -c++ |
- 下载安装pcre;
1 2 3 4 5 6 | 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 |
- 下载安装openssl;
1 2 3 4 5 6 | 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上颁发的证书已经过期无法验证,手动狗头。
- 下载安装zlib;
1 2 3 4 5 6 | 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
- 下载安装Nginx;
1 2 3 4 5 6 | 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 |
- 创建ssl的软链接,不然启动nginx会报错;
1 2 | 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
- 启动nginx
1 | /usr/local/nginx/sbin/nginx |
测试一下nginx,从别台机器访问一下服务器的IP,出现“Welcome to nginx!”页面就说明成功了;如果访问不到页面但是可以ping通服务器的话可能是开启了防火墙,关闭就行。
关闭防火墙
1 | systemctl stop firewalld.service |
关闭防火墙开机自启
1 | systemctl disable firewalld.service |
四、介绍一下Nginx命令
- 启动nginx服务
1 | /usr/local/nginx/sbin/nginx |
- 重启nginx服务
1 | /usr/local/nginx/sbin/nginx –s reload |
- 停止nginx服务
1 | /usr/local/nginx/sbin/nginx –s stop |
- 强制关闭nginx服务
1 | pkill nginx |
五、介绍一下Nginx的配置
- nginx.conf配置文件介绍
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #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 2 3 4 | listen *:80 | *:8080 #监听所有80端口和8080端口 listen IP_address:port #监听指定的地址和端口号 listen IP_address #监听指定ip地址所有端口 listen port #监听该端口的所有IP连接 |
- server_name:基于名称的虚拟主机配置
- 语法格式如下:
1 | # server_name name ...; |
- 对于name 来说,可以只有一个名称,也可以有多个名称,中间用空格隔开。而每个名字由两段或者三段组成,每段之间用“.”隔开。
1 | server_name test .com www. test .com |
- 可以使用通配符“*”,但通配符只能用在由三段字符组成的首段或者尾端,或者由两端字符组成的尾端。
1 | server_name *. test .com www. test .* |
- 还可以使用正则表达式,用“~”作为正则表达式字符串的开始标记。
1 | server_name ~^wwwd+. test .com$; |
- server_name:基于IP地址的虚拟主机配置
#语法结构和基于域名匹配一样,而且不需要考虑通配符和正则表达式的问题。
1 | server_name 192.168.1.1 |
- proxy_pass
该指令用于设置被代理服务器的地址。可以是主机名称、IP地址加端口号的形式
1 2 3 | # proxy_pass URL; # URL 为被代理服务器的地址,可以包含传输协议、主机名称或IP地址加端口号,URI等。 proxy_pass http: //www . test .com /uri ; |
- index
该指令用于设置网站的默认首页。
1 2 3 | #index filename ...; #后面的文件名称可以有多个,中间用空格隔开。 index index.html index.jsp; |
六 ngxin负载均衡
- 轮询算法负载均衡
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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 } } |
- 基于IP路由负载均衡
在 upstream 指令块中增加了ip_hash 指令。该指令就是告诉 nginx 服务器,同一个 IP 地址客户端发送的请求都将分发到同一个 Tomcat 服务器进行处理。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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及配置文件详解内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!