nginx代理ssh

项目上有个需求,就是用nginx反向代理ssh,这里使用的是nginx的proxy_pass。

先介绍下proxy_pass,有两个模块,一个是http_proxy,一个是stream_proxy,两个的使用方法一样,只是位置不一样,这里使用的是stream_proxy。

网上的一堆资料都只是写了proxy_pass,但是按照他们的写法,你的nginx就会报错。nginx反代ssh用的是stream_proxy,需要写在stream块里。

仔细看一下你的nginx配置文件,stream块里有专门的地方用来写配置文件。

nginx lua waf部署

刚处理完服务器安全问题。

到新公司来接手一堆烂服务器,第一次看到用宝塔管理业务服务器的,无奈。

首先说说nginx lua waf的部署环境,centos 6,nginx 1.12.1,跑的php。lnmp编译安装。

服务器上还部了个安全狗,这是个什么鬼?

开干吧,nginx -V,查看nginx编译参数,这些参数要记下来,后面有用。

#nginx -V
nginx version: nginx/1.12.2
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
safedog ......
configure arguments: --prefix=/opt/programs/nginx_1.12.2 --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-threads --with-http_v2_module --with-http_addition_module --with-http_dav_module --with-file-aio --with-http_gunzip_module --add-module=nginx_upstream_check_module-master

去nginx.org下载对应版本的源码回来,因为需要增加lua模块。

阅读更多

终于,还是给黑色自由加上了https

原本黑色自由一直都是不带https的,懒得操作,也懒得操心。

起因是某天凌晨,在手机上打开黑色自由的时候,发现页面下方被加了一条广告。本来是习以为常的事情,但出现在了这里,就顿时觉得不爽,电信运营商猥琐这事早几年就知道,但没想到的是居然轮到了黑色自由的头上,无奈就只能套个https在上面了,加了ssl,总比裸http强吧。

操作方法就很简单,使用let’s encrypt的证书,certbot安装,它会自动帮你找到nginx配置文件里的站点,全程提问式,几分钟就搞定,然后自己写个crontab隔一个月跑一次自动更新一下就行,操作方法我就不写出来了,给个地址自己去看好了:

https://certbot.eff.org/lets-encrypt/debianbuster-nginx

nginx提示host not found in upstream错误

今天重启nginx,发现nginx报错,看了一下systemd的错误提示,journalctl -xe,原来报错了:

host not found in upstream

看了下配置文件,原来是proxy_pass后面跟的是域名,但以前的时候都没有出现过这个问题啊,今天才刚出现的。

后来看到有人在location段加dns,才想起来原来nginx的服务器配的dns服务器停了,那就来更新一下dns服务器吧:

vi /etc/resolv.conf

改成阿里云的DNS吧,223.5.5.5.

再重启nginx,好,一切正常。

nginx网址后自动添加斜线

原因:

公司的前端nginx,之前做的upstream负载,后来更新,直接放在了目录下面,所以之前用的地址xxxx.com/xxx就变成了xxxx.com/xxx/,但是大多数人收藏夹里放的是不带斜线/的。新地址因为放在了目录下面,实际上nginx是可以自动添加斜线的,但添加后的地址不正确,这里就要用的nginx的两个参数:

1、server_name_in_redirect on(默认),URL 重定向为: server_name 中的第一个域名 + 目录名 + /;
2、server_name_in_redirect off,URL 重定向为: 原 URL 中的域名 + 目录名 + /。

port_in_redirect off

如果port_in_redirect为off时,那么始终按照默认的80端口;如果该指令打开,那么将会返回当前正在监听的端口。

因为公司的nginx是443端口,原先在访问的时候自动把端口号弄上去了,所以就把port_in_redirect off掉就行了。

网站的301重定向方法

今天在百度上才发现原来黑色自由带www的域名是无法打开的,原因是没有在nginx里面做301重定向。晚上回家就把www域名重定向了一下,方法有2种:

1、使用nginx的301重定向规则:

if ($host != ‘www.dfreedom.net’ ) {
rewrite ^/(.*)$ http://www.dfreedom.net/$1 permanent;
}

本站之前使用的就是nginx的301重定向,这次并没有使用。

2、域名的301重定向:

本站使用的是dnspod的服务,其系统本身就可以实现www的重定向:

QQ图片20140109185702

域名的301重定向对于网站来说是很有必要的,因为本站在nginx配置信息里面只写的顶级域名,www没有写进去,所以造成网站无法访问,国内的一些搜索引擎还是会默认爬www站。

debian下nginx不显示图片解决办法

vps用的是debian系统,装完cms后发现图片都显示不了,单独打开图片也无法显示,返回404,文件找不到,所以,应该是nginx配置问题。

在debian下,编辑/etc/nginx/site-available/default

添加:

location ~ \.(jpg|png|jpeg|bmp|gif|swf|css)$
{
access_log off;
expires 30d;
root /www/htdocs/market;
break;
}

将root后的路径改为你网站路径即可。