首页 > 其他分享 >web服务器的配置

web服务器的配置

时间:2023-04-02 15:47:18浏览次数:49  
标签:web xxx nginx 配置 server etc 服务器 uwsgi backend

  • 以下是本文的部署环境:

    • 后端架构django==4.1.7

    • 服务器平台:阿里云

    • 服务器配置:

      • CPU&内存:2核(vCPU)2 GiB
  • 这里省略连接服务器的步骤,推荐使用vscode的远程连接功能,方便改写文件

一、环境配置

1、安装nginx

  1. 使用命令行安装nginx

    sudo apt update
    sudo apt install nginx
    
  2. 查看是否安装成功

    nginx -v # 不同版本查看version的命令可能不同
    

    有如下字样按安装成功

    root@<your server name>:/# nginx -v
    nginx version: nginx/1.18.0 (Ubuntu)
    
  3. 启动nginx服务

    service nginx start
    

    运行如下命令查看nginx的状态

    systemctl status nginx
    

    如下字样说明启动成功

    root@<your server name>:/# systemctl status nginx
    ● nginx.service - A high performance web server and a reverse proxy server
         Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
         Active: active (running) since Thu 2023-03-30 15:05:33 CST; 13min ago
           Docs: man:nginx(8)
        Process: 762 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
        Process: 986 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
       Main PID: 988 (nginx)
          Tasks: 3 (limit: 1929)
         Memory: 11.2M
            CPU: 33ms
         CGroup: /system.slice/nginx.service
                 ├─988 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
                 ├─989 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" 
                 └─990 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" 
    
    Mar 30 15:05:32 iZ0jlhcbu4ffvpc5zbtw4kZ systemd[1]: Starting A high performance web server and a reverse proxy server...
    Mar 30 15:05:33 iZ0jlhcbu4ffvpc5zbtw4kZ systemd[1]: Started A high performance web server and a reverse proxy server.
    

    nginx服务的控制命令

    /etc/init.d/nginx start   # 启动
    /etc/init.d/nginx stop    # 停止
    /etc/init.d/nginx reload  # 重新载入配置文件
    /etc/init.d/nginx restart # 重启
    
    service nginx [option] # 这样写也行
    
    # Usage: nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}
    
  4. 配置阿里云安全组(其他厂商的服务器可能有不同,后续会有补充)

    按照上图在安全组中添加规则

  5. 在浏览器地址栏输入服务器公网ip,出现下图说明配置成功

2、安装uwsgi

  1. 通过 pip 命令:

    pip install uwsgi
    
  2. 源代码安装:

    wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
    tar zxvf uwsgi-latest.tar.gz
    cd uwsgi-latest
    make
    

3、安装mysql

  • 如果使用django默认的数据库,跳过这一步
  1. TODO

二、项目配置

1、配置后端

