美文网首页
ubuntu搭建nginx同时支持http、https和webs

ubuntu搭建nginx同时支持http、https和webs

作者: 笙箫竽笛 | 来源:发表于2019-02-20 17:23 被阅读0次

            Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

    一、采用apt-get命令行方式安装

    安装步骤有以下几点:

    1.安装gcc g++的依赖库

    sudo apt-get install build-essential

    sudo apt-get install libtool

    2.安装pcre依赖库

    sudo apt-get update

    sudo apt-get install libpcre3 libpcre3-dev

    3.安装zlib依赖库

    sudo apt-get install zlib1g-dev

    4.安装ssl依赖库

    sudo apt-get install openssl

    5.安装nginx

    sudo apt-get install nginx

    二、配置代理服务器

    内部http服务器端口为8080,websocket服务器端口为8081,通过以下配置后外部访问方式为:

    https请求:https://www.example.com/xxxxx
    websocket请求:wss://www.example.com/socket

    在nginx配置目录下建立配置文件 sudo nano /etc/nginx/conf.d/example.conf,配置文件如下

    server {

            listen 80; #http端口

            listen 443 ssl; #https端口支持ssl

            ssl_certificate    example.crt;  #ssl证书

            ssl_certificate_key  example.key; #ssl证书密钥

            keepalive_timeout  70;  #

            server_name www.example.com;  #服务器域名

            #禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击

            server_tokens off;

            #如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问

            #add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";

            #add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";

            #Diffie-Hellman for TLS

            #openssl dhparam -out /etc/nginx/dhparams.pem 2048

            ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

            ssl_prefer_server_ciphers on;

            ssl_dhparam /etc/nginx/dhparams.pem;

            # ......

            fastcgi_param  HTTPS              on;

            fastcgi_param  HTTP_SCHEME        https;

            access_log    nginx-access.log;

            error_log  nginx-error.log;

            location / {

                proxy_pass http://localhost:8080; #内部服务器

                proxy_redirect    off;

                proxy_set_header X-Real-IP $remote_addr;

                proxy_set_header Host $host;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                proxy_http_version 1.1;

                proxy_set_header Upgrade $http_upgrade;

                proxy_set_header Connection "upgrade";

                #proxy_set_header Access-Control-Allow-Origin *;

                #proxy_set_header Access-Control-Allow-Credentials true;

            }

            #websocket 支持

            location /socket {

                proxy_pass http://localhost:8081;

                proxy_redirect    off;

                proxy_set_header X-Real-IP $remote_addr;

                proxy_set_header Host $host;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                proxy_http_version 1.1;

                proxy_set_header Upgrade $http_upgrade;

                proxy_set_header Connection "upgrade";

            }

    }

    ubuntu安装openssh 服务端

    ubuntu安装supervisor并配置

    ubuntu搭建express+node+mongodb(mongoose)

    ubuntu+nodejs+express+koa

    ubuntu搭建frps服务

    ubuntu安装mongodb@4.0、4.2、4.4

    ubuntu 配置iptables代理转发功能

    ubuntu安装supervisor并配置

    ubuntu搭建nginx同时支持http、https和websocket

    相关文章

      网友评论

          本文标题:ubuntu搭建nginx同时支持http、https和webs

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