Nginx正向代理设置

应用场景:

有时候,我们局域网中的服务器是不允许直接连到公网上面的, 所以要升级服务器或者安装软件的时候需要通过一个代理才能连接公网。

这里我们介绍怎么配置Nginx作为正向代理。 注意,此代理不支持https协议。

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    limit_conn_zone $binary_remote_addr zone=perip:10m;

    server {
        resolver 202.106.0.20;
        resolver_timeout 5s;
        listen       8088;

        limit_conn perip 10;
        limit_rate 20k;

        location / {
            proxy_pass $scheme://$host ...
more ...

Nginx安全加固

隐藏nginx的版本信息

如果版本信息直接跟在response中,攻击者就可以直接针对此版本的漏洞进行攻击

编辑/etc/nginx/nginx.conf, 在http段中添加

server_tokens off;

屏蔽某些IP

conf文件中http或server段添加

location / {
    ......
    allow 10.0.0.0/8;
    deny all;
}

禁止搜索机器人

编辑robots.txt文件, 内容如下

User-agent: *
Disallow: /

Nginx.conf设置

location = /robots.txt {
    alias /the_folder_of_robots_txt_file/robots.txt;
    add_header Cache-Control public;
    expires 30d;
    access_log off;
}

Nginx禁止自动跳转

比如说,folowing.com下面有几个子域名

  • www.folowing ...
more ...

Nginx Star SSL

StarSSL是免费的好用的认证,但最新的firefox对其颁发的证书不能直接认证, 必须使用chain.

ssl  on;
ssl_certificate  /etc/nginx/ssl/security.crt;
ssl_certificate_key  /etc/nginx/ssl/security.key;

使用以下命令后,nginx就可以chain了

curl http://www.startssl.com/certs/sub.class1.server.ca.pem >>security.crt
curl http://www.startssl.com/certs/ca.pem >>security.crt
more ...

Ubuntu Nginx 使用ssl

创建认证文件和公有密钥的文件夹

创建存放的文件夹

sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl

创建Server Key and Certificate Signing Request

sudo openssl genrsa -des3 -out server.key 1024
sudo openssl req -new -key server.key -out server.csr

移除密码

如果server.key有密码,每次重启的时候都得手动输入密码, 所以要去掉

sudo cp server.key server.key.org
sudo openssl rsa ...
more ...

Windows下 Nginx

  • Nginx版本: 1.0.10

启动命令

用CMD进入Nginx所在目录

start nginx

停止命令

nginx.exe -s stop

用stop的话,可能不保存相关信息。

nginx.exe -s quit

用quit的话,会保存相关信息后停止。

不停止重启

nginx -s reload

重新打开日志

nginx -s reopen

测试或载入指定配置文件

测试:

nginx.exe -t -c conf/default.conf

指定载入:

start nginx.exe -c conf/default.conf
more ...