Nginx模块配置及其他配置

Nginx官网:http://nginx.org/en/

安装:
nginx的repo文件:
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
yum -y install nginx

一、增加TCP模块
新版tcp模块使用 --with-stream

查看原来安装的模块
查看nginx原有的模块

/opt/software/nginx/sbin/nginx -V

编译SSL模块
切换到源码包

cd /opt/software/nginx-1.14.1

在之前的configure arguments后面增加,tcp stream模块

–with-stream

./configure --prefix=/opt/software/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-stream

运行上面的命令即可,等配置完

配置完成后,运行命令

make

这里不要进行make install,否则就是覆盖安装。

备份Nginx
然后备份原有已安装好的nginx

cp /opt/software/nginx/sbin/nginx /opt/software/nginx/sbin/nginx.bak

覆盖Nginx
这个时候nginx要停止状态:

查看进程,找到 nginx master的进程。

ps -ef |grep nginx

关闭 nginx master 进程,注意修改下面pid的参数。

kill -QUIT [nginx master pid]

然后将刚刚编译好的 Nginx 覆盖掉原有的 Nginx

cp ./objs/nginx /opt/software/nginx/sbin/

测试
然后启动 nginx,仍可以通过命令查看是否已经加入成功。

cd /opt/software/

启动

./sbin/nginx

查看安装模块

/opt/software/nginx/sbin/nginx -V

配置文件:
#vim /etc/nginx/nginx.conf
stream { #与http同级别
upstream ssh_proxy {
hash $remote_addr consistent; #一致性hash
server 192.9.191.31:22 max_fails=2 fail_timeout=2s; #健康状态检测
server 192.9.191.32:22 max_fails=2 fail_timeout=2s;
}
server {
listen 80;
proxy_connect_timeout 1s; #连接超时
proxy_timeout 20s; #连接超时时间,如果不配置,永远不超时
proxy_pass ssh_proxy;
}
}

二、location引导配置
如要实现IP+目录+文件的方式访问,有以下方法:
1.配置方法:
[root]
语法:root path
默认值:root html
配置段:http、server、location、if

(1)配置实例:
location ^~ /t/ {
root /www/root/html/;
}
如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/t/a.html的文件。

[alias]
语法:alias path
配置段:location
(2)alias配置实例:
location ^~ /t/ {
alias /www/root/html/new_t/;
}
如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/new_t/a.html的文件。注意这里是new_t,因为alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。

2.配置方法:
location / {
root /www/root/html/;
}
这样其实就是默认的设置,只需要在默认的站点目录下创建目录和文件名即可。

三、nginx配置前后端分离部署详解(主要来提高解析效率)
博客:https://www.cnblogs.com/jedi1995/p/10900224.html

1.配置文件:
server {
listen 80;
server_name localhost;

location / {
root html/dist;
try_files $uri $uri/ @rewrite;
}

location @rewrite{
add_header Cache-Control “no-cache, no-store”;
rewrite ^.*$ /index.html last;
}

location /manage {
proxy_pass http://127.0.0.1:8090;
}
}

注意:
1)location / {
try_files $uri u r i / / i n d e x . p h p ? uri/ /index.php? uri//index.php?query_string;

}

当用户请求 http://localhost/example 时,这里的 u r i 就 是 / e x a m p l e 。 t r y f i l e s 会 到 硬 盘 里 尝 试 找 这 个 文 件 。 如 果 存 在 名 为 / uri 就是 /example。 try_files 会到硬盘里尝试找这个文件。如果存在名为 / uri/exampletryfiles/root/example(其中 $root 是项目代码安装目录)的文件,就直接把这个文件的内容发送给用户。
显然,目录中没有叫 example 的文件。然后就看 u r i / , 增 加 了 一 个 / , 也 就 是 看 有 没 有 名 为 / uri/,增加了一个 /,也就是看有没有名为 / uri///root/example/ 的目录。
又找不到,就会 fall back 到 try_files 的最后一个选项 /index.php,发起一个内部 “子请求”,也就是相当于 nginx 发起一个 HTTP 请求到 http://localhost/index.php。

2)
loaction / {
try_files $uri @apache
}

loaction @apache{
proxy_pass http://127.0.0.1:88
include aproxy.conf
}
try_files方法让Ngxin尝试访问后面得$uri链接,并进根据@apache配置进行内部重定向。

当然try_files也可以以错误代码赋值,如try_files /index.php = 404 @apache,则表示当尝试访问得文件返回404时,根据@apache配置项进行重定向。

2.配置文件
server {
listen 80;
server_name m.reworlder.com;
index index.html index.htm index.php;
root /var/www/mobile/;
try_files $uri $uri/ /index.html;

 location = /index.html {  #=为严格匹配,如匹配到会立即处理此请求
       add_header Cache-Control "no-cache, no-store"; #nginx设置不缓存
       add_header Pragma no-cache;
       add_header Expires 0;  #设置过期时间
     }

location /manage {
proxy_pass http://127.0.0.1:8090;
}
}

四、nginx只允许域名访问,禁止ip访问
博客网站:https://www.cnblogs.com/weifeng1463/p/9197971.html
1.解决方法:
1)在server段里插入如下正则:
listen 80;
server_name www.yuyangblog.net;
if ($host != ‘www.yuyangblog.net’){
return 403;
}

2)添加一个server
新加的server(注意是新增,并不是在原有的server基础上修改)
server {
listen 80 default;
server_name _;
return 403;
}
server {
listen 80;
server_name www.yuyangblog.net;
}

五、模块配置
1.autoindex模块配置,配置如下:
server {
listen 81;
server_name localhost;

charset utf-8,gbk;	#防止中文导致乱码
#access_log  /var/log/nginx/host.access.log  main;

location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
	}       

location /qyx {			#这里表示访问IP/qyx时会去/root/qyx下寻找资源进行显示,两者是下上级关系
    root   /root; 
    #alias /root;		#也可以通过alias指定去那个目录下寻找资源
    autoindex on;	#开启索引树
    autoindex_exact_size off;	#显示文件真实的大小
	} 
}

在这里插入图片描述
2.ngx_http_stub_status_module,状态信息配置:
location /nginx_status {
stub_status;
}
在这里插入图片描述
Active connections #当前活动的客户端连接数,包括Waiting连接数。
accepts #接受的客户端连接总数。
handled #已处理的连接总数。通常,参数值与accepts 除非达到某些资源限制(例如, worker_connections限制)相同。
requests #客户端请求总数。
Reading #nginx正在读取请求标头的当前连接数。
Writing #nginx正在将响应写回到客户端的当前连接数。
Waiting #当前等待请求的空闲客户端连接数。

3.ngx_http_access_module,访问控制模块配置(基于来源IP进行限制访问):
location / {
allow 192.168.1.0/24; #允许1.0网段访问
deny all; #拒绝其他所有访问
}
可放置在http, server, location, limit_except层。

4.ngx_http_auth_basic_module,通过用户密码来对其进行资源限制
(1)首先生成一个密码文件,密码文件的格式 name:password(加密),建议使用htpasswd OR openssl passwd
(2)下载htpasswd命令
yum provides htpasswd
yum -y install httpd-tools
htpasswd -c /etc/nginx/auth_conf qyx #-c:指定文件位置,然后直接跟用户名
如何需要加多个用户,可以通过"htpasswd -n 用户"来将其输出到终端,然后再将其加入文件中即可。
(3)修改配置文件,将其加入到需要限制的location下
location / {
auth_basic “input password”;
auth_basic_user_file conf/htpasswd;
}
重启即可。
可放置在http, server, location, limit_except层。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不忘丶初衷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值