前言
之前尝试预研flask web服务器和socket tcp通讯方案,在搭建云服务器时一直搭建不成功,找了网上很多教程都没有成功,最后在自己尝试摸索下终于成功,以下是我搭建服务器是出现的问题简单总结,比较关键的点总结
nginx配置
nginx 中的listen端口就是对外暴露的端口,同时location里面的端口是属于内部端口
http {
include mime.types;
default_type application/octet-stream;
##
# Basic Settings
##
server {
listen 80;
server_name xxx.xxx.xx.xx;
access_log /home/work/logs/access.log;
error_log /home/work/logs/error.log;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5001;
uwsgi_param UWSGI_CHDIR /home/work;
uwsgi_param UWSGI_SCRIPT app:app;
}
}
}
Socket代码
在服务端这边应连接的是服务器内网ip,而非服务器的外网ip
import time
# from flask import Flask
import json
import socket
import threading
from multiprocessing import Queue
import dbControl
location_add = "127.0.0.1"
external_add = "xxx.xxx.xxx.xxx" #外部ip
Inside_add = "xxx.xxx.xxx.xxx" #内部ip
class Server():
def __init__(self):
self.db = dbControl.mysql()
self.dataList = Queue(100) # 连接池
# 记录客户端数量
self.userlist = []
# 服务器本地地址
self.address = (Inside_add,5005) #服务器内部IP
# 初始化服务器
self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.server_socket.bind(self.address)
self.server_socket.listen(128)