Web服务-Nginx

NMP架构:Nginx+Mysql+php(python),Nginx官方(http://nginx.org),不支持java

比apache性能高,并发高,支持代理

访问原理:

客户访问--->nginx读取html文件传给客户端--->浏览器解释页面

    nginx模块化:安装时需要选择

依赖包:gcc、pcre、pcre-devel、zlib、zlib-devel、openssl、openssl-devel

Nginx配置文件及目录:

/usr/local/nginx/ #安装目录

/usr/local/nginx/conf/nginx.conf #主配置文件,会有一份nginx.conf.default原始

/usr/local/nginx/html #网页文件,默认index.html

/usr/local/nginx/logs #日志文件

/usr/local/nginxs/sbin/nginx #启动脚本

nginx -s stop #停止服务

nginx -s reload #重新加载配置文件

-V #查看安装时使用了什么参数

配置主配置文件:(/usr/local/nginx/conf/nginx.conf)

用户认证:

auth_basic "Input pass:"; #添加两行到server代码块中,端口下一行,提示用户输入

auth_basic_user_file "/usr/local/nginx/pass"; #对比用户输入与文件,pss文件要创建

#yum -y install httpd-tools #安装

#htpasswd -cm /usr/local/nginx/pass 用户名 #使用软件生成pass文件,-c 会覆盖

> 密码

加密网站:

生成证书(公钥)和私钥:(加密算法:对称算法(AES,DES);非对称算法(RSA,DSA);信息摘要(md5,sha256,sha512))

nginx默认读取位置:/usr/local/nginx/conf

#openssl genrsa -out my.key #生成私钥

#openssl req -new -x509 -key my.key -out my.crt #通过私钥生成证书

依次问:国家(CN),省份,城市,公司名称,部门,主机,邮箱

配置文件:/usr/local/nginx/conf/nginx.conf

取消https下server代码块的注释,

ssl_certificate my.crt; #证书

ssl_certificate_key my.key ; #私钥

注意:访问时,需要使用https,若无法访问,清楚浏览缓存,"md5sum file_name"信息摘要生成

虚拟主机:【基于域名,基于端口,基于iP:端口前加ip】ip访问,显示第一个

server{ #一个server代表一个虚拟主机

listen 80; #端口

server_name www.server.com; #域名

location / {

root html; #网页目录

index index.html index.htm #首页名

}

}

调度器(代理服务):(不作缓存,,web高可用,负载均衡)

upstream 集群名 { #添加在http代码块内,server代码块上

server web服务器ip;

server web服务器ip;

……

服务器ip后可用参数:

weight=数字 #权重

max_fails=次数 fail_timeout=秒数 #尝试连接X次,若失败,则X秒后再次连接

down #标记宕机

ip_hash; #加在server语句上,相同客户访问相同服务器

}

server {

listen 80;

server_name www.server.com;

location / {

proxy_pass http://集群名; #如果用户访问www.server.com则调度集群,而不是html中的

root html;

}

}

自带web检测,其中一个坏了,则不会访问,恢复后自动访问。

地址重写:(关键字写到location代码块外)

地址重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程。

地址重写的优点:

  • 缩短url,隐藏实际路径提高安全性
  • 易于用户记忆和键入。
  • 易于被搜索引擎收录

       配置:

……

location / {

root html;

index index.html index.htm;

}

rewrite 旧的地址 新地址 [redirect];

#地址要使用"/file_name"格式,使用redirect选项,用户地址会显示新地址 ,默认不变,目录有变化时必须使用redirect,否则页面图片不能加载;

rewrite ^/ http://www.baidu.com; 支持正则,跳转网站,不论访问什么,都转到百度

rewrite /(.*) http://www.baidu.com/$1 网站域名变化,目录不变,正则使用$1引用,

或者:不同用户,返回不同页面

if ($http_user_agent ~* firefox) { #使用if判断返回参数($http_user_agent)是否包含hirefox关键字,使用~*模糊匹配

rewrite ^/(.*) /firefox/$1; #任何页面都转到firefox目录下

}

注意:在重启服务时,会端口冲突,杀死进程在开。(netstat -nutlp | grep nginx)

优化:(/usr/local/nginx/conf/nginx.conf)

安全

server_tokens off; #不显示版本,要添加,在http代码块中

性能:

  • 客户端提示"too many openfiles",提高并发量,linux最大打开文件限制

    worker_processes 数字; #与cpu核心数一样

    worker_connections 数字; #并发量

  • 解决客户端访问头部过长:报414错误

    原理:客户端发送请求头--->服务器使用缓存储存请求

    client_header_buffer_size 1k; #最小缓存1k,要添加,http代码块中

    large_client_header_buffers 4 4k; #最大缓存4个4k

  • 客户端缓存:适合长其不变的静态数据(.jpg,avi,mp3,mp4,flv)[/nginx.conf]

    ……

    server {

    listen 80;

    location ~\.(jpg|png|gif) { #检查到图片文件则缓存30天

    expires 30d;

    }

    }

    注意:"ctrl+shift+delete"清楚缓存

  • 自定义返回404页面:[/nginx.conf,有模板]

    error_page 404 /404.html; #当出现404错误则显示404.html,404.html自创建

  • 防止盗链:

Nginx升级:升级后需要重启服务

curl命令:测试页面

curl [参数] http://域名

-I :显示服务器响应数据

原文地址:https://www.cnblogs.com/NINOMIYA1360/p/9943071.html

时间: 2024-10-27 05:52:24

Web服务-Nginx的相关文章

web服务nginx和php的相互关系

不识庐山真面目,只缘身在此山中,仅仅是做php开发完成业务逻辑,可能会被困在web服务这座山里面,都不清楚这些服务的运作,相互关系,特别是如果有专门的服务器运维的话,就更加容易忽略这些东西了,今天抽时间对这些做了个总结. 在本地开发的时候因为是用的windows系统,安装集成开发环境XAMMP,点击几个启动按钮就可以进行php web开发了,傻瓜式操作当然方便,但如果完全依赖傻瓜式操作,以后就可能变成真的傻瓜了. 服务器上用的是linux系统,用的是mysql + nginx +php 来实现w

nginx 与 tomcat 组合搭建web服务

部分内容转自 http://www.cnblogs.com/naaoveGIS/ 1. Web服务 nginx是常用的web服务器,用于获取静态资源,类似的服务器还有apache. tomcat是基于java servlet 的 web 容器,用于获取动态资源. 一般的web服务架构:前端部署nginx,后端部署tomcat.用户访问nginx,静态资源nginx直接返回,动态资源的请求被nginx转发到tomcat,tomcat将处理完的结构返回给nginx,然后到浏览器. 2.Nginx简介

Web服务之Nginx浅析

一.Nginx 简介: nginx [engine x]是Igor Sysoev编写的一个高性能的HTTP和反向代理服务器,另外它也可以作为邮件代理服务器. 在大多数情况下都是用来做静态web服务器和反向代理服务器,在作为反向代理服务器的时候,Nginx可以对后端的real server做负载均衡,基于应用层的负载均衡,但是他仅支持一些常见的协议,如:http.mysql.ftp.smtp. 特性: Nginx是一款面向性能设计的HTTP服务器,相较于Apache.lighttpd具有占有内存少

Web服务之Nginx反向代理与负载均衡

一.代理 正向代理: 正向代理是一个位于客户端和目标服务器之间的服务器,为了从目标服务器取得内容,客户端向代理发送一个请求并指定目标服务器,然后代理向目标服务器转交请求并将获得的内容返回给客户端.客户端必须要进行一些特别的设置才能使用正向代理. 作用: 访问无法访问的服务器(翻墙,懂得) 加速访问目标服务器(链路加速) Cache缓存(访问加速) 实现客户端访问授权 隐藏访问者 反向代理: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转

nginx提供web服务和实现负载均衡

##############nginx直接作为web服务站点###########背景:一台服务器建立两个web服务站点1)mkdir  /web1  /web2  ##建立二根个目录cd /web1vim index.htmlwww.web1.org    ##随便写东西 cd /web2vim index.html  www.web2.org    ##随便写东西和第一个不一样就行2)vim  /usr/local/nginx/conf/nginx.conf  ##添加以下参数 server

Zabbix 使用nginx做web服务

zabbix 使用nginx做web服务 逻辑图: yum  nginx装好,默认的default.conf文件直接backup掉,新建一个zabbx.conf文件, #如果有报错看下nginx_log 日志排错,zabbix3.0.4nginx转发依赖./php-fpm -v PHP 5.6.25,之前代理发现没用 报错也不是配置错误,查看官网发现是php-fpm版本问题. 10.10.254.25 zabbix_server服务器nginx配置: $ cat zabbix.conf  ser

linux-nginx服务nfs服务nginx反向代理三台web

一:nginx服务 1.二进制安装nginx包 [[email protected] ~]# systemctl disable firewalld  #关闭Firewalls自启动 Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service. [[ema

nginx web服务理论与实战

Nginx LNMP(linux nginx mysql php)也叫LEMP(linux engin x nginx mysql php) 3w并发, 10线程,只需150m内存....稍有点夸张,也说明优秀. nginx的一下功能: a.www web服务 b.负载均衡(反向代理) c.web cache(web缓存) nginx的优点: 0.配置简单.灵活. 1.高并发(静态小文件),静态1-2w,apache并发3-5千. 2.占用资源少. 3.功能多,每一个功能都不是特别强. 4.支持

python3.x +django + nginx + uwsgi 搭建web服务

最近一直在用django开发自己的网站.在开发和线上环境的对接过程中遇到了许多的坑.所以想以一个老鸟的经历来写一下怎么 搭建web服务 一.python3.x .django .nginx .uwsgi 的介绍: 哈哈自己baidu吧 二.安装python3环境 ----