首先粘贴一下NGINX的资料站
官网
http://nginx.org/

中文资料
http://www.nginx.cn/doc/index.htm

这次安装采用如下简单方法,注意这个是CENTOS7的方式,其他系统还是要按照官方网站指引走。

  1. sudo yum install yum-utils
  2. vim /etc/yum.repos.d/nginx.repo 建立这个新文件并在里边添加以下内容并保存
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
  1. sudo yum-config-manager --enable nginx-mainline
  2. sudo yum install nginx
    至此算是安装完成了,下面记得关闭防火墙
  3. systemctl stop firewalld
  4. 尝试用系统模式启动下 systemctl start nginx
插播补充知识点:这里罗列一些通过系统管理的命令,备查systemctl  status  nginx 查看nginx状态systemctl  start    nginx  启动nginx服务systemctl  stop     nginx            关闭nginx服务systemctl  enable nginx  设置开机自启systemctl  disable nginx  禁止开机自启
  1. 查看一下信息ps -aux | grep nginx
  2. 没问题的话关闭它,然后进行配置systemctl stop nginx
  3. nginx 的默认配置目录文件为:/etc/nginx/nginx.conf
  4. 执行vim /etc/nginx/nginx.conf去配置一下
user  nginx;  #用户名,这个在配置自己的配置时应该改成自己的登录账号名,比如root
# user root;
worker_processes  auto; # 工作进程,设置多一些可以提高并发能力error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {  #HTTP请求include       /etc/nginx/mime.types; #这里是能支持的类型列表  下面的10是这个文件的展开default_type  application/octet-stream;#默认类型log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ' #这里是日志的格式access_log  /var/log/nginx/access.log  main; #日志输出的位置sendfile        on;#tcp_nopush     on;keepalive_timeout  65; #连接时间,超时设定#gzip  on;include /etc/nginx/conf.d/*.conf;  #这个配置在下面11.展开,如果配置自己的则这个include 删除  ,我在下面12.  位置粘贴一个自定义修改配置
}
  1. vim /etc/nginx/mime.types 打开支持的列表看看,这些都是支持的类型
