nginx + uwsgi 에 키스 톤 구축
서버 를 찾 습 니 다. 시스템 은 표준 centos 7 이 고 키스 톤 서 비 스 를 배치 합 니 다.
STEP 0: 먼저 stop 원생 키스 톤 서비스
systmctl stop openstack-keystone
STEP 1: 필요 한 소프트웨어 설치
yum install nginx uwsgi uwsgi-plugin-python
두 번 째 단계: keystone 은 Python 프로그램 으로 두 포트 에 감청 되 어 있 으 며, keystone kilo 판 은 원생 으로 uwsgi 를 지원 하 며, 인터페이스 가 이미 존재 합 니 다.다만 uwsgi 와 인터페이스 가 필요 합 니 다.
cp /usr/share/keystone/keystone.wsgi /usr/share/keystone/main
cp /usr/share/keystone/keystone.wsgi /usr/share/keystone/admin
chmod ug+x /usr/share/keystone/admin
chmod ug+x /usr/share/keystone/main
세 번 째 단계: uwsgi 프로 세 스 설정
vim /etc/uwsgi.ini
[uwsgi]
uid = root
gid = root
socket = /var/run/uwsgi/uwsgi.socket
pidfile = /var/run/uwsgi/uwsgi.pid
emperor = /etc/uwsgi.d
#emperor-tyrant = true
master = true
autoload = true
log-date = true
logto = /var/log/uwsgi/uwsgi-emperor.log
uid 와 gid, uwsgi 자체 프로 세 스 가 실 행 될 때 사용 할 권한 을 설정 합 니 다.nginx 와 일치 하 는 권한 을 루트 로 설정 합 니 다.
emperor: uwsgi 는 군주 제 도 를 사용 하여 vassal 을 관리 할 수 있 습 니 다.이 값 은 vassal 의 프로필 경 로 를 지정 합 니 다.
emperor - tyrant: boole 값, vassal 에 실행 권한 이 있 는 지, 이 값 이 true 라면 설정 해 야 합 니 다.
cap = setgid,setuid;또한 vassal 에 uid 와 gid 를 설정 해 야 합 니 다.여 기 는 단독 지정 권한 을 사용 하지 않 습 니 다. 루트 로
STEP 4: vassal 설정
vim /etc/uwsgi.d/admin.ini #이 경 로 는 위의 emperor 와 일치 해 야 합 니 다.
[uwsgi]
chmod-socket = 666
master = true
plugin = python
socket = /run/uwsgi/keystone-admin.sock
thunder-lock = true
workers = 4
wsgi-file = /usr/share/keystone/admin
chmod - socket: 여 기 는 666 으로 설정 되 어 있 습 니 다. nginx 가 socket 에 접근 할 수 있 도록 합 니 다.
plugin: 백 엔 드 가 Python 이기 때문에 plugin = python 을 설정 해 야 합 니 다.
socket: socket 의 경 로 를 정의 합 니 다. 이 경 로 는 uwsgi 프로 세 스 가 접근 할 수 있 도록 해 야 합 니 다.
wgi - file: python 인터페이스 파일 의 구체 적 인 경 로 를 지정 합 니 다.
여기 서 저 는 오랫동안 걸 렸 습 니 다. 나중에 여기 python 파일 의 이름 이 규범 적 이라는 것 을 알 게 되 었 습 니 다. keystone 의 ini 설정 파일 에서 정의 한 api 인터페이스 이름과 일치 해 야 합 니 다. 그렇지 않 으 면 불 러 올 수 없습니다.
vim /etc/uwsgi/main.ini
[uwsgi]
chmod-socket = 666
master = true
plugin = python
socket = /run/uwsgi/keystone-mainsock
thunder-lock = true
workers = 4
wsgi-file = /usr/share/keystone/main
다섯 번 째 단계: uwsgi 가 python module 를 정확하게 불 러 올 수 있 는 지 검증 합 니 다.
$: systemctl start uwsgi
$: systemctl status uwsgi
uwsgi.service - uWSGI Emperor Service
Loaded: loaded (/usr/lib/systemd/system/uwsgi.service; enabled)
Active: active (running) since 2016-02-27 16:22:16 CST; 1 day 1h ago
Process: 11168 ExecStartPre=/bin/chown uwsgi:uwsgi /run/uwsgi (code=exited, status=0/SUCCESS)
Process: 11166 ExecStartPre=/bin/mkdir -p /run/uwsgi (code=exited, status=0/SUCCESS)
Main PID: 11172 (uwsgi)
Status: "The Emperor is governing 2 vassals"
CGroup: /system.slice/uwsgi.service
|-11172 /usr/sbin/uwsgi --ini /etc/uwsgi.ini
|-11175 /usr/sbin/uwsgi --ini /etc/uwsgi.ini
|-11176 /usr/sbin/uwsgi --ini /etc/uwsgi.ini
|-11177 /usr/sbin/uwsgi --ini admin.ini
|-11178 /usr/sbin/uwsgi --ini main.ini
|-11251 /usr/sbin/uwsgi --ini main.ini
|-11252 /usr/sbin/uwsgi --ini main.ini
|-11253 /usr/sbin/uwsgi --ini main.ini
|-11254 /usr/sbin/uwsgi --ini main.ini
|-11255 /usr/sbin/uwsgi --ini admin.ini
|-11256 /usr/sbin/uwsgi --ini admin.ini
|-11257 /usr/sbin/uwsgi --ini admin.ini
`-11258 /usr/sbin/uwsgi --ini admin.ini
systemctl status 출력 이 필요 한 상태 입 니 다. 이 위 에 main. ini admin. ini 를 정확하게 불 러 왔 습 니 다.
vassal 설정 파일 을 불 러 올 수 없다 는 알림 이 있 으 면 "no python application found, check your startup logs for errors" 와 같은 오류 가 발생 했 습 니 다. python 인터페이스 가 제대로 불 러 올 수 없 기 때 문 입 니 다.대부분 python 을 불 러 오 는 module 의 이름 이 잘못 되 었 습 니 다.
STEP 6: nginx 설정
vim / etc / nginx / nginx. conf 참조 줄 추가
http{
.
.
.
.
include /etc/nginx/sites-enabled/*.conf;
}
vim /etc/nginx/sites-enabled/keystone.conf
server {
listen *:35357 ;
server_name keystone.com;
access_log /var/log/nginx/keystone_wsgi_admin.access.log;
error_log /var/log/nginx/keystone_wsgi_admin.error.log;
location / {
uwsgi_pass unix:///run/uwsgi/keystone-admin.sock;
include uwsgi_params;
uwsgi_param SCRIPT_NAME "";
}
}
server {
listen *:5000 ;
server_name keystone.com;
access_log /var/log/nginx/keystone_wsgi_main.access.log;
error_log /var/log/nginx/keystone_wsgi_main.error.log;
location / {
uwsgi_pass unix:///run/uwsgi/keystone-main.sock;
include uwsgi_params;
uwsgi_param SCRIPT_NAME "";
}
}
location 에 uwsgi 를 추가 해 야 합 니 다.param SCRIPT_NAME ""。키스 톤 키 로 버 전 코드 에 이 값 이 필요 해서 SCRIPTNAME。그래서 메시지 에 이 값 을 가지 고 있어 야 돼 요.
마지막 단계: nginx uwsgi 서 비 스 를 시작 하여 검증 합 니 다.
$: systemctl restart nginx
$: systemctl restart uwsgi
$: keystone user-list
+----------------------------------+---------+---------+-------------------+
| id | name | enabled | email |
+----------------------------------+---------+---------+-------------------+
| |
| |
+----------------------------------+---------+---------+-------------------+
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.