nginx端口状态管理和安全设置

nginx 可以进行反向代理、负载均衡、还能解决跨域问题。

在 http://nginx.org/ 下载对应版本的nginx。

在 nginx 的目录下打开 nginx 使用

start nginx

或者

双击 nginx.exe

状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉

  • 基本操作项

停止nginx服务

nginx -s stop

重启nginx

每次修改完.conf文件就需要重启nginx

nginx -s reload

检查配置

检查修改的nginx.conf配置是否正确

如果出现ok和successfull就代表正确了,其他的都不对

nginx -t

基本目录配置

给域名指定绑定的文件夹

server{
     listen 80;
     server_name www.website.com; #绑定域名
     index index.htm index.html index.php; #默认文件
     root /home/www/website.com; #网站根目录
     include location.conf; #调用其他规则,也可去除 
}

域名跳转配置

没有www的域名,跳转到www的域名

server{
    listen 80;
    server_name website.com;
    rewrite ^/(.*) http://www.website.com/$1 permanent;
}

配置项目端口

server{
  listen 80;
  location / {
    proxy_pass http://10.10.10.10:8080;
  }
}

Upstream模块实现负载均衡

// 修改nginx.conf
worker_processes 1;
events {
  worker_connections 1024;
}
http {
  upstream yourhost {
        ip_hash;
     server 39.106.145.33;
     server 47.93.6.93;
  }
  server {
    listen 8080;
    location / {
      proxy_pass http://yourhost;
    }
  }
}

worker_processes
//工作进程数,和CPU核数相同
worker_connections
//每个进程允许的最大连接数
upstream模块
//负载均衡就靠它
//语法格式:upstream name {}
//ip_hash它的作用是如果第一次访问该服务器后就记录,之后再访问都是该服务器了,这样比如第一次访问是33服务器,那之后再访问也会分配为33服务器访问了
//里面写的两个server分别对应着不同的服务器
server模块
//实现反向代理
//listen监督端口号
//location / {}访问根路径
//proxy_pass http://yourhost,代理到yourhost里两个服务器上

  • 解决TIME_WAIT过多问题
upstream http_backend {
    server 127.0.0.1:8080;

    keepalive 16;
}

server {
    ...

    location /http/ {
        proxy_pass http://http_backend;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        ...
    }
}

查看端口占用状况:查看端口状态

  • 修改 http 请求权限

查看403状态

curl -v -X OPTIONS http://yoursite.com>

查看405

curl -v -X TRACE http://yoursite.com

– 修改 nginx 权限

http server location语句块中添加

if ($request_method !~* GET|POST) { return 403; }

– 重启 nginx

关闭 nginx 占用的端口的进程,再重启 nginx

  • 修改 niginx 版本的查看权限
server_tokens off;

以上代码,

放在 http server location 语句块中,隐藏 403 错误时的版本输出

放在 http 语句块中,隐藏 405 错误时的版本输出

编辑fastcgi.conf文件:nginx/conf/fastcgi.conf

fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
# 改为:
fastcgi_param SERVER_SOFTWARE nginx;

其它:

正向代理和反向代理

正向代理需要你主动设置代理服务器ip或者域名进行访问,由设置的服务器ip或者域名去获取访问内容并返回;

而反向代理不需要你做任何设置,直接访问服务器真实ip或者域名,但是服务器内部会自动根据访问内容进行跳转及内容返回,你不知道它最终访问的是哪些机器。

负载均衡

当用户访问网站的时候,先访问一个中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入选择的服务器。

反向代理和负载均衡参考:

Nginx反向代理以及负载均衡配置
面试加分项之 Nginx 反向代理与负载均衡

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注