返回顶部
首页 > 资讯 > 服务器 >python服务器环境搭建(3)——参数
  • 490
分享到

python服务器环境搭建(3)——参数

参数环境服务器 2023-01-31 07:01:10 490人浏览 泡泡鱼
摘要

前面我们已安装好了python服务器运行所需要的相关软件,而最重要最繁琐的就是参数配置,写这篇就踩了好多坑,花了好多时间,遇到了各种各样的问题。好了费话少说,直接进入本篇话题。    目录:  一、优化服务器网络环境  二、让你的Pytho

前面我们已安装好了python服务器运行所需要的相关软件,而最重要最繁琐的就是参数配置,写这篇就踩了好多坑,花了好多时间,遇到了各种各样的问题。好了费话少说,直接进入本篇话题。

 


 

  目录:

  一、优化服务器网络环境

  二、让你的Python代码跑起来

  三、使用supervisord来管理python进程
  四、将Nginx与supervisord关联起来(使用代理方式,非uwsgi)
  五、使用nginx+supervisord+uwsgi来管理python WEB服务
  六、使用svn来管理python的自动化发布
  七、postgresql配置 
  八、Redis配置
  九、设置各服务开机启动功能


 

  一、优化服务器网络环境

  在开始配置服务器前,我们需要先对服务器环境配置进行优化,提升服务器的访问数和处理数

  输入命令:vi /etc/sysctl.conf

  将里面值替换为下面参数


# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more infORMation, see sysctl.conf(5) and sysctl.d(5).
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

vm.swappiness = 0
net.ipv4.neigh.default.GC_stale_time=120


# see details in https://help.aliyun.com/knowledge_detail/39428.html
net.ipv4.conf.all.rp_filter=0
# net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_announce=2


# see details in Https://help.aliyun.com/knowledge_detail/41334.html
# net.ipv4.tcp_max_tw_buckets = 5000
# net.ipv4.tcp_syncookies = 1
# net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
# net.core.somaxconn = 262144
net.core.somaxconn = 2048
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 10
net.ipv4.tcp_keepalive_probes=5
net.ipv4.ip_local_port_range = 1024 65535

复制代码

  输入命令让配置生效:sysctl -p

 

  输入命令:echo "options sunrpc tcp_slot_table_entries=256" >> /etc/modprobe.d/sunrpc.conf

  写入配置:sysctl -w sunrpc.tcp_slot_table_entries=256

  重启服务器,再查看一下配置就可以看到配置参数值已经改变了(有的服务器可能不存在这两个文件,不运行问题也不大)

  输入命令:cat /proc/sys/sunrpc/tcp_slot_table_entries

  输入命令:cat /proc/sys/sunrpc/tcp_max_slot_table_entries

  一个是256,一个是65536了

 

  二、让你的python代码跑起来

  既然我们要配置的是python服务器,那首先我们要做的第一步是,放上我们的python代码,看看能否运行并访问

  先上代码,将下面代码粘贴到记事本上并存储为main.py(这个文名可以随便起,我存储的格式为ANSI格式,即记事本默认的格式)

复制代码

#!/usr/bin/evn python
# coding=utf-8
from bottle import default_app, get, run
from beaker.middleware import SessionMiddleware

@get('/index/')def callback():    return 'Hello World!'if __name__ == '__main__':
    app_argv = SessionMiddleware(default_app())
    run(app=app_argv, host='0.0.0.0', port=8088, debug=True, reloader=True)else:
    application = SessionMiddleware(default_app())

