资讯专栏INFORMATION COLUMN

Nginx服务器开箱体验

smartlion / 3699人阅读

摘要:概述是高性能的轻量级服务器,由于其提供代理和反向代理负载均衡缓存等一系列重要特性,从而广泛应用于当今的服务之中,学习其很有必要。笔者也是从一个初学者开始学习并记录,希望后续渐渐深入。


概述

Nginx是高性能的轻量级WEB服务器,由于其提供HTTP代理和反向代理、负载均衡、缓存等一系列重要特性,从而广泛应用于当今的WEB服务之中,学习其很有必要。笔者也是从一个初学者开始学习并记录,希望后续渐渐深入。

对了,为什么不用Docker来启动Nginx呢?因为不想啊!

</>复制代码

  1. 注: 本文首发于 My 公众号 CodeSheep ,可 长按扫描 下面的 小心心 来订阅 ↓ ↓ ↓


实验环境

CentOS 7.4 64Bit

Nginx 1.14.0 稳定版


下载Nginx

</>复制代码

  1. wget http://nginx.org/download/nginx-1.14.0.tar.gz

安装Nginx

安装第三方库

</>复制代码

  1. yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
  2. yum -y install pcre-devel

安装成功以后可以查看pcre版本: pcre-config —version

解压安装包

</>复制代码

  1. tar zxvf nginx-1.14.0.tar.gz

从configure脚本自动生成Makefile

</>复制代码

  1. cd /root/nginx-1.14.0
  2. ./configure --prefix=/usr/local/webserver/nginx

这里的 —prefix 选项是指定Nginx的安装路径,这里我是指定安装到路径:/usr/local/webserver/nginx

编译安装

</>复制代码

  1. cd /root/nginx-1.14.0
  2. make && make install

编译安装过程如下,直到完成

查看Nginx版本

</>复制代码

  1. /usr/local/webserver/nginx/sbin/nginx -v

查看安装后的目录

总共四个目录:confhtmllogssbin


启动Nginx

</>复制代码

  1. /usr/local/webserver/nginx/sbin/nginx

浏览器访问Nginx成功(注意:由于我的机子上80端口被占用了,因此我将Nginx起在81端口上了):


常用指令

测试nginx测试文件是否正确

</>复制代码

  1. /usr/local/webserver/nginx/sbin/nginx -t

指定配置文件启动

</>复制代码

  1. /usr/local/webserver/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

重启nginx

</>复制代码

  1. /usr/local/webserver/nginx/sbin/nginx -s reload # 重新载入配置文件
  2. /usr/local/webserver/nginx/sbin/nginx -s reopen #重启 Nginx

停止nginx

</>复制代码

  1. /usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx

Nginx服务器配置实例与实验

准备配置文件 nginx.conf 如下:

</>复制代码

  1. // 全局配置
  2. user nobody nobody;
  3. worker_processes 3;
  4. error_log logs/error.log;
  5. pid logs/nginx.pid;
  6. // events块配置
  7. events {
  8. use epoll;
  9. worker_connections 1024;
  10. }
  11. // http块配置
  12. http {
  13. include mime.types;
  14. default_type application/octet-stream;
  15. log_format main "$remote_addr - $remote_user [$time_local] "$request"
  16. "$status $body_bytes_sent "$http_referer"
  17. ""$http_user_agent" "$http_x_forwarded_for”’;
  18. access_log logs/access.log main;
  19. sendfile on;
  20. keepalive_timeout 65;
  21. // 虚拟主机1:基于域名codesheep.com
  22. server {
  23. listen 8088;
  24. server_name codesheep;
  25. access_log /codesheep/webserver/server1/log/access.log;
  26. error_page 404 /404.html;
  27. location /server1/location1 {
  28. root /codesheep/webserver;
  29. index index.server1-location1.htm;
  30. }
  31. location /server1/location2 {
  32. root /codesheep/webserver;
  33. index index.server1-location2.htm;
  34. }
  35. }
  36. // 虚拟主机2:基于IP地址:192.168.31.177
  37. server {
  38. listen 8089;
  39. server_name 192.168.31.177;
  40. access_log /codesheep/webserver/server2/log/access.log;
  41. error_page 404 /404.html;
  42. location /server2/location1 {
  43. root /codesheep/webserver;
  44. index index.server2-location1.htm;
  45. }
  46. location /srv2/loc2 {
  47. alias /codesheep/webserver/server2/location2/;
  48. index index.server2-location2.htm;
  49. }
  50. location = /404.html {
  51. root /codesheep/webserver/;
  52. index 404.html;
  53. }
  54. }
  55. }

