你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Nginx在windows和Linux系统下的搭建过程

[复制链接]
gaosmile 发布时间:2020-9-25 22:18
【一、前言】
本文章主要讲解Nginx的基础搭建(如果有不知道web服务器的可以百度,或者我再做一篇图解web)。
Nginx在互联网中作为一个不可或缺的组件,我们看到LNMP集成环境。LNMP(Linux+Nginx+Mysql+Php);如果只知道这个不知道Nginx的搭建过程的话我们有Nginx的主要特性会错过。比如Nginx的优点:
9 s" a5 Z, ?0 z* y5 L. V3 f
  • 高可用(一个组件可以服务上千人)
  • 热部署(可以做到不停机就能升级基础设施服务)
  • 反向代理(通常可以,上游反向代理,下游负载均衡处理外部请求)

    9 [! t0 K9 I  m, I6 T; s

( v6 n: D, y1 a- U/ a: ]5 K# O. Z
【二、Nginx搭建】+ p* U* @: {# N4 w) i7 e2 j
1、首先先下载一个版本。
( h; U5 y% _  P! x) n4 ^( T
    ' S. p" m7 C& A1 i5 ~+ w# D* @% `

    : Z3 _9 h0 A3 q1 `
    1)Nginx社区版
    2)Nginx企业版 两者没有太大区别,都支持主要几大功能。
    3)淘宝版本的Nginx对IO进行了优化,至今淘宝在使用的Tengine。
2、Nginx版本分支
微信图片_20200925221618.png
3、版本如下:
1)MainLine Version(主线版本开发)
2)Stable(稳定版本)
3)Legacy Version(历史版本)-- 如果项目需要上到选定版本可以选这个
4、下载(我们以Nginx Stable Version为例子)。我们能看到Stable Version底下有三个栏目:
1)CHANGE-1.16 是介绍这个版本和上个版本的区别  
2)Nginx-1.16 pgp 这个是Linux版本下载选项,将会下载倒tar.gzNginx/Windows
3)1.16.1 这个是Windows系统下载的,将会下载window包

* x3 v( o' @" f% B8 f4 D9 T" @
【三、Nginx文件目录(如下)】
1、文件目录如下所示:
微信图片_20200925221621.png
2、文件内容解析如下:
1)conf(存放配置文件):Nginx.conf(主要的建站配置文件夹)
2)contrib(是一些Linux的Vim配置文件):作用是将整个vim文件移动到~/.vim/profile目录底下,就会在vim下有高亮表现
3)doc (documentation 文档目录):一些日志改变以及readme文档还有License授权
4)html(默认的html,网站的入口):
  • index.html 默认网页
  • 50x.html 常见的错误页面
    : }1 c3 ^9 u! W
5)logs(默认的日志文件夹)
6)temp(临时文件目录)
  
【四、Windows下搭建】
2 ?, W; W: p' D6 h# J* ^4 K; W/ D0 q
首先需要解决如何对下一页的网址进行请求的问题。可以点击下一页的按钮,观察到网站的变化分别如下所示:
1、Windows下我们直接点击Nginx根目录下的Nginx.exe即可立即使用了。闪退是正常现象,之后检查端口查看是否被占用,第一次启动推荐使用命令行启用 :
  • .\nginxpath\nginx.exe(一直停留不变则说明开启成功)  
    7 Q8 y3 Y+ [1 s# c& e$ u
微信图片_20200925221625.png

6 T* I. l+ k8 [$ v' f) b
2、 然后我们打开网址:
  • http://localhost:80
    7 k' U; l3 w, p! H# G
微信图片_20200925221628.png

1 u: N, r  {8 I, \2 h/ e$ S1 H
3、这样就是成功 如果失败了看下面。使用Windows + R启动命令行,拥有最高权限,输入命令:
  • netstart -ano | findstr 80 #找到占用的pid号。7 Q  D5 v9 \# f2 A
% {$ {, E3 i  }; D4 I% M  D
4、然后将其kill掉,命令如下:
  • taskkill /F /pid6 r3 G$ e4 R2 R! }# L
微信图片_20200925221631.png
5、之后在使用最开始的方法启动即可。
9 o4 a4 L) n6 i( J
【五、Linux环境下(Centos下)搭建】

5 B4 T0 B$ A4 n+ t9 C$ \
1、Linux环境下使用最高权限执行(不考虑用户权限)。
2、首先先安装被依赖的插件,命令如下:
  • yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
    ( [( j% o( S: i
微信图片_20200925221635.png
% b& g) R" i2 ~7 l! ^* B' E3 W# i, w
3、之后依次如此下列的命令,记得看注释噢~
  1. . ~7 w/ ?  z- M' }! w
  2. tar -zxvf Nginx-1.16.1.tar.gz
    ! i3 z" T: N' U" o
  3. cd Nginx-1.16.1
    , |" ~: T3 i/ M: z/ c' }0 z. V# i& M; E
  4. # 这下面几步骤是进行加载vim插件的,使其在修改conf的时候可以进行常亮8 T4 ]. ^) d) b! ^2 H8 a4 ^
  5. cd contrib( g: |- ]; x( I5 Q# ?
  6. mv contrib ~/.vim, v3 k, ?- `5 W1 C8 u& t
  7. cd ..
    ( K4 ^5 F0 e8 V& Y/ f% q
  8. # path自己需要安装的地方
    0 O1 S: R1 ]% e
  9. ./configure -prefix=/path/Nginx
    3 s; ]: @5 J# D: p; X% V% t# K% z
  10. # configure完成后即可,make && make install去) c- ]6 V9 D( A. y
  11. # configure 是进行配置化操作
    $ g9 `& i! M1 x9 e, n  \: ~
  12. # make 是进行编译操作% S) R9 v. [$ i
  13. # make install 是进行编译后文件的部署行为
    ) |: C% ?* T  ]) g. ^; _
  14. # 为了方便就将make && make install 一起进行
复制代码

6 n  R4 E1 z4 Q! S" N
微信图片_20200925221638.png
微信图片_20200925221642.png
4 m) o0 M% Y, D$ I8 ?
4、之后运行Nginx,命令如下:
  l! y6 I* [& h1 P; i8 G

  1. 9 i2 x$ e2 `# _0 u! m  Q4 S2 r# ^' o
  2. cd /nginxInStallPath0 Z1 P. D  m! P+ q
  3. ./Nginx
    # A4 `2 L  T+ A, R
  4. #没有任何信息则是运行成功了。Linux的没有任何消息就是最好的消息6 l% X3 {% h; ?3 G0 f( p9 Q
  5. curl http://localhost
复制代码

3 f# P6 ^7 c3 Z
微信图片_20200925221645.png
4 T8 p7 M4 P! ^  |2 `/ G2 z
5、至此Nginx搭建完成。下列命令是一些常规的操作命令:

  1. 3 n+ C* ?2 K% C1 i: l2 m' d
  2. ./Nginx -s reload #重新加载(Nginx能做到热部署的一个原因)4 |( d) E& Q8 u$ h
  3. ./Nginx -s stop #关闭服务器8 I& f& b9 K, h- b( n- \! ^
  4. ./Nginx -t # 可以测试刚修改的Nginx.conf能否生效
复制代码
/ [% v1 M3 K; R9 h

. @( i1 L/ j+ ^  S7 m7 J
【六、Nginx.conf配置】6 \7 W& D0 |$ ?, A1 P5 \

- r" c% \8 Y. }- r- E- ~# Z1 r, D
1、下面是进行Nginx.conf配置,命令如下:

  1. # V4 o5 C7 V" p
  2. # 下面是进行Nginx.conf配置1 H5 E; m* [4 a7 r% X* T
  3. cd conf, w* }) m  d) ^8 \
  4. vim Nginx.conf
复制代码

2 X8 m' q% l8 H- p
2、修改文件中的内容如下所示:
6 [% Q" U) P" w0 p
  1. ' B; e* q4 M: W* f
  2. worker_processes number;6 i2 Q7 @( W: J* n1 `$ m$ L
  3. # error_log path #错误日志文件位置' c# g8 {4 B: {6 A% a/ c9 M
  4. # error_log path notice 提醒错误文件位置6 [9 t9 B$ k  N8 B1 a: p
  5. # error_log path info 一些Logger::info的输出位置
    : {$ Y( o5 }0 s2 G; G2 O* U
  6. events {, ~& e& D- Q6 S; d
  7.     work_connections 1024; #定义最大连接数量
    ( w5 i0 u5 r0 I. @$ O
  8. }( E/ L- y3 E: d
  9. % w# x3 B. u! b' u' h' q* n" g
  10. # http 定义http的位置(高难度配置下章在讲解)
    # w; Z* P( u9 w; P* w
  11. http {% ]) F& U$ B. g
  12.     include mine.types; #定义包含类型,网页请求request_type的地方属性值设置地方在mine.types文件里卖你  f- a; v5 r) M
  13.     default_type:application/ocet-stream #设置属性流
    8 d6 W. N& Y# _( n/ p$ u
  14.     sendfile    on; #从一个 buffer到另一个 buffer的拷贝用于优化速度
    # V! b* h1 ]' i6 P; ^4 b. F
  15.     #tcp_nopush on;7 h% n" t" R) `) Z: A
  16.     keepalive_timeout 60; #设置请求超时时间
    5 w2 f9 x) z2 `4 s& g( O; a' j2 z

  17.   t7 t# v) f' D$ D
  18.     server {- D0 v) G! N  C9 u
  19.         listen 80 # 设置监听的端口  O5 h, m; t3 e0 [+ D) r" a9 G
  20.         server_name localhost # 设置监听的域名
    8 T/ e$ @) h9 U# L
  21.         charset koi8-r #设置字符集
    5 K% @& N: x  q6 e
  22. 7 {$ \+ t% H8 t: p2 C* a) s% T5 t- N% h8 l
  23.         #access_log logs/host.access.log main #设置主访问日志存储9 q: e" G  k! S% r- a( o: |
  24.   P6 s, {6 s+ c: S7 O- O
  25.         location / { #设置正则表达式匹配localhost/底下的目录按照此位置进行处理,1 V$ H& U/ ~+ l  E4 w. ]; e9 r( a+ e
  26.                      #下篇文章配置php会用到
    - m6 ?2 X/ P; d  b; B
  27.             root html; #设置网站根目录为html路径
    $ ~" z: J/ J" L: t& r
  28.             index index.html index.htm; #设置没有确定的资源文件下,会自动访问index.hmtl例如
    ! g7 L* |& o4 o# Y" R' ]
  29.                                         # 例如访问http://localhost会实际访问http://localhost/index.html
    6 @6 `% J- \: r7 d4 R
  30.                                         # 或者 http://localhost/index.htm
    7 k1 Y5 g. p5 d" Z) E+ o' w
  31.            }+ c7 ]# i- Y! w/ w( ~% d
  32.        error_page 404       /404.html #自定义错误页面代码下访问的页面  L9 d$ R: Y/ g0 \$ g/ o. P: n
  33. 2 t% w* m4 \' t
  34.        error_page 500 502 503 504 /50x.html
    2 J0 P; X  J* |9 }$ h1 T6 a
  35.        location = /50.html { #访问路径为50x.html 无论是500, 502, 503, 504, 505这些页面
    ! A0 C# ~, m3 S, J7 z' K
  36.             root html;
    ) d* D; \! X4 W2 G, @) T
  37.          }
    : o3 o, O" \: {# G+ c2 @% ^; p
  38.         # location ~\.php$ {$ R+ f' f5 x2 ]6 m$ a: ]$ j
  39.         #   proxy_pass http://127.0.0.1;# i8 t4 X3 x2 B2 F6 ]4 Z* E1 H
  40.         # }
    ) X3 O3 ^/ F2 n' z' q! ]% u$ V
  41.         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    + `7 M+ b8 ~7 X% g
  42.         #
    ( c( m+ C7 o3 U" R" J
  43.         #location ~ \.php$ {. O1 T) R# ]% t' k
  44.         #    root           html;
    , g2 Y" m  C! S. _9 [
  45.         #    fastcgi_pass   127.0.0.1:9000;
      c8 _/ N# o3 x5 D
  46.         #    fastcgi_index  index.php;
    * W* F. t% P5 p1 D
  47.         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    * p5 M' @3 R% S7 ]: ]
  48.         #    include        fastcgi_params;' r- {1 L" K9 S' F
  49.         #}" V9 I6 j/ n3 q

  50. : K4 x4 E( r8 `5 _( v$ y$ S
  51.        #location ~/\.ht {
    4 o9 D7 P3 ]& W" d% z9 F" i
  52.        #    deny all;拒绝所有用户访问
    / ?# m2 w7 s# k/ w& `1 T5 T- N
  53.       # }
    8 z3 X; `  a: j  g
  54.     }3 ]% K& H6 D: R" a' V& G9 Z- c
  55. # 底下是配置https,https是现在还在比较流行的一种安全web服务器的基本要求) _8 W( E5 K# Z7 e. j% U, s
  56.     https {' p( k" S  m0 Y9 \: ~" N5 X+ u
  57.     }0 f0 _4 c# u+ n$ H! l
  58. }
复制代码

1 W5 b" F" b" L. C$ {
【七、总结】
' X. R2 g# w0 F9 j

$ Q0 l6 k: J- A" ]3 n
1、Nginx是现代互联网企业中不可缺少的一门技术,在微服务中也极为重要,尤其反向代理所带来的抗风险能力极为重要,热部署能力。
2、本文主要讲述了Nginx在windows和Linux系统下的搭建过程,希望对搭建的学习有帮助。
: }/ M' m0 I1 [% C$ ?* G! x
赞 收藏 评论0 发布时间:2020-9-25 22:18

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版