系统相关
首页 > 系统相关> > CentOS 安装 Nginx

CentOS 安装 Nginx

作者:互联网

文章目录

1. 下载 Nginx

下载Nginx链接 http://nginx.org/en/download.html
在这里插入图片描述
我这里是基于 nginx-1.18.0 版本进行安装演示的,演示IP 192.168.106.139。

2. 开始安装

2.1 进入 Linux 服务器,上传安装包

# cd /
# mkdir software
# cd /software/
# ll
total 1016
-rw-r--r-- 1 root root 1039530 Oct 22 10:19 nginx-1.18.0.tar.gz

2.2 将文件解压到指定目录,/usr/local

# cd /software/
# tar -zxvf nginx-1.18.0.tar.gz -C /usr/local/
# cd /usr/local/
# ll
total 18964
drwxr-xr-x.  2 root root       49 Apr 15  2021 bin
drwxr-xr-x.  2 root root        6 Apr 11  2018 etc
drwxr-xr-x.  2 root root        6 Apr 11  2018 games
drwxr-xr-x.  2 root root        6 Apr 11  2018 include
drwxr-xr-x.  2 root root        6 Apr 11  2018 lib
drwxr-xr-x.  2 root root        6 Apr 11  2018 lib64
drwxr-xr-x.  2 root root        6 Apr 11  2018 libexec
drwxr-xr-x   8 1001 dba       158 Apr 21  2020 nginx-1.18.0
drwxr-xr-x.  2 root root        6 Apr 11  2018 sbin
drwxr-xr-x.  5 root root       49 Mar 25  2021 share
drwxr-xr-x.  2 root root        6 Apr 11  2018 src

压缩包已解压完成。

2.3 安装步骤

2.3.1 安装编译工具及库文件

# yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

2.3.2 安装PCRE

PCRE 的作用是让 Nginx 支持 Rewrite 功能。

  1. 下载安装包,下载地址

http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
下载完成后将文件上传至我们之前创建好的 /software 目录下,然后解压到 /usr/local 目录下

  1. 解压安装包
# cd /software
# ll
total 2968
-rw-r--r-- 1 root root 1039530 Oct 22 10:19 nginx-1.18.0.tar.gz
-rw-r--r-- 1 root root 1996552 Oct 22 10:38 pcre-8.35.tar.gz
# tar -zxvf pcre-8.35.tar.gz -C /usr/local/
# cd /usr/local/
# ll | grep pcre
drwxr-xr-x   7 1169 1169     8192 Apr  4  2014 pcre-8.35
  1. 进入解压包,开始编译和安装
# cd pcre-8.35
# ./configure
# make && make install
  1. 查看 pcre 版本,pcre已安装完成
# pcre-config --version
8.35

在这里插入图片描述

2.3.3 安装Nginx

  1. 进入到 Nginx 解压目录,编译安装
# cd /usr/local/nginx-1.18.0
# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.35
# make
# make install
  1. 查看 Nginx 版本
# /usr/local/webserver/nginx/sbin/nginx -v
nginx version: nginx/1.18.0

在这里插入图片描述
到此,Nginx 安装完成。

3. Nginx 配置 与 启动

3.1 Nginx 配置

配置nginx.conf ,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容

worker_processes  1; #设置值和CPU核心数一致

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别
pid /usr/local/webserver/nginx/nginx.pid;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;
	
	upstream active_mq{
        server 192.168.106.136:8161;
        server 192.168.106.137:8161;
    }

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    # 代理 activeMQ 控制台页面
    server {
        listen       8161;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
			proxy_pass http://active_mq;
        }
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #下面是server虚拟主机的配置
	server{
		listen 80;#监听端口
		server_name localhost;#域名,名称可以自己定义
		index index.html index.htm index.php;
		root /usr/local/webserver/nginx/html; #站点目录
		location ~ .*\.(php|php5)?$ {
		  #fastcgi_pass unix:/tmp/php-cgi.sock;
		  fastcgi_pass 127.0.0.1:9000;
		  fastcgi_index index.php;
		  include fastcgi.conf;
		}
		location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ {
		  expires 30d;
		}
		location ~ .*\.(js|css)?$ {
		  expires 15d;
		}
		access_log off;
	  }


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
}

使用命令检查 nginx 配置文件的正确性:

# /usr/local/webserver/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful

在这里插入图片描述
启动 nginx 服务,查看进程

# /usr/local/webserver/nginx/sbin/nginx
# ps -ef | grep nginx

查看进程

3.2 访问站点

使用浏览器访问我们配置的站点
在这里插入图片描述

3.3 常用命令

  1. 重新加载配置文件
    /usr/local/webserver/nginx/sbin/nginx -s reload
  2. 重启 nginx 服务
    /usr/local/webserver/nginx/sbin/nginx -s reopen
  3. 停止 nginx 服务
    /usr/local/webserver/nginx/sbin/nginx -s stop

4 代理 TCP 连接

在上一章节中我们配置了 ActiveMQ 的8161端口,它属于 http 协议,用于访问 ActiveMQ 的控制台,那如何使我们安装的 Nginx 能够代理 tcp 协议的端口呢?比如 ActiveMQ 的 61616 端口。

Nginx 中提供了 stream 模块,可以用来代理 tcp 协议的端口,安装 Nginx 的时候默认没有加载 stream 模块。
所以在 nginx.conf 文件中配置了 stream,在检查配置文件正确性时会报错。

4.1 nginx.conf 配置 stream

  1. 添加 stream 配置,与 http 模块同级
stream{
  	#-----------------------ActiveMQ----------------------#
  	upstream active_mq_61616{
  		server 192.168.106.136:61616;
        server 192.168.106.137:61616;
  	}
  	
  	server{
  		listen	61616;
  		proxy_pass active_mq_61616;
  		proxy_connect_timeout 10s;
  		proxy_timeout 300s;
  	}
}
  1. 检查配置文件的正确性
# /usr/local/webserver/nginx/sbin/nginx -t
nginx: [emerg] unknown directive "stream" in /usr/local/webserver/nginx/conf/nginx.conf:104
nginx: configuration file /usr/local/webserver/nginx/conf/nginx.conf test failed

检查不通过
在这里插入图片描述
为了解决这个问题,我们需要重新对源文件进行编译、安装,通过添加–with-stream参数指定安装stream模块。

4.2 安装 stream 模块

进入 /usr/local/nginx-1.18.0 目录

# cd /usr/local/nginx-1.18.0
# ./configure --with-stream  或者 ./configure  --prefix=/usr/local/webserver/nginx --with-stream
# make & make install

检查配置文件正确性
/usr/local/webserver/nginx/sbin/nginx -t
在这里插入图片描述
文件检查通过,说明 stream 模块安装成功。

4.3 验证

重启 Nginx,验证 61616 端口是否可用。
window中打开 cmd 命令行,输入如下命令:

telnet 192.168.106.139 61616

经过验证,Nginx 代理 tcp 协议配置完成。
在这里插入图片描述

标签:CentOS,nginx,安装,Nginx,webserver,usr,root,local
来源: https://blog.csdn.net/maxy_2013/article/details/120900513