设为首页 收藏本站
查看: 944|回复: 0

[经验分享] nginx的简介和基本配置

[复制链接]

尚未签到

发表于 2018-11-14 06:13:55 | 显示全部楼层 |阅读模式
  1 简介
  Nginx(发音同 engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪网易腾讯等。
  2优点
  Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:
  在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。
  
  作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。  作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。
  Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。
  3安装(源码包)
  a低版本
  yum  -y  groupinstall  "开发工具"     "开发库"
  rpm -q  make  gcc  gcc-c++
  netstat  -utunalp | grep :80   确保80端口没有被占用
  useradd  -M  -s  /sbin/no   www                默认使用www用户
  
  yum -y install  pcre-devel
  nginx  地址重写    修改客户端访问自己的url路径
  Rewrite 主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Nginx的Rewrite功能,在编译Nginx之前,需要编译安装PCRE库。
  
  tar -zxvf nginx-0.8.55.tar.gz
  ./configure  --help
  ./configure  --prefix=/usr/local/nginx   --user=www                  制定安装目录和用户,
  --group=www   --with-http_stub_status_module                      工作组和功能
  --with-http_ssl_module
  make  
  make   install
  在 /usr/local/nginx/ 下     
  conf/nginx.conf                                                                               //主配置文件
  html                                                                                                  //网页目录
  logs                                                                                                  //日志文件
  sbin/nginx                                                                                        //启动脚本
  
  启动服务   /usr/local/nginx/sbin/nginx
  停止服务   /usr/local/nginx/sbin/nginx  -s  stop
  nginx 启动脚本常用选项
  -h     查看帮助信息
  -v查看nginx版本
  -V查看编译参数   ./configure
  -t    nginx.conf测试默认配置文件
  -c   安装目录/conf/nginx-2.conf     指定配置文件
  -s  stop      停止nginx服务
  
  格式  :   pkill/kill     -信号     进程名/pid号
  例子 :  pkill      -int     nginx
  信号
  TERM, INT   快速关闭
  QUIT 从容关闭,关闭主进程顺便关闭工作子进程
  HUP         重载配置用新的配置开始新的工作进程从容关闭旧的工作进程
  USR1 重新打开日志文件
  USR2 平滑升级可执行程序
  WINCH 从容关闭工作进程,不会立即关闭子进程
  pkill -USR1  nginx
  kill  -INT  `cat /usr/local/nginx/log/nginx.pid`
  
  b平滑升级nginx (在不停止服务,升级软件版本,版本不宜跨度太大)
  
  tar -zxvf nginx-1.0.5.tar.gz
  cd nginx-1.0.5
  ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
  make
  mv  /usr/local/nginx/sbin/nginx  /usr/local/nginx/sbin/nginxold
  mv nginx-1.0.5/objs/nginx  /usr/local/nginx/sbin/
  cd nginx-1.0.5
  make  upgrade
  /usr/local/nginx/sbin/nginx  -v                                                       查看版本
  
  4基本配置
  
  #运行用户
  user www-data;   
  #启动进程,通常设置成和cpu的数量相等
  worker_processes  1;
  #全局错误日志及PID文件
  error_log  /var/log/nginx/error.log;
  pid        /var/run/nginx.pid;
  #工作模式及连接数上限
  events {
  use   epoll;             #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
  worker_connections  1024;#单个后台worker process进程的最大并发链接数
  # multi_accept on;
  }
  
DSC0000.jpg

  
  a  基于域名的虚拟主机(通过主机名区分客户端的访问)
  http {
  server  {
  listen  80;
  server_name   www.zwl.com;
  location  /  {
  root  /www;
  index index.html;
  }
  }
  server {
  listen  80;
  server_name  bbs.zwl.com;
  location  /  {
  root  /bbs;
  index index.html;
  }
  }
  }
  
  b基于端口的虚拟主机(通过端口区分客户端的访问)
  http://www.zwl.com:80     www
  http://www.zwl.com:8000     bbs
  http://www.zwl.com:8090     web
  http  {
  server  {
  listen  80;
  server_name   www.zwl.com;
  location  /  {
  root  /www;
  index index.html;
  }
  }
  server {
  listen  8000;
  server_name  www.zwl.com;
  location  /  {
  root  /bbs;
  index index.html;
  }
  }
  server {
  listen  8090;
  server_name www.zwl.com;
  location  /  {
  root  /web;
  index index.html;
  }
  }
  }
  
  c基于ip的虚拟主机(通过ip区分客户端的访问
  *  ip 地址要有对应的物理接口
  http://192.168.10.254     www
  http://192.168.10.200     bbs
  ifconfig eth0  192.168.10.254
  ifconfig eth0:0  192.168.10.200
  http  {
  server  {
  listen  192.168.10.254:80;
  #server_name   www.zwl.com;
  location  /  {
  root  /www;
  index index.html;
  }
  }
  server {
  listen  192.168.10.200:80;
  #server_name  bbs.zwl.com;
  location  /  {
  root  /bbs;
  index index.html;
  }
  }
  }
  
  d反向代理也可作web的负载均衡
  反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
  通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务
   DSC0001.jpg DSC0002.jpg 验证:客户端访问
  
DSC0003.jpg

DSC0004.jpg

  看见了吧,同样的域名可以访问不同的页面,nginx他把两台web服务器分别来使用,1:1的
  nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
  另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
  
  
  5、用户访问控制
  只允许从ip地址是192.168.10.200客户端访问 网站192.168.10.254服务器的8000端口
  server   {
  listen  8000;
  server_name   www.zwl.com;
  location  /  {
  root   /bbs;
  index  index.html;
  allow 192.168.10.200;
  deny all;
  #deny   192.168.10.0/24 ;
  #allow  all;
  }
  }
  6、用户认证   (用户访问网站页面时要输入正确的用户名和密码才可以访问)
  访问用户名wangfang     791001
  server   {
  listen  8000;
  server_name   www.zwl.com;
  location  /  {
  root   /bbs;
  index  index.html;
  allow 192.168.10.200;
  deny all;
  #deny   192.168.10.0/24 ;
  #allow  all;
  auth_basic  "input username and password";
  auth_basic_user_file    /usr/local/nginx/conf/authuser.txt;
  }
  }
  7防盗链
  盗 链:   其他的网站盗连你的网站资源 给自己盈利。
  
  location  ~*   \.(gif|jpg|png|swf|flv)$ {
  valid_referers  none  blocked  www.zwl.com  .zwl.com;
  if ($invalid_referer) {
  rewrite   ^/        http://192.168.10.254/error.html;
  #return   404;
  }
  }
  这就是防止其他网站访问图片的例子,只有在本机和本域才能访问的
  
  
  
  
  
  
  



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-634680-1-1.html 上篇帖子: nginx.conf 示例配置 下篇帖子: CentOS 6.5 编译安装 nginx
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表