服务器——Nginx安装及静态配置、部署

服务器——Nginx安装及静态配置、部署。

直接在云服务器中启动项目,一旦访问量多了,服务器会受不了,可能导致崩溃,所以我们需要代理服务器来Nginx代理云服务器启动项目。

Nginx

Nginx是由伊戈尔塞索耶夫开发的一款轻量级web代理服务器、反向代理服务器以及电子邮件(IMAP/POP3/SMTP)代理服务器。在2004年10月4日以类BSD许可证形式公开源码。

Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载均衡服务器,同时Nginx具备优秀的静态内容处理能力,能将动态内容转发给uWSGI服务器,这样可以达到很好的客户端响应。

在性能上,Nginx占用很少的系统资源,能够支持更多的并发连接,达到更高的访问效率;

在功能上,Nginx是优秀的代理服务器和负载均衡服务器。

其特点:

  • 占用内存少,并发性强;
  • 稳定性强,功能丰富;
  • 系统资源消耗少;
  • 轻量级,高度模块化,负载均衡。

很多大型网站都在使用Nginx服务器,例如:淘宝、京东、腾讯、百度、新浪、网易等。

安装Nginx步骤

有两种安装Nginx方法:

一种是快速安装,直接执行下面代码即可:

yum install nginx

另一种是设置nginx.repo源安装,我们推荐使用设置nginx.repo源安装,具体步骤如下所示:

安装yum-utils

在安装之前,首先要安装yum-utils,执行如下代码:

yum install yum-utils

配置nginx.repo源

首先在/etc/yum.repos.d目录下创建nginx.repo文件,执行如下代码:

touch /etc/yum.repos.d/nginx.repo

在nginx.repo文件中写入以下代码:

vim /etc/yum.repos.d/nginx.repo  #进入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

写入文件后,保存并退出,执行如下代码查看是否加载了Nginx安装源:

yum repolist

服务器——Nginx安装及静态配置、部署

安装nginx

安装nginx执行如下代码即可安装:

yum install nginx

系统启动nginx服务器

在系统管理中,我们可以执行如下代码启动nginx服务器:

systemctl start nginx  #启动nginx服务器
ps -aux | grep nginx  #查看nginx进程

如下图所示:

服务器——Nginx安装及静态配置、部署

这样就启动了nginx服务器,我们进入浏览器并输入公网id即可看到如下页面:

服务器——Nginx安装及静态配置、部署

假如没能成功显示该页面,则需要在云服务器开放80端口。

nginx.conf配置

为什么输入本机的IP地址就会显示上面的网页呢,带着疑问,我们来看看Nginx的配置文件,nginx默认的配置文件nginx.conf的目录为:/etc/nginx/nginx.conf,也可以执行如下代码找出nginx.conf的位置:

find -name nginx.conf

如下图所示:

服务器——Nginx安装及静态配置、部署

找到nginx.conf配置文件路径后,进入nginx.conf配置文件:

vim /etc/nginx/nginx.conf
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


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" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

其内容如下所示:

user  nginx;     #用户名
worker_processes  auto;    #工作进程数为自动增加

error_log  /var/log/nginx/error.log notice;  #错误日志文件
pid        /var/run/nginx.pid;    #进程文件


events {
    worker_connections  1024;  #允许同时连接的连接数
}


http {
    include       /etc/nginx/mime.types;  #http请求类型文件
    default_type  application/octet-stream;  #默认为application的http请求

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';  #日志格式

    access_log  /var/log/nginx/access.log  main;    #日志目录

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;      #连接超时时间

    #gzip  on;        #压缩格式
 
    include /etc/nginx/conf.d/*.conf;  #辅助配置文件 
}

我们在nginx.conf配置文件中没有找到呈现刚才网页直接相关的代码,只有一个辅助配置文件,那么我们执行如下代码进入复制配置文件目录:

cd /etc/nginx/conf.d
ls

发现只有一个名为default.conf的配置文件,执行如下代码进入default.conf辅助配置文件:

vim /etc/nginx/conf.d/*.conf

其内容如下所示:

server {
    listen       80;    #服务器端口号
    server_name  localhost;   #服务器名

    #access_log  /var/log/nginx/host.access.log  main;

    location / {         #项目网址http:ip地址/
        root   /usr/share/nginx/html;   #项目路径
        index  index.html index.htm;   #http文件
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;  #访问出错500,502,503,504时呈现50x.html网页
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ .php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /.ht {
    #    deny  all;
    #}
}

在辅助配置文件中,我们找到了网页项目文件相关的代码,我们进入/usr/share/nginx/html项目路径,执行如下代码:

vim /usr/share/nginx/html/index.html 

打开index.html,发现其内容正是我们刚才公网id访问浏览器显示的内容。

也就是说,只要我们修改default.conf配置文件中的项目路径改为我们项目的路径,即可把我们的项目放在服务器上面了,但是一般情况下,我们都不会去修改nginx原来的default.conf配置文件,一般会通过使用自定义的配置文件来启动nginx服务。

关闭nginx服务器

当我们使用系统管理来启动nginx服务器时,需要系统管理来关闭nginx服务器,执行如下代码:

systemctl stop nginx

可以根据需求执行如下代码:

#通过系统管理nginx服务
systemctl enable nginx   #设置nginx为开机启动
systemctl disable nginx  #禁止开机启动
systemctl status nginx   #查看nginx状态
systemctl start nginx   #启动nginx服务
systemctl stop nginx #关闭nginx服务

配置文件启动nginx服务

在使用系统管理启动nginx服务时,浏览器访问自身的IP地址呈现的是一个欢迎使用nginx服务的网页,要想浏览器访问自身的IP地址呈现的是其他网页时,需要修改其辅助配置文件default.conf,但一般情况下,我们不会去修改nginx原来的default.conf配置文件,那么怎么启动nginx服务器让浏览器访问自身IP地址呈现其他网页呢?

这时我们可以自己编写一个nginx配置文件mynginx.conf(配置文件名可以随意),执行以下代码来启动nginx服务:

nginx -c 配置文件路径

配置文件编写

那么问题来了,如何编写nginx配置文件呢?首先系统管理启动nginx服务涉及了两个配置文件——nginx.conf和default.conf,其中控制网页内容的呈现相关的是default.conf配置文件,而nginx.conf是一些日志、错误等一些文件配置,所以我们只需要把nginx.conf配置文件和default.conf配置文件的内容复制在自己编写的mynginx.conf配置文件即可,复制代码后,我们通过增删改查,最终得出以下代码:

user  root;       #将nginx.conf的nginx改为root
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

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" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    server {        #default.conf代码复制在nginx.conf配置文件的http里面,并将注释的代码删除
    listen       6789;
    server_name  localhost;

    location / {
        root   /tmp/test/templates;    #修改为你项目的路径
        index  Hello.html Hello.htm;    #修改为你的首页网页
    }
}
}

修改的地方我们已经在代码中注释了,好了,通过简单的修改复制的代码,我们成功编写了自己的nginx配置文件mynginx.conf,我们将配置文件放在Flask程序根目录中。

Flask程序如下所示:

from flask import Flask, render_template
app = Flask(__name__)
app.config['DEBUG']=True
app.config['ENV']='development'

@app.route('/')
def hello_world():
    return render_template('Hello.html')
if __name__ == '__main__':
    app.run()

启动nginx服务

好了,配置文件已经写好了,执行如下代码启动nginx服务:

nginx -c /root/demo/myflask/mynginx.conf   #启动nginx服务
ps -aux | grep nginx       #查看nginx进程

这样我们就启动了自己编写的nginx配置文件,如下图所示:

服务器——Nginx安装及静态配置、部署

浏览器访问http://ip:port,这里我们设置的端口号为6789,如下图所示:

服务器——Nginx安装及静态配置、部署

关闭nginx服务

通过配置文件启动nginx服务,需要执行如下代码关闭nginx服务:

nginx -s quit  #正常关闭
nginx -s stop  #快速关闭
nginx -s reload   #重新加载配置

好了,服务器——Nginx安装及Nginx静态配置、部署就讲到这里了。

– END –

原文始发于微信公众号(白巧克力LIN):服务器——Nginx安装及静态配置、部署

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/222430.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!