1.检查linux上是否通过yum安装了nginx

  1. rpm -qi nginx

2.解决安装nginx所依赖包

  1. yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

3.源代码编译安装Nginx(在/opt目录下)

  1. 1.下载淘宝Nginx源码包
  2. wget http://tengine.taobao.org/download/tengine-2.3.0.tar.gz
  3. 2.解压缩源代码
  4. tar -zxvf tengine-2.3.0.tar.gz
  5. 3.进入到tengine-2.3.0目录,进行编译安装
  6. cd tengine-2.3.0
  7. 4.释放编译文件,指定安装路径
  8. .configure --prefix=/opt/tengine
  9. 5.开始编译且安装
  10. make&&make install
  11. 6.卸载之前通过yum安装的Nginx
  12. yum remove nginx -y
  13. 7.查看nginx的安装目录
  14. ls /opt/tengine
  15. conf:存放nginx所有的配置文件的目录
  16. html:存放前端静态页面
  17. logs:存放nginx的日志目录
  18. sbin:存放nginx的可执行的命令
  19. 8.配置nginx的环境变量,支持快速启动(命令行直接nginx)
  20. 1.cd /opt/tengine/sbin
  21. 2.pwd
  22. 3.vim /etc/profile
  23. PATH中加入pwd的结果
  24. 9.启动nginx
  25. nginx
  26. 10.修改nginx的首页静态模板文件
  27. vim /opt/tengine/html/index.html
  28. 输入你想要显示的内容

4.修改nginx的配置文件的

