nginx

作者: 英文名叫夏天 | 来源:发表于2019-02-12 15:33 被阅读0次

    安装步骤

    一、 gcc 安装

    安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

    yum install gcc-c++
    

    二. PCRE pcre-devel 安装

    PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

    yum install -y pcre pcre-devel
    

    三. zlib 安装

    zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

    yum install -y zlib zlib-devel
    

    四. OpenSSL 安装

    OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
    nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

    yum install -y openssl openssl-devel
    

    五、nginx安装

    下载
    wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
    
    解压
    tar -zxvf nginx-1.10.1.tar.gz
    cd nginx-1.10.1
    
    配置
    ./configure
    
    编译安装
    make
    make install
    

    查找安装路径 whereis nginx

    启动、停止nginx
    cd /usr/local/nginx/sbin/
    ./nginx 
    ./nginx -s stop 此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
    ./nginx -s quit 此方式停止步骤是待nginx进程处理任务完毕进行停止。
    ./nginx -s reload
    

    检测nginx.conf配置文件是否正确:./nginx -t
    查询nginx进程 ps aux|grep nginx

    重启 nginx

    1.先停止再启动:

    ./nginx -s quit
    ./nginx
    

    2.重新加载配置文件:

    ./nginx -s reload
    
    开机自启动

    即在rc.local增加启动代码就可以了。

    vi /etc/rc.local
    

    增加一行 /usr/local/nginx/sbin/nginx
    设置执行权限:

    chmod 755 rc.local
    
    配置Nginx的SSL模块

    当 Nginx如果未开启SSL模块,配置Https时提示错误,如nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:37。则需要Nginx开启SSL模块
    切换到源码包:

    cd /home/test/nginx
    

    查看nginx原有的模块

    /usr/local/nginx/sbin/nginx -V
    

    在configure arguments:后面显示的原有的configure参数如下:

    --prefix=/usr/local/nginx --with-http_stub_status_module
    

    那么我们的新配置信息就应该这样写:

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

    运行上面的命令即可,等配置完
    配置完成后,运行命令

    make
    

    这里不要进行make install,否则就是覆盖安装
    然后备份原有已安装好的nginx

    cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
    

    然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)

    cp ./objs/nginx /usr/local/nginx/sbin/
    

    然后启动nginx,仍可以通过命令查看是否已经加入成功

    /usr/local/nginx/sbin/nginx -V
    
    Nginx 配置Http和Https共存
    server {
                listen 80 default backlog=2048;
                listen 443 ssl;
                server_name wosign.com;
                root /var/www/html;
                ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;
                ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .Key;
            }
    

    把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用

    Nginx 配置SSL安全证书重启避免输入密码

    可以用私钥来做这件事。生成一个解密的key文件,替代原来key文件。

    openssl rsa -in server.key -out server.key.unsecure
    
    Nginx SSL性能调优
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    
    反向代理
      location / {
                proxy_pass  http://localhost:8080;
                proxy_set_header    Host    $host;
                proxy_set_header    X-Real-IP   $remote_addr;
                proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    
    全站加密
    完整版nginx.conf配置文件
    #user www-data;
    worker_processes auto;
    pid /run/nginx.pid;
    
    events {
        worker_connections 768;
        # multi_accept on;
    }
    
    http {
    
        ##
        # Basic Settings
        ##
    
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # server_tokens off;
    
        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;
    
        include mime.types;
        default_type application/octet-stream;
    
        ##
        # SSL Settings
        ##
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;
    
        ##
        # Logging Settings
        ##
    
     access_log  /home/summer/logs/web-admin.access.log;
        error_log  /home/summer/logs/web-admin.error.log;  
    
        ##
        # Gzip Settings
        ##
    
        gzip on;
        gzip_disable "msie6";
    
        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    
        ##
        # Virtual Host Configs
        ##
    
        server {
            listen 443;
            server_name www.realeshoes.com;
            ssl on;
                # 配置根目录
            root   /home/summer/reale/web-admin;
        
            ssl_certificate 1_www.realeshoes.com_bundle.crt;
            ssl_certificate_key 2_www.realeshoes.com.key;
            ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
            ssl_prefer_server_ciphers on;
    # 配置静态目录
     location /admin {   
            alias   /home/summer/reale/web-admin;
            index  index.html;
        }
            location /api/ {
                proxy_pass  http://localhost:8080/;
                proxy_set_header    Host    $host;
                proxy_set_header    X-Real-IP   $remote_addr;
                proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
            }
        }
    
        server {
            listen 80;
            server_name www.realeshoes.com;
            rewrite https://$server_name$request_uri? permanent;
        }
    
        #include /etc/nginx/conf.d/*.conf;
        #include /etc/nginx/sites-enabled/*;
    }
    
    
    #mail {
    #   # See sample authentication script at:
    #   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
    # 
    #   # auth_http localhost/auth.php;
    #   # pop3_capabilities "TOP" "USER";
    #   # imap_capabilities "IMAP4rev1" "UIDPLUS";
    # 
    #   server {
    #       listen     localhost:110;
    #       protocol   pop3;
    #       proxy      on;
    #   }
    # 
    #   server {
    #       listen     localhost:143;
    #       protocol   imap;
    #       proxy      on;
    #   }
    #}
    
    

    相关文章

      网友评论

          本文标题:nginx

          本文链接:https://www.haomeiwen.com/subject/zfjbrqtx.html