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

[经验分享] Nginx的安装(笔记)

[复制链接]

尚未签到

发表于 2017-12-22 18:37:27 | 显示全部楼层 |阅读模式
  0, 先决条件
  Nginx 依赖 zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
  安装命令:
  yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
  1,Nginx 安装
  1.1, 下载 Nginx,下载地址:http://nginx.org/download/nginx-1.13.0.tar.gz
  $ wget http://nginx.org/download/nginx-1.13.0.tar.gz
  1.2, 解压安装包
  $ tar -zxvf nginx-1.13.0.tar.gz
  1.3, 进入安装包目录
  $ cd nginx-1.13.0
  1.4, 编译安装
  $ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-7.8
  $ make
  $ make install
  1.5, 查看nginx版本
  $ /usr/local/nginx/sbin/nginx -v
  到此,nginx安装完成。
  2, Nginx 配置
  2.1, 创建 Nginx 运行使用的用户 www(可选)
  $ /usr/sbin/groupadd www
  $ /usr/sbin/useradd -g www www
  2.2, 配置nginx.conf 默认路径:/usr/local/nginx/conf/nginx.conf
  $  cat /usr/local/nginx/conf/nginx.conf
  # 访问的用户
  # user  root;
  # 设置值和CPU核心数一致
  worker_processes  16;
  # 日志位置和日志级别
  #error_log  logs/error.log;
  #error_log  logs/error.log  notice;
  #error_log  logs/error.log  info;
  #pid        logs/nginx.pid;
  events {
  worker_connections  1024;
  }
  http {
  include       mime.types;
  default_type  application/octet-stream;
  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';
  #access_log  logs/access.log  main;
  sendfile        on;
  #tcp_nopush     on;
  keepalive_timeout  65;
  gzip  on;
  upstream system_server {
  server 127.0.0.1:8080;
  keepalive 2000;
  }
  server {
  listen       801;
  # listen          443 ssl;
  server_name  127.0.0.1;
  #
  # ssl                     on;
  # ssl_certificate         /usr/local/nginx/conf/ssl/server.crt;
  # ssl_certificate_key     /usr/local/nginx/conf/ssl/server.key;
  # ssl_session_timeout     5m;
  # ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
  # ssl_ciphers             ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
  # ssl_prefer_server_ciphers       on;
  # charset koi8-r;
  access_log  logs/host.access.log  main;
  location / {
  root   html;
  index  index.html index.htm;
  }
  # websocket
  location ^~ /socket {
  proxy_pass http://system_server;
  proxy_http_version 1.1;
  proxy_set_header   Host    $host;
  proxy_set_header   X-Real-IP   $remote_addr;
  proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  }
  # 正则表达式匹配路径
  location ~* ^/system/.*$ {
  proxy_pass http://system_server;
  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;
  # redirect server error pages to the static page /50x.html
  #
  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
  root   html;
  }
  }
  }
  2.3,检查配置文件ngnix.conf的正确性命令:
  $ /usr/local/webserver/nginx/sbin/nginx -t
  3, 启动 Nginx
  3.1 启动命令如下:
  $ /usr/local/webserver/nginx/sbin/nginx
  3.2 访问站点
  从浏览器访问我们配置的站点ip:http://127.0.0.1:9090
  4, 其它
  4.1 常用命令:
  # 重新载入配置文件

  /usr/local/webserver/nginx/sbin/nginx -s>  # 重启 Nginx
  /usr/local/webserver/nginx/sbin/nginx -s reopen
  # 停止 Nginx
  /usr/local/webserver/nginx/sbin/nginx -s stop
  4.2 location配置语法规则: location [=|^~|~|~*] /uri/ { … }
  =   开头表示普通字符开头,匹配规则:精确匹配;
  ^~  开头表示普通字符开头,匹配规则:uri 最长路径匹配;
  ~   开头表示特殊字符开头,匹配规则:正则匹配(区分大小写);
  ~*  开头表示特殊字符开头,匹配规则:正则匹配(不区分大小写);
  !~  匹配规则:区分大小写不匹配的正则;
  !~* 匹配规则:不区分大小写不匹配的正则;
  /   通用匹配,任何请求都会匹配到。
  4.3 rewrite 重写规则语法: rewrite 正则 替换 标志位
  4.3.1 正则表达式
  ^/images/([a-z]{2})/([a-z0-9]{5})/(.*)\.(png|jpg|gif)$   ---->http://xxxx.com/images/aa/abc01/test.gif
  #其中
  $1=([a-z]{2})      #$1=aa
  $2=([a-z0-9]{5})   #$2=abc01
  $3=(.*)            #$3=test
  $4=(png|jpg|gif)   #$4=gif
  4.3.2 URI 重写
  /data?file=$3.$4   # rewrite之后的query http://data?file=test.gif
  4.3.3 尾部的标记 last return break
  last 标记之后会从新loaction ,继续rewrite 最多10次;
  break标记是直接跳槽rewrite和localtion 进行query的处理
  return标记停止rewrite 处理指令,进而控制主HTTP 模块处理请求,也就是HTTP请求也不处理了,直接给client 返回(结合error0page)
  注意:nginx不对url做编码。例如:请求:/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
  5, FAQs
  5.1 NGINX启动时提示错误
  /usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
  解决方法:
  #64位OS
  ln -s /usr/local/lib/libpcre.so.1 /lib64
  #32位OS
  ln -s /usr/local/lib/libpcre.so.1 /lib

运维网声明 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.iyunv.com/thread-426933-1-1.html 上篇帖子: Nginx访问日志(access_log)配置及信息详解 下篇帖子: 散尽浮华
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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