Nginx 的安装与配置.

简介: 一、下载 Linux:CentOS 7.3 64位 Nginx:nginx-1.13.1 安装目录:/usr/local/ wget http://nginx.org/download/nginx-1.

一、下载

Linux:CentOS 7.3 64位

Nginx:nginx-1.13.1

安装目录:/usr/local/

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

二、安装

1、安装Nginx依赖

(1)  gcc、gcc-c++

yum install gcc      
yum install gcc-c++

(2) pcre 、zilb

yum -y install pcre*
yum -y install zlib*

(3) openssl (若需要支持 https 协议)

yum -y install openssl 
yum -y install openssl-devel

2、安装Nginx

(1) 解压安装包

tar -z -xv -f nginx-1.13.1.tar.gz

(2) 编译

cd nginx-1.13.1
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre

tips:

--prefix:设置安装路径
--with-http_stub_status_module:支持nginx状态查询
--with-http_ssl_module:支持https
--with-pcre:为了支持rewrite重写功能,必须制定pcre

(3) 安装

make 
make install

(4) 启动

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

(5) 效果

    访问 http://域名/

三、配置

    Nginx 的配置内容都写在 /usr/local/nginx/conf/nginx.conf 中,先来看看这个文件一些配置项的含义:

#user  nobody;
#开启的线程数,一般跟逻辑CPU核数一致
worker_processes  1;

#定位全局错误日志文件,级别以notice显示,还有debug,info,warn,error,crit模式,debug输出最多,crir输出最少,根据实际环境而定
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#指定进程id的存储文件位置
#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;

    sendfile        on;
    #开启防止网络阻塞
    #tcp_nopush     on;
    
    #开启防止网络阻塞
    #tcp_nodelay    on;

    #keepalive_timeout  0;
    #设置客户端连接保存活动的超时时间
    keepalive_timeout  65;
    
    #设置允许客户端请求的最大的单个文件字节数
    client_max_body_size    200m;
    
    #指定来自客户端请求头的headebuffer大小
    #client_header_buffer_size  32k;
    
    #指定连接请求试图写入缓存文件的目录路径
    #client_body_temp_path /dev/shm/client_body_temp;
    
    #指定客户端请求中较大的消息头的缓存最大数量和大小,目前设置为4个32KB
    #large client_header_buffers 4 32k;
    

    #gzip  on;
    
    #配置负载均衡
    upstream tomcatServer {
        server 192.168.0.1:8680  weight=10;
        server 192.168.0.2:8680  weight=10;
    }
    
    server {
        #监听端口,其中 http 是80,https 是 443 
        listen       80;
        #主机域名
        server_name  localhost;
        #设置访问的语言编码
        #charset koi8-r;
        #设置虚拟主机访问日志的存放路径及日志的格式为main
        #access_log  logs/host.access.log  main;

        #监听所有的 / 访问路径,并将它转化相应服务器
        location / {
             proxy_pass http://tomcatServer/;
        }


        #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;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

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


    # HTTPS server
    #
    server {
        #监听https请求
        listen       443 ssl;
        #主机域名
        server_name  api.gogo.cn;
        #公钥,他会被发送到连接服务器的每个客户端
        ssl_certificate      /usr/local/cert/lxcx.pem;
        #私钥,是用来解密的
        ssl_certificate_key  /usr/local/cert/lxcx.key;

        #缓存在所有工作进程之间共享,1MB可以存储4000个会话
        ssl_session_cache    shared:SSL:1m;
        #会话超时时间
        ssl_session_timeout  30m;
    
        #Nginx 只允许使用 TLS 协议
        #指令用于启动特定的加密协议    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #选择加密套件
        ssl_ciphers HIGH:!aNULL:!MD5:!EXPORT56:!EXP;
        #设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件
        ssl_prefer_server_ciphers  on;

        proxy_connect_timeout 500;
        proxy_send_timeout 500;
        proxy_read_timeout 500;
        client_max_body_size 200m;  
        location / {
           # root   html;
           # index  index.html index.htm;
           proxy_pass http://172.27.0.11:8680/;
        }
    }
    
    server {
        listen       443 ssl;
        server_name  admin.gogo.cn;

        ssl_certificate      /usr/local/cert/lxcx.pem;
        ssl_certificate_key  /usr/local/cert/lxcx.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;
        proxy_pass http://172.27.0.11:8380/;
        proxy_connect_timeout 500;
        proxy_send_timeout 500;
        proxy_read_timeout 500;
        client_max_body_size 200m;

        }
    }

}

 

