Linux中Nginx服务器的部署和配置

Linux中Nginx服务器的部署和配置

2018年09月20日 17:56:38 谢公子 阅读数 2203

目录

Nginx安装方式:

yum源安装

目录结构:

源码包安装

目录结构:

Nginx中支持PHP

Nginx中配置php对mysql数据库的支持

Nginx配置反向代理服务器

正常代理

根据不同端口进行转发 

负载均衡 

本地转发代理(基于不同后缀) 


Nginx是一个高性能的HTTP和反向代理服务器,该程序由俄罗斯Rambler.ru 站点开发,Nginx因为性能稳定、低系统资源消耗而闻名。默认监听端口: tcp / 80

nginx安装包官网下载地址:http://nginx.org/en/download.html

Nginx安装方式:

yum源安装

yum安装会比源码包编译安装简单的多,默认会安装许多模块,但缺点是如果以后想安装第三方模块那就没办法了。

但是默认的 yum 源很多都没有nginx包的,想安装nginx,我们可以在 /etc/yum.repos.d/ 下新建一个 nginx.repo 文件,然后加入下面的内容 (Redhat 7 和 Centos 7 中适用)

 
  1. [nginx]

  2. name=nginx repo

  3. baseurl=http://nginx.org/packages/centos/7/$basearch/

  4. gpgcheck=0

  5. enabled=1

  6.  
  7. //如果是Centos6的系统,把baseurl中的7换成6即可

然后  yum  -y  install  nginx   安装即可。

目录结构:

程序可执行文件: /usr/sbin/nginx
主要配置文件:   /etc/nginx/conf.d/default.conf
网页主页目录:/usr/share/nginx/html/
日志文件目录:/var/log/nginx/
控制服务: systemctl   start / stop / restart  / status        nginx

访问服务器,如果看到下面页面,说明nginx服务器搭建完成!

源码包安装

  • 源码安装之前先安装编译工具: yum  -y  install  gcc  gcc-c++  make
  • 源码安装包含三个源码包:   nginx程序主包:nginx-xxx            nginx程序依赖包 :pcre-xxx 和  zlib-xxx                            百度云网盘链接:链接: https://pan.baidu.com/s/17msvtirIlbL2vXJaU-cp7Q   提取码: nq7w
  • 解压,然后分别进入三个解压目录, ./configure   编译, make && make install  安装即可

目录结构:

安装完成后,nignx默认安装在  /usr/local/  目录下
程序可执行文件: /usr/local/nginx/sbin/nginx
配置文件:  /usr/local/nginx/conf/nginx.conf
网页主页目录:/usr/loca/nginx/html/
日志文件目录:/usr/local/nginx/log/

但是,当你去 /usr/local/nginx/sbin/ 下执行  ./nginx  命令运行程序时,有可能会报错

 
  1. [root@Centos sbin]# ./nginx 

  2. ./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

报这个错是因为我们的 libpcre 的相关库文件在  /usr/loca/lib/  下,而nginx默认读的是 /lib64/  下的。所以,我们只需要添加一个软链接即可解决:  ln   -s   /usr/local/lib/libpcre.*    /lib64/

解决了上面的问题,我们就可以直接启动nignx了:我们可以使用这个命令启动nginx : /usr/local/nginx/sbin/nginx ,也可以去 /usr/local/nginx/sbin/   目录下直接 nginx 启动。但是这样未免太麻烦了。于是,我们也可以创建一个软链接: ln  -s    /usr/local/nginx/sbin/nginx     /usr/sbin/nginx       ,这样,无论我们到了哪个位置,都可以直接 nginx 启动。然后停止的话,可以用   nginx  -s  stop 。

Nginx中支持PHP

ningx中支持php的包为 php-fpm (php fastcgi process manager) , PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。

安装php-fpm:  yum  -y install  php-fpm

然后修改nginx配置文件: /etc/nginx/conf.d/default.conf

 
  1. location / { //默认所有形式的后缀都由这里处理

  2. root /usr/share/nginx/html; //主页目录

  3. index index.php index.html index.htm; //在这里加上 index.php

  4. }

  5.  
  6. // 把下面这几行的注释给取消,然后修改

  7. location ~ \.php$ { //将后缀为 .php 的由这里处理

  8. root /usr/share/nginx/html; //主页目录

  9. fastcgi_pass 127.0.0.1:9000;

  10. fastcgi_index index.php;

  11. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; //这里需要修改

  12. include fastcgi_params;

  13. }

