美文网首页Linux
记一次Nginx的反向代理和https的配置

记一次Nginx的反向代理和https的配置

作者: Real_young | 来源:发表于2018-08-25 10:54 被阅读1573次

前两天大学室友大佬明跟我说,xx,我有项目要做借用你的80端口用几天,随后各种骚操作(后来据说是用iptables转的)把整台服务器80端口全部转走到8080,由于我的blog走的http所以导致我的blog直接也挂掉了!此时想到办法就是用Nginx配置二级域名做一次反向代理。

Nginx----世界上最好用的反向代理服务器。

首先先到域名后台配置一个二级域名的A记录解析,例如:cem.realyoung.cc 没有域名的话直接用ip地址


二级域名

然后在服务器上添加一个 vhost


添加vhost.png

这里我直接用的二级域名做解析,想用ip地址 直接把vhost的
domain 写成ip地址即可

随后配置该 vhost 的Nginx配置文件,配置如下

upstream cem {
    server 127.0.0.1:8080;
}
server {
  listen 80;
  server_name cem.realyoung.cc;
  access_log off;
  index index.html index.htm index.php;
  
  #error_page 404 /404.html;
  #error_page 502 /502.html;
  
  location / { 
    proxy_pass http://cem;
    proxy_set_header Host $host;

    }
}

由于是直接代理到本机,便是127.0.0.1:8080,小伙伴们可以尝试代到别的主机试试,随后确认安全组开启8080,重启Nginx:nginx -s reload,浏览器输入二级域名,搞定!



此外,觉得这次80端口被截走也太扯了,换个思路,把网站顺便升级到 https(记得安全组要开启443端口),EFF(电子前哨基金会)为了推广https协议,成立了一个项目并且免费发放证书!开发者的福音啊!点击跳转到该项目的github地址,我们需要做的就是把它 clone 下来
git clone https://github.com/certbot/certbot.git

随后先停止Nginx,一定要先关掉Nginx nginx -s stop,不然会一直报错!

cd certbot
./certbot-auto certonly --standalone --email yourEmail(你的邮箱!)  -d yourDomain(你的域名)

如果提示没权限的话,请sudo chomd u+x certbot-auto

添加成功

到此出现 Congratulations,便是添加证书成功了,这里还会告诉我们证书的存放地址,默认都是在 /etc/letsencrypt/live 下,你可以拷贝到别的地方或者做一个软链接,这里我暂时就没动它,直接到Nginx里面配置该路径了,并且做了一次301重定向都跳至https,配置如下:

server {
  listen 80;
  listen 443 ssl;
  ssl_certificate /etc/letsencrypt/live/www.realyoung.cc/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/www.realyoung.cc/privkey.pem;
  server_name www.realyoung.cc;
  access_log /data/wwwlogs/www.realyoung.cc_nginx.log combined;
  index index.html index.htm index.php;
  
  root /data/wwwroot/www.realyoung.cc;

  include /usr/local/nginx/conf/rewrite/wordpress.conf;
  #error_page 404 /404.html;
  #error_page 502 /502.html;
if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
if ($host != "www.realyoung.cc") {

    rewrite ^/(.*)$ https://www.realyoung.cc/$1 permanent;
    break;
}
 
  location ~ [^/]\.php(/|$) {
    #fastcgi_pass remote_php_ip:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
  }

  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    expires 30d;
    access_log off;
  }
  location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
  }
  location ~ /\.ht {
    deny all;
  }
}

随后重启Nginx,浏览器输入地址便可看到已经有https了,至此 https 配置结束。


https.png

再记一下踩的一个坑

在配置https的过程中,出现了一次 ERR_SSL_PROTOCOL_ERROR 导致网站一直进不去,后来查明原因是因为我在Server的配置中只写了 listen 443;
解决方法就是添加上 ssl 协议 :listen 443 ssl;

原文链接:https://www.realyoung.cc/realyoung/127.html

相关文章

  • nginx

    nginx的配置、虚拟主机、负载均衡和反向代理一nginx的配置、虚拟主机、负载均衡和反向代理二nginx的配置、...

  • # nginx https证书配置

    nginx https证书配置 一 前言 此文档针对于nginx配置反向代理使用https证书方法 nginx作为...

  • Nginx配置负载均衡

    说明 Nginx的主要用途就是用来配置反向代理和负载均衡的。反向代理可以参考https://www.jianshu...

  • Nginx应用场景

    反向代理,负载均衡,动静分离 1.反向代理 修改nginx配置,并重新加载 重新加载nginx配置./nginx ...

  • 01-nginx前端方向代理

    前端反向代理 1.下载nginx 2. 配置nginx.conf反向代理

  • Nginx中配置https做反向代理 - 知识林

    本文章来自【知识林】 在Centos中的Nginx配置https做反向代理跟配置http做反向代理基本一样,只是多...

  • nginx反向代理

    什么是反向代理 如何实现反向代理 准备工作以及安装nginx 配置nginx nginx的初始配置文件去掉注释后的...

  • nginx

    node 使用 nginx 反向代理搭建https服务 使用自己生成的证书 nginx http配置 编辑ngin...

  • 记一次Nginx的反向代理和https的配置

    前两天大学室友大佬明跟我说,xx,我有项目要做借用你的80端口用几天,随后各种骚操作(后来据说是用iptables...

  • Nginx配置Https反向代理

    ZERO 持续更新 请关注:https://zorkelvll.cn/blogs/zorkelvll/artic...

网友评论

    本文标题:记一次Nginx的反向代理和https的配置

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