1、配置负载均衡

    如上,在文件中配置以下内容,这里用的是 指定轮询几率 的权重分配方式,指定 两台服务器的访问几率。这里配置的 1:1 的访问几率,可以根据服务器的硬件条件配置相应的比例。这种配置有个缺陷就是访问请求 随机的在两台服务器间跳转,还需要解决不同服务器间session共享问题。

upstream tomcatServer {
        server 192.168.0.1:8680  weight=10;
        server 192.168.0.2:8680  weight=10;
   }

           除了这种方式外,还有 ip_hash 方式。每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可解决session的问题:      

upstream tomcatServer {
        ip_hash;
        server 192.168.0.1:8680;
        server 192.168.0.2:8680;
  }

           还有一种,按后端服务器的响应时间来分配请求,响应时间短的优先分配:

upstream tomcatServer {
       server 192.168.0.1:8680;
       server 192.168.0.2:8680;
       fair;
}

 

           接下来,我们就要把访问请求 映射到负载均衡上:

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

 

       2、重启服务

(1)  验证配置文件是否正确

   进入nginx安装目录sbin下,输入命令./nginx -t

     

(2) 重启服务

    进入nginx可执行目录sbin下,输入命令./nginx -s reload 即可

目录
相关文章
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
1184 87
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
794 1
|
负载均衡 应用服务中间件 nginx
Nginx配置与命令
Nginx 是一款高性能的 HTTP 和反向代理服务器,其配置文件灵活且功能强大。本文介绍了 Nginx 配置的基础结构和常用指令,包括全局块、Events 块、HTTP 块及 Server 块的配置方法,以及静态资源服务、反向代理、负载均衡、HTTPS 和 URL 重写等功能实现。此外,还提供了常用的 Nginx 命令操作,如启动、停止、重载配置和日志管理等,帮助用户高效管理和优化服务器性能。
1339 14
|
Ubuntu 网络协议 应用服务中间件
在 Ubuntu 上安装 Nginx
在 Ubuntu 上安装和配置 Nginx 非常简单。首先更新系统包,然后通过 `apt` 安装 Nginx,检查服务状态并配置防火墙规则。访问服务器 IP 测试是否成功显示默认页面。还可管理服务、创建虚拟主机及排查常见问题,适合新手快速上手部署高性能 Web 服务。
1645 0
|
12月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
594 18
|
12月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
980 17
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
应用服务中间件 网络安全 nginx
配置Nginx以支持Websocket连接的方法。
通过上述配置,Nginx将能够理解WebSocket协议的特殊要求,代理Websocket流量到合适的后端服务器。注意,Websocket并不是HTTP,尽管它最初是通过HTTP请求启动的连接升级,因此保证Nginx了解并能够妥善处理这种升级流程是关键。
2600 10
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
1537 152
|
Ubuntu 应用服务中间件 Linux
在Ubuntu上配置Nginx实现开机自启功能
至此,Nginx应该已经被正确地设置为开机自启。在Ubuntu中利用 `systemd`对服务进行管理是一种高效的方式,为系统管理员提供了强大的服务管理能力,包括但不限于启动、停止、重启服务,以及配置服务的开机自启动。通过这些简洁的命令,即使是对Linux不太熟悉的用户也能轻松地进行配置。
573 0