nginx发送的信息(nginx fair)
nginx fair
nginx 五种策略
1.轮询(每个请求按照时间顺序分配到不同的服务器,如果后端服务器down掉,就自动剔除了)
2.指定权重(用于性能不均,哪个服务器分配的多些) weight=3
3.ip绑定(每个请求按照ip的hash结果分配,一个访客一个固定后端服务器,解决session缓存的问题)
4.fair (根据服务器响应时间分配请求)
5.url_hash (根据url的hash结果来分配请求,使每个url定向到一个后端服务器,后端服务器为缓存时比较有效)
nginx sbin
1.使用cd /usr/local/nginx/sbin命令进入nginx安装目录的sbin文件夹。
2. 输入启动命令
sbin文件里有个nginx文件,可使用./nginx的命令进行启动。
3. 启动成功
输入启动命令后,若没有出现任何报错信息,则启动成功。
nginx mail
首先你要理解一下个结构的关系:
1、mail server,如sendmail,是用来发送邮件和接收邮件的,即pop和smtp功能。
2、nginx本身是不能发送和接收邮件的,他只是一个中转机构,代理作用。你要做的:1、把后端的mail server配置好,能收发邮件以及管理。2、配置好nginx的代理功能,把邮件的出入都设置一下。确保nginx和mail之间能正常通讯3、把域名pop.abc.com和smtp.abc.com的A记录指向nginx的地址。4、等域名生效后,用foxmail之类发送和收取邮件看看,地址用域名pop和smtp那个。5、其它spf设置也设置一下。希望对你有帮助。
nginx消息转发
nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。比如在内网有一个mysql服务,想暴露到公网上去使用,就可以通过nginx代理的方式通过nginx来进行内网mysql的访问。
实验环境
nginx1.12.1 : 192.168.1.19
mysql : 192.168.1.20:3306
1:编译或者升级nginx至版本1.9.0以上,编译过程中需带上--with-stream。
# ./configure --prefix=/opt/apps/nginx --with-stream
# make && make install
2:配置stream,定义代理192.168.1.20的3306端口映射为端口2333。
# vi /opt/apps/nginx/conf/nginx.conf
……
……
events {
use epoll;
worker_connections 65535;
}
#stream配置
stream {
server {
listen 2333;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass 192.168.1.20:3306;
}
}
http {
……
……
}
3:开启nginx,验证代理是否生效。
image.png
可以看到我们现在可以通过nginx代理的端口访问到内网的mysql服务了。这也直接避免了mysql直接暴露到公网,增加些许的安全。当然,利用stream也可以实现后端服务的负载均衡。
nginx 状态信息
第一种:Nginx自己的错误页面
Nginx访问一个静态的html 页面,当这个页面没有的时候,Nginx抛出404,那么如何返回给客户端404呢?
看下面的配置,这种情况下不需要修改任何参数,就能实现这个功能。
server {
listen 80;
server_name www.test.com;
root /var/www/test;
index index.html index.htm;
location / {
}
# 定义错误页面码,如果出现相应的错误页面码,转发到那里。
error_page 404 403 500 502 503 504 /404.html;
# 承接上面的location。
location = /404.html {
# 放错误页面的目录路径。
root /usr/share/nginx/html;
}
}
第二种:反向代理的错误页面
如果后台Tomcat处理报错抛出404,想把这个状态叫Nginx反馈给客户端或者重定向到某个连接,配置如下:
upstream www {
server 192.168.1.201:7777 weight=20 max_fails=2 fail_timeout=30s;
ip_hash;
}
server {
listen 80;
server_name www.test.com;
root /var/www/test;
index index.html index.htm;
location / {
if ($request_uri ~* ‘^/$’) {
rewrite .* http://www.test.com/index.html redirect;
}
# 关键参数:这个变量开启后,我们才能自定义错误页面,当后端返回404,nginx拦截错误定义错误页面
proxy_intercept_errors on;
proxy_pass http://www;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
}
第三种:Nginx解析php代码的错误页面
如果后端是php解析的,需要加一个变量
在http段中加一个变量
fastcgi_intercept_errors on就可以了。
指定一个错误页面:
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
指定一个url地址:
error_page 404 /404.html;
error_page 404 = http://www.test.com/error.html;
nginx中sendfile
nginx会影响静态资源服务,nginx如果配置不当就会出现404之类的错误,这其实是访问静态资源文件的方法或者路径不当所致,静态资源服务就是非服务器动态生成的文件,一个客户端需要访问服务器获取静态资源,但是服务器和客户端的物理距离比较远,为了节省网络资源的开销,那么可以在多个地方建立代理,客户端访问的时候,通过CDN服务找到最近的代理就可以了,sendfile,为了提高网络的使用效率,可以设置为on,但是会损失一些实时性。
设置为on,会提高网络中报文传输的实时性。是否压缩。on 表示的时开启压缩。http 的版本。还要考虑是否开启了预读功能。如果开启了预读功能,那么会先去找改文件的压缩文件。但是,这对服务器的磁盘可能会有一定的限制。因为需要存储该文件的压缩文件。
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.