在ubuntu用uwsgi+nginx部署odoo16(超详细)

8 篇文章 0 订阅

在ubuntu用uwsgi+nginx部署odoo16(超详细)

  1. 安装uwsgi:pip install uwsgi
  2. 在odoo主目录(也就是odoo文件夹所在目录)下,创建 uwsgi.ini,加入以下信息
[uwsgi]
#socket名自己定义,后面需要用到
socket = odoo16_saasapp.sock
chmod-socket = 664
pythonpath = /usr/bin/python3.8
wsgi-file = /home/disk/aliyun_saas_free/odoo-wsgi.py
buffer-size = 50000
die-on-term = true

创建socket_uwsgi.ini写入:

http = 8008
chmod-socket = 664
pythonpath = /usr/bin/python3.8
wsgi-file = /home/disk/aliyun_saas_free/odoo-wsgi.py
buffer-size = 50000
die-on-term = true
  1. 复制odoo主目录下的setup文件夹中的odoo-wsgi.example.py文件到odoo主目录下并改名为odoo-wsgi.py,这便是uwsgi的wsgi-file,在该文件中我们要配置对应的addons_path、proxy-mode、workers和数据库配置等。
conf['addons_path'] = '/home/odoo/odoo14-3-08/odoo/addons,/home/odoo/odoo14-3-08/QT'
conf['db_name'] = 'QT_7_13,QT_726,QT1013'
conf['db_host'] = 'localhost'
conf['db_user'] = 'openerphk'
conf['db_port'] = 5433
conf['db_password'] = 'Odoochengdu123*'
conf['proxy-mode'] = True
  1. 安装nginx sudo apt-get install nginx
  2. vim /etc/nginx/sites-enabled/default编辑nginx配置文件并重启nginx (/etc/init.d/nginx restart)
 server {
 		# 监听端口
        listen 80 default_server;
        listen [::]:80 default_server;
        # 域名
        server_name 123.60.41.83;
        error_log /var/log/nginx/error.log;
		# 配置到uwsgi的socket转发
        location / {
                include uwsgi_params;
                # uwsgi.ini中的socket路径
                uwsgi_pass unix:/home/disk/aliyun_saas_free/odoo16_saasapp.sock;
        }
        # 长链接转发配置
        location /longpolling {
                proxy_pass http://127.0.0.1:9149;
        }
		# websocket 转发配置
        location /websocket {
                proxy_pass http://127.0.0.1:8008;

                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }

        gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
        gzip on;
}
  1. 如果nginx用户为www-data(在nginx.conf中查看),则需要将用户切换到www-data(su www-data) 后uwsgi --ini uwsgi.ini启动uwsgi;同理启动uwsgi --ini socket_uwsgi.ini
  2. 在odoo主目录下修改对应参数后运行(长链接端口):/usr/bin/python3.8 /home/disk/aliyun_saas_free/odoo-bin gevent -r openerphk -w "Odoochengdu123*" --db_host=0.0.0.0 --longpolling-port=9149 --addons-path="/home/disk/aliyun_saas_free/odoo/addons" 将该端口填入nginx的长链接转发配置中。
  3. 最后查看是否能ip加端口或域名进行访问。
  4. 能够成功访问后创建将uwsig和gevent(长链接)和socket_uwsgi创建service管理即可。
    uwsgi
[Unit]
Description=qthg_uwsgi
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=qthg_uwsgi
PermissionsStartOnly=true
#需要用www-data用户启动时加上
#User=www-data
WorkingDirectory=/home/odoo/odoo14-3-08
ExecStart=/usr/local/bin/uwsgi --ini /home/odoo/odoo14-3-08/qthg_uwsgi.ini
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

gevent

[Unit]
Description=qthg_gevent
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=qthg_gevent
PermissionsStartOnly=true
ExecStart=/usr/bin/python3.6 /home/odoo/odoo14-3-08/odoo-bin gevent -d QT_7_13,QT_726,QT1013 -r openerphk -w "Odoochengdu123*" --db_host=0.0.0.0 --db_port=5433 --longpolling-port=9123 --addons-path="/home/odoo/odoo14-3-08/odoo/addons,/home/odoo/odoo14-3-08/QT"
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

socket_uwsgi

[Unit]
Description=saas_socket_uwsgi
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=saas_socket_uwsgi
PermissionsStartOnly=true
#需要用www-data用户启动时加上
User=www-data
WorkingDirectory=/home/disk/aliyun_saas_free
ExecStart=/usr/local/bin/uwsgi --ini /home/disk/aliyun_saas_free/socket_uwsgi.ini
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

问题:

  1. 登陆后显示丢失连接,且应用没有图标。
    这是因为文件访问权限所致,将odoo主目录的文件夹加权限chmod 777 -R /home/odoo/(这里换成自己的目录)
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu是一个自由开源的操作系统,其中有很多的工具和服务可以用于搭建与开发Web应用。其中,常用的Web应用栈是使用Nginx作为Web服务器,UWSGI作为应用程序服务器,Django作为Web框架,MySQL作为关系型数据库。 要安装和配置这些服务,需要进行以下步骤: 1. 安装Ubuntu操作系统,可以选择最新版本的Ubuntu LTS或者最新的Ubuntu发行版。 2. 安装Nginx服务,并配置Nginx服务器来处理并转发HTTP请求。这里可以使用apt-get install命令来安装Nginx包。 3. 安装UWSGI服务,并配置UWSGI服务器来处理Django应用程序。这里可以使用pip install命令来安装UWSGI包。 4. 安装Django,并编写一个基本的Django应用程序。然后配置UWSGI服务器以运行Django应用程序。可以使用pip install命令来安装Django包。可以使用此教程 - https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html 5. 安装MySQL数据库服务,并配置MySQL服务器以使用Django应用程序。可以使用apt-get install命令来安装MySQL包。 6. 在Django应用程序中配置MySQL数据库连接参数,并创建 MySQL数据库及表。 7. 配置Nginx服务器以使用UWSGI服务器来处理Django应用程序。可以使用上面的教程来完成这一步骤。 8. 启动NginxUWSGI服务器,并测试Django应用程序是否可以访问。 在进行以上的步骤时,需要注意安全措施,防止 Web 应用程序被攻击和入侵。同时,也需要进行充分的测试,保证 Web 应用程序的稳定性和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值