复制代码

  我们为了方便以后对服务器的管理,需要创建一个指定的文件夹(如果有挂载新硬盘的,可以将这个文件夹绑定到该目录),将日志数据库、web站、后台服务、svn等内容统一放到指定文件夹下面

  首先在根目录下创建一个data文件夹(后面的各种日志、web站点等全都放在这里统一管理,以后我们要查找时就很方便了)

  输入命令:mkdir /data

  创建python web存储目录:mkdir /data/www

  创建测试目录:mkdir /data/www/test

  然后使用ssh的上传工具,上传刚刚创建好的main.py文件到www目录下的test文件夹

  

  后面的上传用这个上传工具处理(也可以直接使用vi进行编辑)不再截图

  然后我们运行:python /data/www/test/main.py  (或进入test目录运行:python main.py)

  运行后会显示ImportError: No module named bottle错误,这是因为我们的程序调用了bottle包,而我们未安装这个依赖包,需要安装后程序才能正常运行,以后在使用python中碰到这种情况,直接输入pip install xxx即可

  安装bottle包:pip3 install bottle

  安装beaker包:pip3 install beaker

  

  然后再次输入:python main.py

  就会发现python web服务运行起来了

  

   然后关闭防火墙:systemctl stop firewalld  (如果浏览器访问不了,可以运行这个命令来关闭防火墙)

   打开浏览器输入:http://192.168.0.128:8088/index/  就可以看到Hello World!了

   

  为了方便后面的测试,我们按Ctrl+C,关闭刚才python启动的main.py服务

 

  三、使用supervisord来管理python进程

  supervisord默认配置文件存放路径是/etc/目录下面,安装完成后配置文件是不存在的,需要使用命令生成或我们自己放一个进去,我们先配置一个简单的不使用uwsgi的配置文件

  文件名称:supervisord.conf (我存储的格式为ANSI格式,即记事本默认的格式)

复制代码

[unix_http_server]file=/tmp/supervisor.sock   ; (the path to the Socket file)

[supervisord]
logfile=/data/logs/supervisord/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=10MB        ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=2           ; (num of main logfile rotation backups;default 10)
loglevel=info                ; (log level;default info; others: debug,warn,trace)
pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false               ; (start in foreground if true;default false)
minfds=1024                  ; (min. avail startup file descriptors;default 1024)
minprocs=200                 ; (min. avail process descriptors;default 200)

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket[program:test]
command=python /data/www/test/main.py    ; supervisord将要执行的运行python服务的命令
directory=/data/www/test
stdout_logfile=/data/logs/supervisord/test_supervisord.log    ; supervisord当前这个test服务运行产生的日志存储路径,方便我们查看运行情况
socket-timeout=3autostart=trueautorestart=trueredirect_stderr=truestopsignal=QUIT

复制代码

  使用上传工具上传到/etc/supervisord.conf

  

  为了规范日志管理,我们在data文件夹下继续创建对应的日志文件夹,以后查找supervisord日志就可以在下面创建的文件夹中查看了

  输入命令:mkdir /data/logs

  输入命令:mkdir /data/logs/supervisord

  由于supervisord目前只支持python2,所以运行时需要用python2来启动

  启动supervisord服务:/usr/bin/python2.7 /usr/bin/supervisord

  

  我们继续在浏览器中输入http://192.168.0.128:8088/index/ 可以发现还是可以正常访问,看到Hello World!(前面执行python /data/www/test/main.py后,按Ctrl+C就直接退出了,用浏览器是无法正常访问的,现在的访问是supervisord启动的)

  使用supervisord启动的python进程可以发现,我们用kill xxx命令来直接关闭python进程,关闭后supervisord会重新启动新的进程,也就是说不kill掉supervisord进程,是无法杀死supervisord启动的python进程的

  

 

  PS:由于python2.7.5与python3.5.4并存,在对supervisord配置进行修改以后,使用命令:/usr/bin/supervisord -v执行时,会出现 ImportError: No module named 'supervisor' 这个错误,虽然我们前面用的是python2.7.5来启动supervisord服务的,但生成执行命令时,默认还是用python这个链接,所以我们需要对/usr/bin/supervisord和/usr/bin/supervisorctl进行修改

  执行命令:vi /usr/bin/supervisord

  将第一行的#!/usr/bin/python 改为 #!/usr/bin/python2.7.5

  执行命令:vi /usr/bin/supervisorctl

  将第一行的#!/usr/bin/python 改为 #!/usr/bin/python2.7.5

  我们再执行:/usr/bin/supervisord -v时就正常了

 

  四、将nginx与supervisord关联起来(使用代理方式,非uwsgi)

  首先我们要为nginx创建对应的访问账号

  输入命令:/usr/sbin/groupadd -f www
  输入命令:/usr/sbin/useradd -g www www

 

  为nginx创建对应的日志管理文件夹

  输入命令:mkdir /data/logs/nginx

  因为nginx的配置默认全部是在nginx.conf里设置的,网站多时管理不方便,所以我们需要创建一个文件夹,将每个独立的网站配置放在里面

  创建nginx配置统一管理文件夹:mkdir /usr/local/nginx/conf/vhost

  修改/usr/local/nginx/conf/nginx.conf配置文件内容,替换成下面参数