修改完nginx配置文件后,开启php-fpm: systemctl  start  php-fpm  
然后让nginx重新加载配置文件:    nginx    -s  reload

php的配置文件: /etc/php.ini    是用来控制php解析器

/etc/php-fpm.conf是控制php-fpm守护进程的

Nginx中配置php对mysql数据库的支持

yum  -y  install  php-mysql

Nginx配置反向代理服务器

正常代理

将外界客户端发来的请求,转发给真正提供服务的服务器。

修改nginx配置文件:/etc/nginx/nginx.conf   ,在最后的 http{   } 中加入以下内容

 
  1. // 下面这些代码的意思是将本机80号端口接受来的消息转发给 192.168.10.10 的 80 号端口

  2. upstream www.xie.com{ //这里的域名随便填,但是要和下面的对应

  3. server 192.168.10.10:80; //真正提供服务的服务器的ip地址和端口

  4. }

  5. server{

  6. listen 80; // 监听80号端口发过来的消息

  7. location /{

  8. proxy_pass http://www.xie.com;

  9. index index.html index.php;

  10. }

  11. }

根据不同端口进行转发 

 

 
  1. //这些代码的意思是将80端口接收到的信息转发给 192.168.10.10的80端口,而将接受到的 8080端口的信息转发给 192.168.10.20的8080端口

  2. upstream www.xie.com{

  3. server 192.168.10.10:80;

  4. }

  5.  
  6. upstream www.xie2.com{

  7. server 192.168.10.20:8080;

  8. }

  9.  
  10. server{

  11. listen 80;

  12. location /{

  13. proxy_pass http://www.xie.com;

  14. index index.html index.php;

  15. }

  16. }

  17.  
  18. server{

  19. listen 8080;

  20. location /{

  21. proxy_pass http://www.xie2.com;

  22. index index.html index.jsp;

  23. }

  24. }

负载均衡 

 
  1. 1:轮询:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除

  2. upstream www.xie.com{

  3. server 192.168.10.10:80;

  4. server 192.168.10.20:80;

  5. }

  6. server{

  7. listen 80;

  8. location /{

  9. proxy_pass http://www.xie.com;

  10. index index.html index.php index.jsp;

  11. }

  12. }

  13.  
  14. 2:ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

  15. upstream www.xie.com{

  16. ip_hash;

  17. server 192.168.10.10:80;

  18. server 192.168.10.20:80;

  19. }

  20. server{

  21. listen 80;

  22. location /{

  23. proxy_pass http://www.xie.com;

  24. index index.html index.php index.jsp;

  25. }

  26. }

  27.  
  28. 3:weight:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

  29. upstream www.xie.com{

  30. server 192.168.10.10:80 weight=10;

  31. server 192.168.10.20:80 weight=20;

  32. }

  33. server{

  34. listen 80;

  35. location /{

  36. proxy_pass http://www.xie.com;

  37. index index.html index.php index.jsp;

  38. }

  39. }

  40.  
  41. 4: fair : 按后端服务器的响应时间来分配请求,响应短的服务器优先分配

  42. upstream www.xie.com{

  43. server 192.168.10.10:80 weight=10;

  44. server 192.168.10.20:80 weight=20;

  45. fair;

  46. }

  47. server{

  48. listen 80;

  49. location /{

  50. proxy_pass http://www.xie.com;

  51. index index.html index.php index.jsp;

  52. }

  53. }

本地转发代理(基于不同后缀) 

以上的反向代理的工作原理,都是根据监听不同端口,然后将流量转发到真正服务器的不同端口。

还有一种反向代理是监听80端口,然后根据请求的页面的不同后缀(.php / .jsp / 等等),来转发给不同的端口进行解析。

 
  1. server {

  2. listen 80;

  3. server_name localhost;

  4. location / {

  5. root /usr/share/nginx/html;

  6. index index.php index.html index.htm;

  7. }

  8.  
  9. location ~ \.php$ { //当请求的后缀是以 .php结尾的话,将流量转发给本地的800端口

  10. proxy_pass http://127.0.0.1:800;

  11. }

  12. location ~ \.jsp$ { //当请求的后缀是以 .jsp结尾的话,将流量转发给本地的8080端口

  13. proxy_pass http://127.0.0.1:8080;

  14. }

  15. location ~ \.(jpg|png)$ { //当请求的后缀是以 .jpg或.png 结尾的话,则请求 /img 目录下

  16. root /img;

  17. }

  18. }

 

相关文章: Linux下Apache服务的部署和配置

                   Linux中Tomcat和Jboss的安装和部署

                   LNMP环境搭建Wordpress博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值