很明显,在上述配置文件中配置了两个虚拟主机:一个 基于域名一个基于IP地址

为了验证该配置的正确性,我们对照此配置,构建一个与其对应的静态站点,其目录结构如下:

现在可以启动Nginx服务器,并在浏览器中进行测试

测试站点server1的访问

这就说明配置文件中虚拟主机1配置生效!

</>复制代码

  1. 注意:这里域名www.codesheep.com之所以能被解析识别,是因为本地配置了DNS服务器!

测试站点server2的访问

这就说明配置文件中虚拟主机2配置生效!


后记

作者更多的原创文章在此,欢迎观赏

My Personal Blog

作者更多的SpringBt实践文章在此:

Spring Boot应用监控实战

SpringBoot应用部署于外置Tomcat容器

ElasticSearch搜索引擎在SpringBt中的实践

初探Kotlin+SpringBoot联合编程

Spring Boot日志框架实践

SpringBoot优雅编码之:Lombok加持


如果有兴趣,也可以抽点时间看看作者一些关于容器化、微服务化方面的文章:

利用K8S技术栈打造个人私有云 连载文章

从一份配置清单详解Nginx服务器配置

Docker容器可视化监控中心搭建

利用ELK搭建Docker容器化应用日志中心

RPC框架实践之:Apache Thrift

RPC框架实践之:Google gRPC

微服务调用链追踪中心搭建

Docker容器跨主机通信

Docker Swarm集群初探

高效编写Dockerfile的几条准则



文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39955.html

相关文章

  • Spring Boot Admin 2.0开箱体验

    摘要:概述在我之前的应用监控实战一文中,讲述了如何利用版本来可视化地监控应用。接下来我们就来创建一个待监控的示例。 showImg(https://segmentfault.com/img/remote/1460000015671446); 概述 在我之前的 《Spring Boot应用监控实战》 一文中,讲述了如何利用 Spring Boot Admin 1.5.X 版本来可视化地监控 ...

    CastlePeaK 评论0 收藏0
  • 从一份配置清单详解Nginx务器配置

    摘要:在本文中,我们继续延续前文,从前文给出的一份示例配置清单开始,详解一下服务器的各种配置指令的作用和用法。是否允许同时接收多个网络连接指令格式该指令默认为状态,意指每个一次只能接收一个新到达的网络连接。 本文已获得原作者CodeSheep授权。showImg(https://segmentfault.com/img/remote/1460000015646704); 概述 在前面《Ngi...

    Achilles 评论0 收藏0
  • 从一份配置清单详解Nginx务器配置

    摘要:在本文中,我们继续延续前文,从前文给出的一份示例配置清单开始,详解一下服务器的各种配置指令的作用和用法。是否允许同时接收多个网络连接指令格式该指令默认为状态,意指每个一次只能接收一个新到达的网络连接。 本文已获得原作者CodeSheep授权。showImg(https://segmentfault.com/img/remote/1460000015646704); 概述 在前面《Ngi...

    Fourierr 评论0 收藏0
  • 从一份配置清单详解Nginx务器配置

    摘要:在本文中,我们继续延续前文,从前文给出的一份示例配置清单开始,详解一下服务器的各种配置指令的作用和用法。是否允许同时接收多个网络连接指令格式该指令默认为状态,意指每个一次只能接收一个新到达的网络连接。 showImg(https://segmentfault.com/img/remote/1460000015385948); 概述 在前面《Nginx服务器开箱体验》 一文中我们从开箱...

    kevin 评论0 收藏0
  • Kubernetes上的负载均衡详解

    摘要:部署只是一种规则,控制器组件会将这一规则应用于实际负载均衡器中。原因是功能仅允许将端口用于路由,负载均衡器和则可作为全局启动。负载均衡的限制提供了功能丰富的负载均衡器支持详细介绍在此。截至目前,我们暂时无法使用工具将负载均衡器配置从转换为。 如果您的应用程序是面向大量用户、会吸引大量流量,那么一个不变的目标一定是在高效满足用户需求的同时、不让用户感知到任何类似于服务器繁忙!的情况。这一...

    CoderBear 评论0 收藏0

发表评论

0条评论

smartlion

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<