1.vim /opt/tengine/conf/nginx.conf

  1. #查看nginx.conf的内容,过滤掉注释内容,和空白行
  2. [root@wangdachui conf]# grep -v "^#" nginx.conf|grep -v "^$"
  3. #全局变量,工作进程数
  4. worker_processes 1;
  5. events {
  6. epoll;#提高大并发下小活动量的CPU利用率
  7. worker_connections 65536; #根据linux的文件描述符来修改
  8. }
  9. #http代表nginx核心功能块
  10. http {
  11. include mime.types;
  12. default_type application/octet-stream;
  13. gzip on; #开启压缩图片功能
  14. #代表nginx的虚拟主机功能
  15. #当我们访问192.168.226.128:80/就进入这个虚拟主机的配置
  16. #第一个虚拟主机dnf网址
  17. server {
  18. #nginx监听的端口
  19. listen 80;
  20. #填写服务器的域名,没有域名就写ip地址即可
  21. server_name 192.168.226.128;
  22. #路径资源匹配 ,匹配 / 目录
  23. #192.168.226.128:80/
  24. #这是最低级匹配,所有的请求,都会进入这个location
  25. location / {
  26. #root参数指的是定义一个虚拟主机根目录
  27. root html; #填写静态模板文件的绝对路径
  28. #index参数指定首页文件的名字
  29. index index.html;
  30. }
  31. #第二个虚拟主机 韩剧网址
  32. server {
  33. listen 80;#监听80端口
  34. server_name 192.168.226.128;服务器的ip
  35. location / {
  36. root /opt/s18hanju/;
  37. index index.html;
  38. }
  39. }
  40. }

2.nginx功能学习

  1. 1.修改windows下的host文件,顶一个假域名
  2. c:windows/system32/drivers/etc/hosts
  3. 如果不能编辑,右击选择属性,改变它的权限信息.
  4. 2.在最下面写入
  5. linux的IP 域名
  6. 192.168.119.147 www.hahahn.com
  7. 这样就可以通过域名访问了
  8. 3.配置nginx多虚拟机,其实就是在nginx.conf中写入多个server,代表多个虚拟主机
  9. server {
  10. listen 80;
  11. server_name www.s18dnf.com;
  12. location / {
  13. root /opt/s18dnf/;
  14. index index.html index.htm;
  15. }
  16. }
  17. #第二个虚拟主机 韩剧网址
  18. server {
  19. listen 80;
  20. server_name www.s18hanju.com;
  21. location / {
  22. root /opt/s18hanju/;
  23. index index.html;
  24. }
  25. }
  26. 注意事项:1.两个server同在http核心模块中的同一级目录
  27. 2.server_name如果对应的是本机的IP地址,虚拟主机是自上而下加载的,也就是说不管输 入什么在windows的hosts文件配好的假域名,都只会匹配到第一个虚拟主机
  28. 3.如果server_name对应的是域名,则nginx会根据域名找到与之匹配的域名对应的虚拟主机
  29. 4.修改完nginx.conf文件要平滑重启
  30. nginx -s reload
  31. nginx -t 查看是否有语法错误
  32. 5.nginx的状态模块功能学习
  33. 1.修改nginx.conf的配置文件
  34. 找到一个server虚拟主机,写入如下配置
  35. location /status {
  36. stub_status on;
  37. }
  38. 2.重启nginx,在对应域名后加 /status 加载这个status状态模块功能
  39. 3.通过ab压测命令,去给网站发起n多个请求
  40. 安装ab压测命令工具
  41. yum -y install httpd-tools
  42. 4.给服务器nginx,发起一万个请求
  43. ab -kc 1000 -n 10000 http://192.168.226.128/
  44. 5.nginx的access.log访问日志功能
  45. 编辑nginx.conf打开如下配置参数
  46. 打开如下注释
  47. log_format main '$remote_addr - $remote_user [$time_local] "$request"'
  48. '$status $body_bytes_sent "$http_referer" '
  49. '"$http_user_agent" "$http_x_forwarded_for"';
  50. access_log logs/access.log main;
  51. access_log "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G" main;
  52. 重启nginx查看logs下的日志文件,检测用户请求信息
  53. tail -f logs/access.log,然后用浏览器访问时,就会看到日志的变化.
  54. 6.优化nginx的404页面
  55. 修改nginx.conf的404错误页面优化
  56. 找到如下配置
  57. #当错误状态码是 40x系列就返回,nginx目录下的40x.html
  58. error_page 404 403 402 400 401 /40x.html;
  59. 重启nginx 查看404页面(输入正确的url,后面再随便加点东西)
  60. 7.限制IP访问
  61. 找到nginx.conf修改如下代码
  62. location / {
  63. #禁止192.168.226.0/24 这个地址段所有的ip访问
  64. deny 192.168.226.1;
  65. root /opt/s18dnf;
  66. index index.html index.htm;
  67. }
  68. 8.nginx反向代理功能
  69. 准备两台机器,一个是真实的资源服务器,另一个是反向代理服务器,分别安装nginx
  70. 一个能正常返回资源,另一个的nginx.conf,找到一个server虚拟主机,location /配置如下:
  71. location / {
  72. # proxy_pass http://代理的主机IP
  73. proxy_pass http://192.168.119.147
  74. }
  75. 重启nginx,然后访问代理服务器,就会访问到另一台资源服务器的资源

5.出现的问题

浏览器出现403(访问权限不足)

  1. 1.将资源写在了/root下面,普通用户访问不到
  2. 2.找到nginx.conf中deny屏蔽掉了此IP地址,删除禁止就好了.

06 Nginx的更多相关文章

  1. 06 nginx Location详解之精准匹配

    一:Location详解之精准匹配 location 语法 location 有”定位”的意思, 根据Uri来进行不同的定位. 在虚拟主机的配置中,是必不可少的,location可以把网站的不同部分, ...

  2. 06 . Nginx静态资源缓存

    Nginx静态资源 Nginx可以处理静态资源 非Web服务器可以运行处理而生成的文件,即服务器只需要从硬盘或者缓存中读取然后直接给客户端响应即可. 常见的静态资源 # 浏览器渲染: html文件,样 ...

  3. nginx cpu高排查

    首先查看nginx的error日志,无异常打印. cpu占用如下图所示: top - 10:05:40 up 233 days, 16:28, 4 users, load average: 25.53 ...

  4. 八.nginx网站服务实践应用

    期中集群架构-第八章-期中架构nginx章节====================================================================== 01. web ...

  5. nginx高并发下配置参数

    今天下午,测试组同事模拟800个用户同时发起请求,nginx开始报错, "Too Many Open Files"  我们使用的是Dell R430服务器,2个物理CPU,每个CP ...

  6. linux下如何启动nginx?

    命令: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ........... [root@localhost sbin ...

  7. Nginx之常用基本配置(三)

    前面我们聊了下了Nginx作为WEB服务器对客户端请求相关配置,文件操作优化.Nginx访问控制.basic验证,.状态模块状态页.gzip压缩配置:回顾请参考https://www.cnblogs. ...

  8. 神器 Nginx 的学习手册 ( 建议收藏 )

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ Nginx 是一个高性能的 HTTP 和反向代理服务器,特点是占用内存少,并发能力强,事实上 ...

  9. Linux 提高操作效率之 tab 命令补全

    最近在使用阿里云 ECS 时,发现 Centos 无法进行 tab 补全,特别影响操作效率,本文简单记录下 Linux 下的 tab 命令补全功能,希望对 Linux 初学者有所帮助. 安装 Linu ...

随机推荐

  1. 最少步数&P1443 马的遍历

      1330:[例8.3]最少步数 s数组:记录(1,1)到达每一点需要的最少步数 s[1][1]自然为 0,其余初始化为 -1 que数组:que[#][1] 表示(1,1)可到达点的 x 坐标 q ...

  2. [转]zookeeper入门

    zookeeper的目标是将复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用. 参考文章:http://developer.51cto.com ...

  3. javascript之Prototype属性

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. sptringboot2.0实现aop

    题记:在项目需要对请求日志情形管理. 声明:参考博客https://blog.csdn.net/bombsklk/article/details/79143145 1.在pom.xml中加入依赖 &l ...

  5. 阿里JAVA诊断工具Arthas的初步使用

    Arthas 是Alibaba开源的Java诊断工具,主要解决以下问题: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 comm ...

  6. layui时间控件选择时间范围

    layui.use([ 'laydate'], function(){ var $ = layui.$; var laydate = layui.laydate; var max = ${nowYea ...

  7. Ironic 的 Rescue 救援模式实现流程

    目录 文章目录 目录 救援模式 实现 UML 图 救援模式 以往只有虚拟机支持救援模式,裸机是不支持的.直到 Queen 版本 Ironic 实现了这个功能.救援模式下,用户可以完成修复.Troubl ...

  8. 【.NET】CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\d29b5393\123c3a1c\App_Code.odl3w4o6.dll”--“拒绝访问。 ”

    IIS部署网站或者Webservice时,出现以下问题: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Tempor ...

  9. NOIp2016 D2T3 愤怒的小鸟【搜索】(网上题解正解是状压)

    题目传送门 没啥别的想法,感觉就是搜索,经过原点的抛物线已知两个点就可以求出解析式,在还没有被打下来的两个猪之间随意配对,确定解析式之后标记在这个抛物线下被打下来的猪. 猪也可以单独用一个抛物线打下来 ...

  10. 基于硬件的消息队列中间件 Solace 简介之二

    前言...... 前面简单介绍了Solace来自于哪家公司, 主要能做哪些事情. 本篇主要进一步介绍Solace作为消息传递的中间件如何工作的. 传统意义上来讲, 每当我们谈到消息中间件时, 首先想到 ...