一、前言

这篇文章主要介绍了CentOS 7.6环境下Nginx下载安装配置使用教程,学习nginx的朋友可以参考一下

二、下载

使用如下命令进行下载

wget http://nginx.org/download/nginx-1.23.3.tar.gz

三、安装nginx需要的环境库

项目首先我们需要安装gcc、gcc-c++、zlib、pcre 和openssl。

判断?包名是否安装

rpm -q ?包名

3.1 安装gcc gcc-c++

yum install -y gcc gcc-c++

3.2 下载安装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

3.3 下载安装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上颁发的证书已经过期无法验证

3.4 下载安装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

四、安装nginx

4.1安装配置

cd /usr/local/

wget http://nginx.org/download/nginx-1.23.3.tar.gz

tar -zxvf nginx-1.23.3.tar.gz -C /usr/local/

cd nginx-1.25.2

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.45 --with-openssl=/usr/local/openssh

make && make install

4.2创建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

5.1 启动Nginx

/usr/local/nginx/sbin/nginx

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

5.2 关闭防火墙

systemctl stop firewalld.service

5.3 关闭防火墙开机自启

systemctl disable firewalld.service

5.4 停止nginx服务

/usr/local/nginx/sbin/nginx –s stop

5.5 强制关闭nginx服务

pkill nginx

5.6 配置nginx开机自启动

在/usr/lib/systemd/system路径下创建一个nginx的服务名称,这边设置为nginx.service

cd /usr/lib/systemd/system

vim nginx.service

配置以下内容

[Unit]

Description=The NGINX HTTP and reverse proxy server

After=network.target remote-fs.target nss-lookup.target

[Service]

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid #更换成自己安装nginx的路径

ExecStartPre=/usr/local/nginx/sbin/nginx -t #更换成自己安装nginx的路径

ExecStart=/usr/local/nginx/sbin/nginx #更换成自己安装nginx的路径

ExecReload=/usr/local/nginx/sbin/nginx -s reload #更换成自己安装nginx的路径

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

配置完保存即可。

配置开机自启动

systemctl enable nginx.service

查看是否设置成功

systemctl list-unit-files | grep nginx

启动:systemctl start nginx.service

关闭:systemctl stop nginx.service

六、介绍一下Nginx的配置

6.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;

}

}

}

6.2 监听配置用法

listen *:80 | *:8080 #监听所有80端口和8080端口

listen IP_address:port #监听指定的地址和端口号

listen IP_address #监听指定ip地址所有端口

listen port #监听该端口的所有IP连接

6.3 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$;

6.4 server_name:基于IP地址的虚拟主机配置

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

server_name 192.168.1.1

6.5 proxy_pass

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

# proxy_pass URL;

# URL 为被代理服务器的地址,可以包含传输协议、主机名称或IP地址加端口号,URI等。

proxy_pass http://www.test.com/uri;

6.6 index

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

#index filename ...;

#后面的文件名称可以有多个,中间用空格隔开。

index index.html index.jsp;

七、 ngxin负载均衡

7.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

}

}

7.2 基于比例加权轮询负载均衡

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

}

}

7.3 基于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

}

}

7.4 基于服务器响应时间负载均衡

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

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

}

}

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: