Nginx部署网页到Centos(Linux)服务器

1. 关于网页

Nginx

nginx命令

安装: sudo apt-get install nginx
启动:sudo service nginx start
重启:sudo service nginx restart
停止:sudo service nginx stop
测试:sudo service nginx configtest

2. 部署步骤

(1)安装nginx

// 用yum来安装
yum install nginx -y

启动 nginx:

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

(2)部署网页

Nginx网页的地址:

/usr/share/nginx/html

可以在浏览器中使用 ip地址/网页名 来打开该网页。

启动好的nginx服务器默认访问的是它自己的目录,即/usr/share/nginx/html目录,可以在/etc/nginx/nginx.conf配置文件中配置你自己的项目目录,并让nginx正确访问。

(3)python代码部署

a. 在原来项目中,把需要的python包进行罗列:

>pip freeze > requirements.txt

然后,把这文件上传到服务器中。

b. 在服务器端新建一个虚拟环境:

# pip install virtualenv
# virtualenv aiforgoodmusic (这里虚拟环境名)
# cd aiforgoodmusic
# source ./bin/activate (激活虚拟环境)
# pip install -r /usr/share/nginx/html/requirements.txt (在虚拟环境中安装必须的python包)

查看是否安装成功:

# pip list

(4) Nginx配置文件修改

/etc/nginx/nginx.conf文件修改配置:

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;

        // 修改root默认目录
        root         /data/www;

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

        location / {
        // 修改nginx在path为'/’下的访问目录
        root        /data/www
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

把项目放置到data/www文件夹中。

值得注意的是,配置文件的目录要正确

查看状态:

[root@b-w-1 ]# systemctl status nginx.service
● nginx.service - The NGINX HTTP and reverse proxy server
   Loaded: loaded (/etc/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-12-02 00:39:58 CST; 6min ago
  Process: 3817 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCCESS)
  Process: 3824 ExecStart=/etc/nginx/sbin/nginx -c /etc/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)

可以看到这里的nginx配置文件的目录是在:/etc/nginx/conf/nginx.conf !!!!

(5)多项目部署

如果有不同的项目,可以采用端口去监控这些项目,然后Nginx通过监听端口,转发不同项目:

server {
    listen       80;
    server_name  example.org  www.example.org;
    root         /var/www/port80/
}

server{
    #  project 2
    listen  80;
    server_name  www.example2.org;
    location / {
        root /data/project/;
        index /data/project/templates/home.html index.htm;
        proxy_pass http://localhost:5610;
    }
}

如上面的,Nginx 监听 www.example2.org 的80端口(也就是http的端口),如果网页有请求,会把请求转发给服务器,并把服务器本地的5610端口的回应转发到 www.example2.org 网页。

(6) Https 和 Http 同时部署

http {
    #...
    upstream backend.example.com {
        server backend1.example.com:443;
        server backend2.example.com:443;
   }

    server {
        listen      80;
        server_name www.example.com;
        #...

        location /upstream {
            proxy_pass                    https://backend.example.com;
            proxy_ssl_certificate         /etc/nginx/client.pem;
            proxy_ssl_certificate_key     /etc/nginx/client.key;
            proxy_ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
            proxy_ssl_ciphers             HIGH:!aNULL:!MD5;
            proxy_ssl_trusted_certificate /etc/nginx/trusted_ca_cert.crt;

            proxy_ssl_verify        on;
            proxy_ssl_verify_depth  2;
            proxy_ssl_session_reuse on;
        }
    }

    server {
        listen      443 ssl;
        server_name backend1.example.com;

        ssl_certificate        /etc/ssl/certs/server.crt;
        ssl_certificate_key    /etc/ssl/certs/server.key;
        ssl_client_certificate /etc/ssl/certs/ca.crt;
        ssl_verify_client      optional;

        location /yourapp {
            proxy_pass http://url_to_app.com;
        #...
        }

    server {
        listen      443 ssl;
        server_name backend2.example.com;

        ssl_certificate        /etc/ssl/certs/server.crt;
        ssl_certificate_key    /etc/ssl/certs/server.key;
        ssl_client_certificate /etc/ssl/certs/ca.crt;
        ssl_verify_client      optional;

        location /yourapp {
            proxy_pass http://url_to_app.com;
        #...
        }
    }
}

注意:Nginx配置文件修改后,需要重启Nginx。


参考:

  1. 给CentOS服务器部署html
  2. 部署python项目到linux服务器;
  3. 在centOs 上搭建nginx来部署静态页面网站;
  4. Is it possible to make Nginx listen to different ports?;
  5. Securing HTTP Traffic to Upstream Servers
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rosefunR

你的赞赏是我创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值