复制代码

user www www;
worker_processes  1;
worker_rlimit_nofile 10240;
error_log /data/logs/nginx/error.log error;

events {
    use epoll;
    worker_connections  10240;
}

http {
    log_format  main  '[$time_local] $remote_addr  $upstream_addr  $status  $body_bytes_sent  [$request_time] '
                      '"$request" "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    tcp_nopush     on;
    tcp_nodelay on;
    server_tokens off;
    
    include vhost/*.conf;
}

复制代码

  创建test.conf文件(内容见下面代码)并上传到刚创建的/usr/local/nginx/conf/vhost/目录下,具体内容如下(使用80端口访问,将代理地址指定前面配置的8088端口):

复制代码

server {
    listen      80;
    charset     utf-8;
    root        /data/www/test;
    server_name 192.168.0.128;
    
    location / {
        proxy_pass  http://127.0.0.1:8088;    }

    access_log  /data/logs/nginx/test_access.log  main;
}

复制代码

  PS:在使用之前,我们需要重新一次服务器,不然可能会出现端口被占用访问出现404的问题,重启后就正常

  启动nginx服务: /usr/local/nginx/sbin/nginx 

  启动supervisord服务:/usr/bin/python2.7 /usr/bin/supervisord

  如果修改了nginx配置内容,需要重新启动nginx才能生效,重启命令: /usr/local/nginx/sbin/nginx 

  如果启动后没有出现错误信息,就表示启动成功了,可以使用命令来查询启动情况:ps -ef | grep nginx

  我们在浏览器中输入http://192.168.0.128/index/可以发现Hello World!访问正常(PS:可以发现,我们直接访问80端口完全没有问题)

  

  五、使用nginx+supervisord+uwsgi来管理python web服务

  首先,我们让uwsgi运行起来

  根据官网(https://uwsgi-docs.readthedocs.io/en/latest/)说明,我们还需要安装python-devel插件

  输入命令:yum install python-devel

 

  第一个Hello World!例子:

  输入命令:vi /tmp/foobar.py

  然后点击键盘 i  进入编辑模式,将下面的代码粘贴进vi编辑器,然后按Esc键,按Shift+:,输入wq+回车键,保存foobar.py文件

 

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])    
    return [b"Hello World"]

 

  将这个例子运行起来:/usr/bin/uwsgi --http :9090 --wsgi-file /tmp/foobar.py

 

  我们在浏览器中输入网址:http://192.168.0.128:9090/ 就可以看到Hello World了

 

  我们按Ctrl+C,关闭刚才用uwsgi启动的main.py服务

  为了方便uwsgi配置的管理,我们需要在etc目录下创建uwsgi文件夹,用来存储配置文件

  输入命令:mkdir /etc/uwsgi

  创建uwsgi日志文件夹:mkdir /data/logs/uwsgi

  创建配置文件,并将它上传到/etc/uwsgi目录下,配置文件名:test.xml,内容如下:

<uwsgi>
    <plugins>python35</plugins>
    <socket>127.0.0.1:8088</socket>
    <chdir>/data/www/test</chdir>
    <listen>2048</listen>
    <limit-as>512</limit-as>
    <reload-on-as>128</reload-on-as>
    <reload-on-rss>96</reload-on-rss>
    <processes>8</processes>
    <max-requests>2000</max-requests>
        <socket-timeout>6</socket-timeout>
        <harakiri>6</harakiri>
        <idle>20</idle>
    <pythonpath>/data/www/test</pythonpath>
    <logto>/data/logs/uwsgi/test_uwsgi.log</logto>
    <master/>
        <reaper/>
    <no-orphans/>
    <vacuum/>
    <disable-logging/>
</uwsgi>

 

  修改/etc/supervisord.conf配置文件内容,将command=python /data/www/test/main.py修改为command=/usr/local/bin/uwsgi /etc/uwsgi/test.xml


[unix_http_server]
file=/tmp/supervisor.sock   ; (the path to the socket file)

[supervisord]
logfile=/data/logs/supervisord/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=10MB        ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=2           ; (num of main logfile rotation backups;default 10)
loglevel=info                ; (log level;default info; others: debug,warn,trace)
pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false               ; (start in foreground if true;default false)
minfds=1024                  ; (min. avail startup file descriptors;default 1024)
minprocs=200                 ; (min. avail process descriptors;default 200)

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket


[program:test]
command=/usr/bin/uwsgi /etc/uwsgi/test.xml
directory=/data/www/test
stdout_logfile=/data/logs/supervisord/test_supervisord.log
socket-timeout=3
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT


  修改nginx的配置文件/usr/local/nginx/conf/vhost/test.conf

server {
    listen      80;
    charset     utf-8;
    root        /data/www/test;
    server_name 192.168.0.128;

    location / {
        proxy_set_header           Host $host;
        proxy_set_header           X-Real-IP $remote_addr; 
        proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_connect_timeout      2;      
        proxy_send_timeout         60;     
        proxy_read_timeout         60;     
        include uwsgi_params;
        uwsgi_param UWSGI_PYHOME /data/www/test;
        uwsgi_param UWSGI_CHDIR /data/www/test;
        uwsgi_param UWSGI_SCRIPT main;
        uwsgi_pass  127.0.0.1:8088;
    }

    access_log  /data/logs/nginx/test_access.log  main;
}

  重启服务命令:/usr/local/nginx/sbin/nginx -s reload(如果nginx服务没有启动,就使用这个命令:/usr/local/nginx/sbin/nginx )

  另外,如果我们修改了supervisord的配置文件,则需要运行下面命令重启服务(如果你又重启了服务器,则需要重新启动supervisord服务:/usr/bin/python2.7 /usr/bin/supervisord,否则不用执行这个命令)

  载入刚刚修改过的配置信息:/usr/bin/supervisorctl reread (运行后才可以载入内存)

  重启全部supervisord服务:/usr/bin/supervisorctl reload (运行这个将会重启全部服务,会比较慢)

  PS:其他supervisord命令说明

  启动或重启配置修改项对应的服务:/usr/bin/supervisorctl update (有时可能会启动失败,需要需要其他方式启动)

  我们更新了python文件,如果没有重启对应的服务修改是不生效的,即访问时还是旧的代码功能,需要重启对应的服务才行,比如现在我们的supervisord服务名称叫做test,那么可以使用下面命令来重启对应的uwsgi服务

  重启test的uwsgi服务:/usr/bin/supervisorctl restart test (启动服务命令:/usr/bin/supervisorctl start test)

 

  我们在浏览器中输入网址:http://192.168.0.128/index/ 就可以看到使用nginx+supervisord+uwsgi+python(bottle框架)运行的Hello World了

 

----------------------------------------2017-3-30 16:06修改更新---------------------------------------------------

  ps:之前使用/usr/bin/supervisorctl update重启supervisord,可能浏览器访问时出现502 Bad Gateway,这时我们需要查看supervisord和uwsgi日志,看看日志里有什么错误提示。一般会有下面日志:

 

复制代码

*** Starting uWSGI 2.0.14 (64bit) on [Thu Mar 30 03:44:31 2017] ***
compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-11) on 29 March 2017 23:46:25
os: linux-3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016
nodename: localhost.localdomain
Machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 16
current working directory: /data/www/test
detected binary path: /usr/local/bin/uwsgi
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
chdir() to /data/www/test/
your processes number limit is 62479
limiting address space of processes...
your process address space limit is 536870912 bytes (512 MB)
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
probably another instance of uWSGI is running on the same address (127.0.0.1:8088).
bind(): Address already in use [core/socket.c line 769]

复制代码

 

  我们可以输入命令:ps -ef | grep uwsgi,查看一下uwsgi有没有运行,如果没有运行的话,可执行:/usr/bin/supervisorctl reload,再使用ps命令检查一下uwsgi启动了没有,启动了就表示正常了

 

 

  六、使用svn来管理python的自动化发布

  创建svn管理目录:mkdir /data/svn

  进入svn管理目录:cd /data/svn

  创建svn项:svnadmin create test

  修改/data/svn/test/conf文件夹下的配置文件

  

  可以将这三个文件下载下来进行修改,也可以用vi进行编辑

  将authz文件替换成下面内容:

[test:/]

admin = rw
allempty = rw

   test是svn当前仓库项的模块名称,每个svn的这个名称都是唯一的,不然可能无法登录使用

  添加添加了两个账号,admin用于服务器端自动同步svn的代码到对应的web或服务使用,和个人账号区别出来,方便管理和保护账号安全,而allempty是我自己添加用于svn更新最新代码的账号

  将passWord文件替换成下面内容:

[users]
admin = 123456allempty = 123456

  这里设置账号对应的密码

  将svnserve.conf文件替换成下面内容:

[general]
anon-access = none
auth-access = writepassword-db = passwdauthz-db = authz

  在/data/svn/test/hooks/目录下创建post-commit勾子文件(post-commit文件没有扩展名),用于svn更新成功以后,自动同步到对应的代码目录

#!/bin/shexport LANG=en_US.UTF-8/usr/bin/svn up /data/www/test/usr/bin/supervisorctl restart test

  /usr/bin/svn up /data/www/test 这个命令是运行更新指令,本地代码通过svn更新到服务器以后,勾子会运行它来同步到指定的/data/www/test目录

  /usr/bin/supervisorctl restart test 因为我们用的是supervisord来管理python web服务的,代码更新完成以后并未生效,需要重新服务才行,这个命令是用来重启指定的supervisord进程的,它们帮我们将对应的uwsgi进程进行重启操作

  运行命令,将给予勾子post-commit可执行权限:chmod +x /data/svn/test/hooks/post-commit

 

  启动svn服务:/usr/bin/svnserve -d -r /data/svn

  配置test项目服务器端svn同步设置

  输入命令:svn checkout svn://localhost/test /data/www/test (在服务器端对test项进行svn检出操作)

  PS:出现Password for 'root': 直接回车就可以了,Username:输入前面authz里设置的账户名称,Password for 'admin': 输入对应的密码

  

  操作到这里,svn的自动化发布就完成了,我们只需要在本地检出svn项,然后更新代码后,服务器端就会自动将代码同步到/data/www/test目录下面,并重启对应的supervisord服务了

  本地操作截图:(可以下载TortoiseSVN-1.9.4.27285-x64-svn-1.9.4.msi进行使用)

  

  

  

  

 

  七、postgresql配置 

  在data下创建pg文件夹,用于放置pg相关的所有东西

  输入命令:mkdir /data/pg

  在pg文件夹下我们再创建存放数据库的文件夹

  输入命令:mkdir /data/pg/data

  为新创建的pg文件夹分配数据库服务的操作权限

  输入命令:chown postgres:postgres /data/pg

  

  为存放数据库的文件夹分配权限

  输入命令:chown postgres:postgres /data/pg/data

  设置postgresql相关环境变量

  修改profile文件

  输入命令:vi /etc/profile

  在尾部添加下面代码:

复制代码

PGDATA=/data/pg/data
PGHOST=127.0.0.1
PGDATABASE=postgres
PGUSER=postgres
PGPORT=5432
PATH=/usr/pgsql-9.6/bin:$PATH
export PATH
export PGDATA PGHOST PGDATABASE PGUSER PGPORT
export TMOUT=1000

复制代码

  重启一下虚拟机(reboot)或者输入命令: source /etc/profile重新载入配置,然后输入命令:export就可以看到刚才添加的变量了

  初始化postgresql数据库:

  使用postgres登录:su postgres

  然后执行初始化数据库命令,并指定数据库存储路径:initdb -D /data/pg/data

  

  退出postgres用户,使用原root账号登录,可输入命令:su root,然后输入密码就可以切换回去

  

  我们再次进入/data/pg/data路径,就可以看到多了很多数据库文件夹和配置文件了

  

  打开/data/pg/data/pg_hba.conf配置文件,找到# IPv4 local connections: 在它的下面添加一行host    all             all             0.0.0.0/0         md5

  

  添加以后,我们链接数据库都必须要用输入密码

  打开/data/pg/data/postgresql.conf配置文件

  找到#listen_addresses = 'localhost',将前面的#删掉,参数localhost表示只允许当前服务器能链接数据库,如果想指定地址可以访问,可以输入ip地址,多个地址时用逗号分隔,如果开放所有地址可以访问,由使用*

  找到#port = 5432,将前面的#删掉,这里可以指定访问数据库的端口

  

  启动postgresql数据库:su postgres -c "/usr/pgsql-9.6/bin/pg_ctl start -D /data/pg/data"

  使用postgres用户登录:su postgres

  连接数据库:psql -U postgres

  修改postgres用户密码:Alter user postgres with password '123456';

  退出数据库连接:\q

  我们可以在本地的windows系统里安装postgresql9.6(官方下载地址:https://www.postgresql.org/download/windows/),然后使用pgAdmin4连接上服务器的数据库,用图形界面来管理数据库了

 

  八、Redis配置

  redis之前安装没有指定安装路径,重新做了修改,大家可以查看http://www.cnblogs.com/EmptyFS/p/6558800.html 检查安装

  修改redis配置信息(可以下载/usr/local/redis/redis.conf或直接用vi /usr/local/redis/redis.conf进行编辑)

  主要修改内容有:

  bind 127.0.0.1   redis服务访问限制设置。使用127.0.0.1表示只能本机访问;如果用的是服务器在局域网里的ip:192.168.1.128,即表示局域网内的ip都可以访问;如果使用0.0.0.0由表示所有地址都可以访问。需要绑定多个时,可以添加多个bind xxx.xxx.xxx.xxx

  daemonize no  这个修改为daemonize yes  开启守护进程

  dir ./  这里需要修改为dir /usr/local/redis/data 不然redis数据会存储到root文件夹下面

  随便找个位置增加requirepass xxxxx,可以增加访问redis访问密码,如果你的redis对外网开放,这个密码一样要足够长足够复制,不然以redis的访问速度,比较容易被人破解

  可以增加maxmemory 1024M来限制redis占用内容大小,也可以不限制

  修改完成后,创建redis数据存储文件夹:mkdir /usr/local/redis/data

  修改完成,运行redis启动命令:/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf

  redis服务就启动了,可以使用RedisDesktopManager这种第三方可视化工具来访问redis,查看里面的存储数据

 

  九、设置各服务开机启动功能

  以上众多的服务,有的朋友喜欢将它们设置成service方式自动启动,也有喜欢用命令方式来启动它们,为了操作简单,我们将它们都统一设置为命令启动方式。

  输入命令: vi /etc/rc.local ,在内容后面添加下面命令项,然后保存退出

ulimit -SHn 102400
/usr/bin/python2.7 /usr/bin/supervisord
/usr/local/nginx/sbin/nginx
/usr/bin/svnserve -d -r /data/svn
su postgres -c "/usr/pgsql-9.6/bin/pg_ctl start -D /data/pg/data"
/usr/local/redis/bin/redis-server   /usr/local/redis/redis.conf

  给予rc.local可执行权限:chmod +x /etc/rc.d/rc.local

  然后重启服务器,我们使用ps -ef就可以查看到各服务正在运行中了

 

 

 版权声明:

  本文由AllEmpty原创并发布于博客园,版权与博客园共同所有,欢迎转载,未经本人同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如有问题,可以通过1654937@qq.com 联系我,非常感谢。

    发表本编内容,是为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:669058475,大家一起探讨。

  更多内容,敬请观注博客:http://www.cnblogs.com/EmptyFS/

--结束END--

本文标题: python服务器环境搭建(3)——参数

本文链接: https://lsjlt.com/news/191884.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python服务器环境搭建(3)——参数
    前面我们已安装好了python服务器运行所需要的相关软件,而最重要最繁琐的就是参数配置,写这篇就踩了好多坑,花了好多时间,遇到了各种各样的问题。好了费话少说,直接进入本篇话题。    目录:  一、优化服务器网络环境  二、让你的pytho...
    99+
    2023-01-31
    参数 环境 服务器
  • Python 3 学习笔记:环境搭建
    Python 概述 发展历程 1989 由荷兰人 Guido van Rossum 发明1991 第一个公开发行版问世1994 Python 1.0 发布2000 Python 2.0 发布2008 Python 3.0 发布现行版本 Py...
    99+
    2023-01-31
    学习笔记 环境 Python
  • heritrix 3.X 环境搭建
    依赖 <dependency> <groupId>org.archive.heritrix</groupId> <artifactId>heritrix-commons</a...
    99+
    2023-01-31
    环境 heritrix
  • 【Linux环境搭建】用云服务器搭建Linux环境
    目录 1. 我们为什么要学Linux 2. 云服务器购买 3. 远程连接云服务器 4. 如何创建新用户   5. 第一个Linux程序 总结: 写在最后: 1. 我们为什么要学Linux 作为一个程序员,你必须学好Linux,至于为什么...
    99+
    2023-09-04
    linux
  • 云服务器怎么搭建python环境
    搭建Python环境需要准备好相关的依赖,下面是一个简单的Python环境搭建的示例:Python是一种跨平台的编程语言,下面是一些常用的Python依赖库的安装方法:```python pip install python python2...
    99+
    2023-10-25
    环境 服务器 python
  • 云服务器搭建python编程环境
    云服务器搭建Python编程环境的方式有很多,以下是一些常见的方式:创建虚拟机(VM)。可以使用开源Python虚拟机库,例如Kubernetes、Prometheus等,或者自己编写一个虚拟机。使用虚拟机可以大大加快Python编程环境的...
    99+
    2023-10-26
    环境 服务器 python
  • 云服务器环境搭建
    云服务器环境搭建需要注意以下几个方面: 选择合适的云服务器服务商:在选择云服务器服务商时,需要考虑服务器的硬件配置、服务的稳定性和性能、安全性等等因素。需要选择有良好口碑、服务稳定性好的云服务器服务商。 部署服务器环境:在搭建云服务器环...
    99+
    2023-10-26
    环境 服务器
  • 云服务器搭建环境
    云服务器搭建环境需要注意以下几个方面: 选择合适的云服务器供应商:选择一个可信赖的、有实力的供应商是非常重要的,因为这些公司通常具有大量的云服务器资源和技术,能够提供良好的服务和支持。 准备好服务器和数据中心空间:在云服务器的搭建过程中...
    99+
    2023-10-26
    环境 服务器
  • python环境搭建
    下载Python Python官网:https://www.python.org/ python文档下载:https://www.python.org/doc/   安装Python 单击链接进入Python官网,选择相应的系统版本进行下...
    99+
    2023-01-30
    环境 python
  • Python搭建环境
         小白开启Python之门啦啦啦!!!!!      学习任何一种语言,第一步就是环境的搭建,小白python之旅开始啦!!!加油加油,抬头挺胸齐步走~~~     目前大家开发系统主要是,windows、Mac OS 、Linux...
    99+
    2023-01-31
    环境 Python
  • Mac环境python + selenium 环境搭建
    文章主要讲解Mac环境下如何搭建selenium环境。作者也是测试初学者,对selenium目前是一无所知的状态,希望从搭建环境开始对它逐步了解。 环境准备 本文采用的环境:• Python 3.7.3 PS: Mac环境会默认自带Pyth...
    99+
    2023-08-31
    python macos selenium 测试工具 单元测试
  • Ubuntu16.04搭建php5.6Web服务器环境
    Ubuntu 16.04默认安装php7.0环境,但是php7目前对某些旧系统的兼容性并不是很好,如果自行安装php5需要清除php7的已安装包,否则会报错。 移除默认及已安装的PHP包 sudo dpkg -l |...
    99+
    2022-06-04
    ubuntu搭建web服务器环境 ubuntu16.04搭建php5.6web服务器环境 php服务器环境搭建
  • windows环境搭建http服务器
    开启windows功能 进入电脑控制面板-程序-启用或关闭windows功能 2.勾选这3个功能以及展开的全部勾选 搭建http服务器 打开Internet Information Server(IIS)管理器,在开始菜单里面找到IIS...
    99+
    2023-08-18
    服务器 windows http
  • 云服务器php环境搭建
    云服务器(Cloud Storage Service)是一种用于存储和共享文件的服务器。它通常采用高性能、可靠性高的云计算技术,可以自动地进行备份和还原,并将数据安全地存储在多个地方,以便跨地域访问。 下面是一种云服务器php环境搭建的基...
    99+
    2023-10-26
    环境 服务器 php
  • Python环境搭建(Windows)
      @ 下载Python  Python官网:https://www.python.org/  Python帮助文档下载地址:https://www.python.org/doc/   @ 安装Python 这里以Windows-...
    99+
    2023-01-30
    环境 Python Windows
  • python 2.7.6环境搭建
    为何写脚本每次用新的机器,都要把python的环境给安装一遍~so,这是一件很操蛋的问题,就shell练手写了一个code,嘿嘿,渣渣技术~测试环境我爱vagrant,一条命令直接还原成干净的测试环境,大爱啊~脚本如下:#!/bin/bas...
    99+
    2023-01-31
    环境 python
  • 云服务器怎么搭建python环境配置
    搭建Python环境需要安装以下软件和工具:Python 3:首先,需要安装Py3。在终端中,右键单击“我的电脑”-》选择“管理”-》找到“计算机管理”,然后单击“进程”选项卡,然后单击“创建进程”。Python Web框架:在Python...
    99+
    2023-10-26
    环境 服务器 python
  • 云服务器怎么搭建python环境变量
    要搭建Python环境变量,需要遵循以下步骤:安装Python和Python Ultimate版本:首先,在Python官网或在线文档(https://api.python.org/)中找到PyPIL包,并下载并安装。运行PyPIL并导入所...
    99+
    2023-10-26
    环境变量 服务器 python
  • java服务器环境怎么搭建
    搭建Java服务器环境需要以下步骤:1. 安装Java Development Kit(JDK):从Oracle官网下载适用于你的操...
    99+
    2023-06-14
    java服务器 服务器
  • Windows环境下搭建NodeJs服务器
    本篇内容主要讲解“Windows环境下搭建NodeJs服务器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Windows环境下搭建NodeJs服务器”吧!前言Nodejs是GoogleV8引擎的...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作