(1)配置nginx

  1. 不管用什么方法,将整个后端项目复制到/home目录下

    可以使用FileZilla软件

  2. 进入/etc/nginx/conf.d目录

    cd /etc/nginx/conf.d
    
  3. 新建一个 xxx.conf 文件,粘贴如下配置:

    server {
      	# listen 443 ssl;				
      	# server_name smallpic.dludora.xyz;
    	listen 80;					   			# 在云服务器上配置安全组,开放80端口(监听http默认80端口)
      	server_name xxx.xxx.xxx.xxx;		   	# 云服务器的公网IP地址
        charset utf-8;
    
        # 后端项目媒体文件夹位置
        location /media {
            alias /home/backend/media;
        }
    
        # 后端项目静态文件夹位置
        location /static {
            alias /home/backend/static;
        }
    
        # 此项本质上是一个请求的转发,可配置多个,视后端url前缀种类而定
        location /api {							   # 与后端项目中url的前缀对应
            include /etc/nginx/uwsgi_params;
            uwsgi_pass 127.0.0.1:8000; 			   # 记住这里的端口,要与uwsgi的配置相匹配
        }
        
        # 以下是前端部署的部分,后面再说
        location / {
            root /home/frontend;
            index index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
     
        # 以下是配置域名的,暂时不考虑
        # ssl_certificate /etc/nginx/cert/9360524_smallpic.dludora.xyz.pem;
        # ssl_certificate_key /etc/nginx/cert/9360524_smallpic.dludora.xyz.key;
        # ssl_session_timeout 5m;
        # ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        # ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        # ssl_prefer_server_ciphers on;
    }
    
    

    注意:location 后面是有空格的,必须要有!alias 后面也是有空格的;

    tip:也可以采用软链接的方式,在你希望的目录创建xxx.conf文件,然后运行下面的命令(这个方法没有测试,不保证正确)

    sudo ln -s /home/backend/nginx.conf /etc/nginx/conf.d
    
  4. 重启 nginx 服务

    sudo service nginx restart
    

(2)配置uwsgi

  1. 在后端项目的根目录下,也就是有 manage.py 文件的目录下,新建一个 uwsgi.ini 文件和一个 run.log 文件

  2. 编辑 uwsgi.ini 文件:

    [uwsgi]
    # 后端项目位置
    chdir = /home/backend
    # :application前面要换成自己的文件夹名称
    module = backend:application
    # 这里与上面conf文件中的端口要一样!	
    socket = 127.0.0.1:8000
    # 项目中的wsgi-file路径
    wsgi-file = /home/backend/backend/wsgi.py	 
    master = true
    # 新建一个run.log文件记录信息
    daemonize = /home/backend/run.log
    # 运行uWSGI后,系统会在你填写的路径按照你设置的文件名创建一个.pid文件,并将uwsgi的进程号写入文件
    pidfile = /home/backend/uwsgi.pid
    disable-logging = true
    # 项目运行所需的虚拟环境,如果使用的是非虚拟环境则不需要这一行
    virtualenv = /root/.virtualenvs/venv-TRA
    
    

(3) 配置 MySql(若用的是自带数据库,则可跳过)

  1. TODO

(4) 修改 settings.py 文件

  1. 打开 settings.py 文件找到下面代码并修改:

    DEBUG = False
    ALLOWED_HOSTS = ['xxx.xxx.xxx.xxx']		# 改成['*']也行,即ALLOWED_HOSTS = ['*']
    

​ 注意其中的 IP 地址要替换成你自己云服务器公网的 IP

  1. 在文件末尾添加:

    STATIC_ROOT= '/home/backend/static/'  # 你的静态文件存放的文件夹
    

(5) 进入虚拟环境,收集静态文件

  • 激活你的项目的虚拟环境后输入指令收集静态文件:

    python3 manage.py collectstatic
    

(6) 运行后端

  1. uwsgi.ini 目录下运行

    uwsgi --ini uwsgi.ini
    
  2. 如果出现

    [uWSGI] getting INI configuration from uwsgi.ini
    

​ 则说明运行成功,可以通过公网ip访问你的服务

​ 可以输入指令 ps -aux | grep uwsgi 来查看运行的进程

  1. uWSGI控制相关终端指令

    sudo killall -9 uwsgi  #在Linux系统关闭已经在运行的uWSGI进程,用于重启服务
    uwsgi --ini uwsgi.ini  #启动
    uwsgi --stop uwsgi.pid  #关闭
    uwsgi --reload uwsgi.pid  #重启
    

    如果没有uwsgi.pid文件,可以手动创建,并将uwsgi的进程号(PID)写入文件,再次运行命令即可成功

2、配置前端

TODO

标签:web,xxx,nginx,配置,server,etc,服务器,uwsgi,backend
From: https://www.cnblogs.com/SuYangBlog/p/17280588.html

相关文章

  • Elasticsearch 学习-Elasticsearch优化,硬件选择,分片策略,写入优化,内存设置,重要配置
    Elasticsearch学习-Elasticsearch优化,硬件选择,分片策略,写入优化,内存设置,重要配置6.1硬件选择Elasticsearch的基础是Lucene,所有的索引和文档数据是存储在本地的磁盘中,具体的路径可在ES的配置文件../config/elasticsearch.yml中配置,如下:#----------------------------......
  • 脚本批量备份交换机路由器配置研究
    交换机路由器配置文件备份批量脚本powershellrouterswitchbackupsshpowershell传教士原创文章。始于2023-04-02允许转载,但必须保留名字和出处,否则追究法律责任 ---【前言】---最近我看了一篇文章。讲的是:【目的】:以5分钟为循环周期,经ssh,用密码,用py批量备份交换......
  • Linux系统下Samba服务器的配置
     实训目的:掌握Samba服务器的主配置文件的设置;掌握Samba服务用户的添加及权限设置;掌握Samba客户机的应用。实训环境:操作系统为CentOS7的网络服务器。实训步骤:第1步:将目录/home/media设置为允许所有用户访问,但仅允许用户mary具有修改该目录的权限。其配置步骤简述如下。1)......
  • Typora通用配置
    1.通用2.外观3.编辑器4.图像以相对路径存储图像,复制图片到.md文件中,图像会自动存储在与当前文件同一目录的文filename.assets文件夹中。图片也可以放在云端,配置请见:https://blog.csdn.net/wujiangbo520/article/details/1285636605.Markdown......
  • 【webpack】TypeError: Cannot read property 'tap' of undefined
    前言项目里使用webpack的代码混淆工具webpack-obfuscator,当打包代码时,出现如下报错:TypeError:Cannotreadproperty'tap'ofundefined原因项目的webpack版是4.x,而webpack-obfuscator的版本是3.x解决方法查阅资料在该https://nodejs7.com/2021/11/27/797.html文......
  • Docker网络配置
    bridgemacvlandockernetworkcreate-dmacvlan--subnet=192.168.1.0/24--gateway=192.168.1.1-oparent=enp3s0-omacvlan_mode=bridgevlan暴露IP--net=bridgemacvlan--ip=IP桥接dockernetworkcreate-dbridge--subnet192.168.1.0/16--gateway192.168.1.1c......
  • Asp.Net Core 配置 Swagger
    1.Swagger版本控制1.1添加版本枚举类publicenumApiVersion{V1,V2,V3}1.2在启动类中添加Swagger的配置builder.Services.AddSwaggerGen(option=>{#region分版本的Swagger配置......
  • 【使用小记】Debian开箱不即用之apt镜像源之配置
    安装问题首先开局就是:```Debian读取数据出错请确认您已经插入了正确的安装介质......```(我默认的是繁体:```讀取資料時發生了問題請確認是否已確實放置安裝媒體...```)处理方法①:推荐!刷入livdCD,安装时候镜像源前用工具ping一下然后看看哪个快(这个方法不会轻易出......
  • vscode 配置qtdesigner和pyuic
    1、安装python扩展插件: 2、打开扩展设置: 3、配置Pyuic:Cmd与Qtdesigner:Path路径1为pyuic的位置,这里先自己试一下默认的情况下ui能不能编译成python代码,能就不用改,不能就更改为pyuic.exe位置。2为pyuic编译为.py文件的存放路径,如下为存放到当前ui文件所在目录,一般不做修改......
  • Squid代理服务器
    一、Squid代理服务器Squid主要提供缓存加速、应用层过滤控制、web服务隐藏真实IP(安全性)的功能。1、代理的工作机制代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。将获得的网页数据(静态Web元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应。2、代......