types {text/html                                        html htm shtml;text/css                                         css;text/xml                                         xml;image/gif                                        gif;image/jpeg                                       jpeg jpg;application/javascript                           js;application/atom+xml                             atom;application/rss+xml                              rss;text/mathml                                      mml;text/plain                                       txt;text/vnd.sun.j2me.app-descriptor                 jad;text/vnd.wap.wml                                 wml;text/x-component                                 htc;image/png                                        png;image/svg+xml                                    svg svgz;image/tiff                                       tif tiff;image/vnd.wap.wbmp                               wbmp;image/webp                                       webp;image/x-icon                                     ico;image/x-jng                                      jng;image/x-ms-bmp                                   bmp;font/woff                                        woff;font/woff2                                       woff2;application/java-archive                         jar war ear;application/json                                 json;application/mac-binhex40                         hqx;application/msword                               doc;application/pdf                                  pdf;application/postscript                           ps eps ai;application/rtf                                  rtf;application/vnd.apple.mpegurl                    m3u8;application/vnd.google-earth.kml+xml             kml;application/vnd.google-earth.kmz                 kmz;application/vnd.ms-excel                         xls;application/vnd.ms-fontobject                    eot;application/vnd.ms-powerpoint                    ppt;application/vnd.oasis.opendocument.graphics      odg;application/vnd.oasis.opendocument.presentation  odp;application/vnd.oasis.opendocument.spreadsheet   ods;application/vnd.oasis.opendocument.text          odt;application/vnd.openxmlformats-officedocument.presentationml.presentationpptx;application/vnd.openxmlformats-officedocument.spreadsheetml.sheetxlsx;application/vnd.openxmlformats-officedocument.wordprocessingml.documentdocx;application/vnd.wap.wmlc                         wmlc;application/wasm                                 wasm;application/x-7z-compressed                      7z;application/x-cocoa                              cco;application/x-java-archive-diff                  jardiff;application/x-java-jnlp-file                     jnlp;application/x-makeself                           run;application/x-perl                               pl pm;application/x-pilot                              prc pdb;application/x-rar-compressed                     rar;application/x-redhat-package-manager             rpm;application/x-sea                                sea;application/x-shockwave-flash                    swf;application/x-stuffit                            sit;application/x-tcl                                tcl tk;application/x-x509-ca-cert                       der pem crt;application/x-xpinstall                          xpi;application/xhtml+xml                            xhtml;application/xspf+xml                             xspf;application/zip                                  zip;application/octet-stream                         bin exe dll;application/octet-stream                         deb;application/octet-stream                         dmg;application/octet-stream                         iso img;application/octet-stream                         msi msp msm;audio/midi                                       mid midi kar;audio/mpeg                                       mp3;audio/ogg                                        ogg;audio/x-m4a                                      m4a;audio/x-realaudio                                ra;video/3gpp                                       3gpp 3gp;types {text/html                                        html htm shtml;text/css                                         css;types {text/html                                        html htm shtml;text/css                                         css;text/xml                                         xml;image/gif                                        gif;image/jpeg                                       jpeg jpg;application/javascript                           js;application/atom+xml                             atom;application/rss+xml                              rss;text/mathml                                      mml;
  1. 展开vim /etc/nginx/conf.d/*.conf 里边的内容如下
server {listen       80;  #监听端口server_name  localhost; #服务器ip地址,如果是阿里云就填上公网IP#access_log  /var/log/nginx/host.access.log  main;location / {root   /usr/share/nginx/html; # 默认主页的路径位置index  index.html index.htm;#默认主页的具体文件名}#error_page  404              /404.html;
  1. 自定义配置vim /laobao/nginx1.conf ,用这个配置, 静态页面
 user root;  #用户名,这个在配置自己的配置时应该改成自己的登录账号名,比如root
worker_processes  1; # 工作进程,设置多一些可以提高并发能力
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
events {worker_connections  1024;
}
http {  #HTTP请求include       /etc/nginx/mime.types; #这里是能支持的类型列表  default_type  application/octet-stream;#默认类型log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ' #这里是日志的格式access_log  /var/log/nginx/access.log  main; #日志输出的位置sendfile        on;#tcp_nopush     on;keepalive_timeout  65; #连接时间,超时设定#gzip  on;#include /etc/nginx/conf.d/*.conf;  #这个配置如果配置自己的则这个include 删除 ,其实这个include   是个包引用server {listen       80;  #监听端口server_name  localhost; #服务器ip地址,如果是阿里云就填上公网IP#access_log  /var/log/nginx/host.access.log  main;location / {    #======一般主要是配置这里====================root   /root/laobao/templates; # 项目路径index  index.html index.htm;#入口页名称}error_page   500 502 503 504  /50x.html; #出错后的具体配置location = /50x.html {root   /usr/share/nginx/html;}}}

配置好了以后启动NGINX使用nginx -c 绝对文件路径 来启动服务比如我这次的启动命令为

nginx -c /root/laobao/nginx1.conf

这个命令启动后,如果想关闭服务用nginx -s quit

额外插入一些知识点:nginx   -t                       不运行,仅测试配置文件nginx   -c       configpath       从指定路径加载配置文件nginx   -t  -c   configpath      测试指定配置文件
配置文件的块名意思:
main        全局设置events{     工作模式,连接配置...
}
http{       http的配置...upstream xxx{ 负载均衡配置...}server{       主机设置...location xxx{    URL匹配...}}
}

mian

user     nginx;  worker进程运行的用户和组worker_processes 1;  指定Nginx开启的子进程数,多核CPU建议设置和CPU数量一样的进程数error_log      xxx  level;       用来定义全局错误日志文件,通常放在var中,level有 debug,info,notice,                                      warn,error,critpid          xxx;      指定进程id的存储文件位置

events

指定工作模式和以及连接上限events{use epoll;worker_connections 1024;
}use 指定nginx工作模式epoll   高效工作模式,linuxkqueue   高效工作模式, bsdpoll  标准模式select  标准模式worker_connections 定义nginx每个进程的最大连接数正向代理    连接数 * 进程数反向代理   连接数 * 进程数 / 4linux系统限制最多能同时打开65535个文件,默认上限就是65535,可解除 ulimit -n 65535

http

最核心的模块,主要负责http服务器相关配置,包含server,upstream子模块include mime.types;设置文件的mime类型include xxxconfig; 包含其它配置文件,分开规划解耦default_type  xxx;    设置默认类型为二进制流,文件类型未知时就会使用默认log_format  设置日志格式sendfile      设置高效文件传输模式keepalive_timeout 设置客户端连接活跃超时gzip     gzip压缩

server

用来指定虚拟主机listen   80;     指定虚拟主机监听的端口server_name localhost;   指定ip地址或域名,多个域名使用空格隔开charset      utf-8;      指定网页的默认编码格式error_page 500 502 /50x.html 指定错误页面access_log   xxx main;    指定虚拟主机的访问日志存放路径error_log   xxx main;    指定虚拟主机的错误日志存放路径root xxx;        指定这个虚拟主机的根目录index   xxx;        指定默认首页

location

核心中的核心,以后的主要配置都在这主要功能:定位url,解析url,支持正则匹配,还能支持条件,实现动静分离语法location [modifier]  uri{...}modifier 修饰符=   使用精确匹配并且终止搜索~   区分大小写的正则表达式~*   不区分大小写的正则表达式^~  最佳匹配,不是正则匹配,通常用来匹配目录常用指令alias 别名,定义location的其他名字,在文件系统中能够找到,如果location指定了正则表达式,alias将会引用正则表达式中的捕获,alias替代lication中匹配的部分,没有匹配的部分将会在文件系统中搜索

反向代理

proxy_pass  URL;         反向代理转发地址,默认不转发header,需要转发header则设置proxy_set_header HOST $host;
proxy_method  POST;     转发的方法名proxy_hide_header Cache-Control;  指定头部不被转发        proxy_pass_header Cache-Control;    设置哪些头部转发proxy_pass_request_header on;   设置转发http请求头proxy_pass_request_body on;  设置转发请求体

upstream

负载均衡模块,通过一个简单的调度算法来实现客户ip到后端服务器的负载平衡写法 upstream  myproject{ip_hash;server 127.0.0.1:8000;server 127.0.0.1:8001 down;server 127.0.0.1:8002 weight=3;server 127.0.0.1:8003 backup;fair;}
负载均衡算法weight    负载权重down    当前server不参与负载均衡backup   其它机器全down掉或满载使用此服务ip_hash   按每个请求的hash结果分配fair  按后端响应时间来分(第三方的)
  1. uwsgi的安装
pip install uwsgi
  1. 在目标虚拟环境下同时目标项目目录下建立uwsgi.ini 配置文件 vim uwsgi.ini
[uwsgi]
#使用nginx连接时 使用
#socket = 0.0.0.0:8080
#直接作为WEB服务器使用
http=0.0.0.0:5001
#配置工程目录
chdir =/root/laobao
#配置项目wsgi目录,相对于工程目录
#WSGI-file=OnlineStore/wsgi.py #这个部分是DJANGO用的
#下面适用于flask项目部署,这个记得是配置文件相对入口文件的相对路径,因为两个文件平级所以直接写app.py
wsgi-file=app.py
#router#绑定的核心,一般都是app  ,天坑在这里,注释千万别写下面这行后面,他会把注释也给你解释进去执行。。。。。
callable=app
#配置进程,线程信息
#进程数
processes=4
#线程数
threads=10
#准许线程
enable-threads=True#主进程
master=True#进程号
pidfile=uwsgi.pid
# 守护和日志
daemonize=uwsgi.log

这个坑在上面配置的callable=app这行,如果在这行后面写注释,绝对会出错,显示 Internal Server Error 。。。

配置完毕后在项目根,运行服务:uwsgi --ini uwsgi.ini
查询进程:ps -aux | grep uwsgi
关闭服务:uwsgi --stop uwsgi.pid
另外,在该目录下还会生成两个文件,就是配置里最后两行的进程号和日志,日志能够显示具体问题,出错了多看看好了
至此,uwsgi部署完毕进入下一个修改连接环节

为了能够与NGINX配合,首先修改uwsgi配置文件第一行

  1. 注释掉http那行,启用socket这行,
#使用nginx连接时 使用
socket = 0.0.0.0:5001
#直接作为WEB服务器使用
#http=0.0.0.0:5001

作为服务器ip应该是0.0.0.0 端口可以任意指定但要注意两点 1.如果和NGINX配合那么要和NGINX配置的端口保持一致 2 .如果作为web服务使用记得在云服务器安全组打开对应端口
16. 在目标项目下建立nginx2.ini 配置文件,这里其实前边基本都通用就在server部分有改动

user root;  #用户名,这个在配置自己的配置时应该改成自己的登录账号名,比如root
worker_processes  1; # 工作进程,设置多一些可以提高并发能力
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
events {worker_connections  1024;
}
http {  #HTTP请求include       /etc/nginx/mime.types; #这里是能支持的类型列表  下面的10是这个文件的展开default_type  application/octet-stream;#默认类型log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ' #这里是日志的格式access_log  /var/log/nginx/access.log  main; #日志输出的位置sendfile        on;#tcp_nopush     on;keepalive_timeout  65; #连接时间,超时设定#gzip  on;#include /etc/nginx/conf.d/*.conf;  #这个配置在下面11.展开,如果配置自己的则这个include 删除 ,其实这个include 其实是个包引用server {listen       80;  #监听端口server_name  47.105.72.112; #服务器名称#access_log  /var/log/nginx/host.access.log  main;root root/laobao;location /static {alias /root/laobao/static;}location / {include /etc/nginx/uwsgi_params; # 项目路径uwsgi_pass localhost:5001;#入口页名称}}
}

server{}的改动为:

 server {listen       80;  #监听端口server_name  47.xxx.xx.xxx; #服务器名称#access_log  /var/log/nginx/host.access.log  main;root root/laobao;  #这个root指定了项目根目录location /static {       #这个是静态目录,用来打通IP路由和本地文件联通的配置,其实就是把 ip/static/xx.jpg对应到 /root/laobao/static/xx.jpg上,这样就可以在浏览器搜索上直接请求静态文件了alias /root/laobao/static; #这个是静态目录的别名}location / {      #这里是绑定uwsgi的具体配置include /etc/nginx/uwsgi_params; # 指定使用uwsgi_params,这个Python用的,这个文件夹里还有别的语言的配置文件,咱就用这一个就行了uwsgi_pass localhost:5001;# 配置入口,端口这里一定要和uwsgi的配置端口一致}}

然后把nginx 和 uwsgi服务都在项目环境以及项目根目录下用对应的配置启动,如果没出错,就可以访问了,本次配置绑定的80端口,这种端口不用填端口号,当然,随便改,改外网就该监听端口,改内部就改localhost后面的端口就行。

补充一个USWGI负载均衡,首先要明白USWGI是框架容器,所以要多配制几个不同的端口并启动比如我启动5001,5002两个端口USWGI服务总共10个线程左右,然后配置NGINX的负载均衡部分如下。

# 如果使用的是 uwsgi
upstream mycom{ip_hash;server 127.0.0.1:5001;  #负载均衡服务器群server 127.0.0.1:5002;
}server {listen 8080;# 表示最大允许的body体大小client_max_body_size 100m;location  / {         include uwsgi_params;uwsgi_pass mycom; #连接上面配置的负载均衡}
}

2021-10-21 centos7+ nginx + uwsgi(包含一个配置上的天坑)相关推荐

  1. 【小5聊】微信公众平台用户信息相关接口调整,不再返回性别和地区信息(2021.10.21)

    应该是为了进一步加强用户隐私信息以及过度的用户性别地区营销而进行的接口调整 2021.10.12 发布通知,平台预计10月20日完成调整,请开发者及时进行调整适配,避免影响相关服务及用户体验 各位同行 ...

  2. 如何配置nginx+uwsgi+django?(知乎上面的看着不错)

    作者:知乎用户 链接:https://www.zhihu.com/question/27295854/answer/36365005 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  3. nginx+uwsgi+django1.6 配置过程

    1.安装nginx 参考:http://lihuipeng.blog.51cto.com/3064864/798172 2.安装django: tar xvf Django-1.6.2.tar.gz ...

  4. Linux Centos7 Nginx的安装与配置、反向代理、负载均衡、https配置

    Nginx的安装 1.nginx安装包下载地址 http://nginx.org/en/download.html 2.把nginx安装包上传到Linux系统上 2.1 Xhell 自带上传工具. 2 ...

  5. Centos7+nginx+uwsgi来部署我的Django项目

    前不久写了个小的博客项目,想着将它部署到服务器上去,因为是第一次部署项目,有很多的东西都不这么懂,走了很多的弯路,现在部署成功了,怕以后忘记了就记录下笔记 首先我的项目结构如下: 关于服务器的远程连接 ...

  6. java之21点游戏(只包含一个玩家和一个庄家,是否抓牌,没有黑杰克)

    完整代码在最后面. 运行截图 ​​​​​​​ 首先,21点游戏的游戏需要,: 玩家和庄家两个数组(若是多个玩家则增加数组,并把原玩家代码进行复制粘贴,再修改一点点就好),并且游戏开局,先发庄家一张牌, ...

  7. 2021.10.21 练习题

    7 递归法计算两个数的最大公约数(4分) 题目内容: 利用最大公约数的性质计算.对正整数a和b,当a>b时,若a中含有与b相同的公约数,则a中去掉b后剩余的部分a-b中也应含有与b相同的公约数, ...

  8. Functional Options: Go中实现优雅的API的方法 | Gopher Daily (2021.10.22)

    每日一谚:学会不要马上增加太多的功能,要把核心思想建立起来并进行测试 - Leah Culver Go技术生态 Go很大可能在go 1.19版本中支持编译器的FGO(feedback-guided o ...

  9. Nginx+UWSGI+Django配置全过程

    Nginx + uwsgi + Django 安装配置 一.安装Nginx uwsgi Django 安装tengine yum install pcre-devel -y wget http://t ...

最新文章

  1. 构建Dubbo-2.0.7源码
  2. localStorage和cookie的跨域解决方案
  3. 菜鸟学习计划浅谈之Linux系统
  4. 广西农产品(广州)交易会 农业大健康·林裕豪:签约农商对接
  5. 在场景中输出横向或纵向压缩的中文字符
  6. GBDT是如何成为推荐系统顶级工具人的?
  7. game module 停止运行_详解流量复制解决方案--NGINX的ngx_http_mirror_module模块实现
  8. python数据结构与算法13_python3数据结构与算法
  9. CHIL-ORACLE-创建视图
  10. java程序包怎么更新,从Java 8升级到Java 11-软件包sun.util不存在
  11. nyoj20吝啬得过度(DFS)
  12. HP 288 Pro G5 BIOS降级F5
  13. eNSP初学者配置以太网2种链路端口:access、trunk
  14. 《失控》对当下的互联网投资有哪些借鉴意义
  15. chromecast协议_如何将Chromecast用作快速信息仪表板
  16. 【便签纸】记录一下对比excel列表的小工具代码
  17. 打包docker镜像推送到远程服务器并部署到k8s
  18. 一个身居中国的法国程序员谈Python与PHP
  19. 【离散数学】关于欧拉图与哈密顿图的讨论
  20. Winsoft ComPort for Android Prolific-SEO狼术

热门文章

  1. 光猫+路由器如何映射端口
  2. Unity GPS定位之逆地理编码(获取经纬度并转换成地理位置)
  3. 很多人问如何把网页封装成app呢?
  4. 光交删zone注意事项
  5. 云架构Linux运维,【Linux云计算架构:第三阶段-Linux高级运维...
  6. linux镜像使用什么pe安装系统,Linux系统ISO镜像文件可不可以用pe启动盘来安装
  7. 金职院计算机网络技术中外合作有什么不一样,金华职业技术学院学费多少
  8. 狂野飙车8:极速凌云 for Mac v1.0.2 Asphalt 8 好玩的赛车游戏
  9. Linux 管理面板云帮手、APPNODE与宝塔哪个好
  10. Android http请求 工具类