Authored by chunhua.zhang

Merge branch 'platform-nginx' into 'master'

新增crm-nginx配置刷新脚本



See merge request !115
# crm and store nginx
- hosts: crm-store-nginx
remote_user: root
vars_prompt:
- name: "confirmation"
prompt: "Sync and reload crm and store nginx. Please Enter [YES] to continue"
private: no
- name: "upstream_az"
prompt: "Choose which az's upstream: [local|gray] "
default: 'local'
private: no
vars:
- path: /usr/local/openresty
tasks:
# make sure path exist
- name: "make sure path exist"
shell: ls /usr/local/openresty
ignore_errors: True
register: result
- name: "make sure nginx path exist"
fail:
msg: " nginx {{ path }} not exist!"
when: result is failed
# make sure group exists
- name: make sure groups exist in inventory file
fail:
msg: "group {{ item }} not exist!"
when: item not in groups
with_items:
- crm-store-nginx
- java-shops
- java-portal-gateway
- java-extendstore
- java-crm
- name: copy vhosts conf files to nginx
template:
src: 'templates/crm-nginx/vhosts/{{ item }}'
dest: "{{ path }}/nginx/conf/vhosts/"
backup: yes
with_items:
- 'adminstore.yohobuy.conf'
- 'crm.conf'
- 'extstore.conf'
- 'shop.conf'
- name: update nginx upstream for nginx.conf
template:
src: 'crm-nginx/nginx.conf.j2'
dest: "{{ path }}/nginx/conf/nginx.conf"
- name: reload nginx
command: "{{ path }}/nginx/sbin/nginx -s reload"
... ...
... ... @@ -29,9 +29,15 @@
- platform-nginx
- name: copy vhosts conf files to nginx
copy:
src: 'templates/platform-nginx/vhost/'
template:
src: 'templates/platform-nginx/vhost/{{ item }}'
dest: "{{ path }}/conf/vhost/"
backup: yes
with_items:
- 'admin.portal.yohobuy.com.conf'
- 'api.platform.yohoops.org.conf'
- 'shopmanage.yohobuy.com.conf'
- 'shops.yohobuy.com.conf'
- name: update nginx upstream for nginx.conf
template:
... ...
worker_processes 4;
worker_cpu_affinity 00000001 00000010 00000100 00001000;
pid /usr/local/openresty/nginx/logs/nginx.pid;
error_log /Data/logs/nginx/nginx_error.log;
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
}
http
{
include /usr/local/openresty/nginx/conf/mime.types;
default_type application/octet-stream;
#charset gb2312,utf-8;
charset utf-8;
log_format fenxi '$remote_addr|$http_x_forwarded_for|[$time_local]|$http_host|$request|'
'$status|$body_bytes_sent|$request_time|$upstream_response_time|$upstream_cache_status|$http_referer|'
'$upstream_addr|$http_user_agent';
#General Options
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_body_buffer_size 8m; #256k
#server_tokens off;
#ignore_invalid_headers on;
#recursive_error_pages on;
server_name_in_redirect off;
sendfile on;
#timeouts
keepalive_timeout 180;
keepalive_requests 1000;
#TCP Options
tcp_nopush on;
tcp_nodelay on;
send_timeout 120s;
#fastcgi options
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 8 128k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#size limits
client_max_body_size 900m;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
proxy_temp_path /usr/local/openresty/nginx/ngx_temp_dir;
proxy_cache_path /usr/local/openresty/nginx/ngx_cache levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=10g;
proxy_connect_timeout 120s;
proxy_read_timeout 300s;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
fastcgi_temp_path /dev/shm/fastcgi_temp;
client_body_temp_path /dev/shm/client_body_temp;
upstream crm_pools {
{% for i in groups['java-crm'] %}
server {{ i }}:8093 max_fails=5 fail_timeout=30s;
{% endfor %}
}
upstream portal-gateway {
{% if upstream_az == 'gray' %}
server 10.66.101.10:8080 max_fails=5 fail_timeout=30s;
{% else %}
{% for i in groups['java-portal-gateway'] %}
server {{ i }}:8080 max_fails=5 fail_timeout=30s;
{% endfor %}
{% endif%}
}
upstream yohobuy-adminstore {
{% for i in groups['java-shops'] %}
server {{ i }}:8098 max_fails=5 fail_timeout=30s;
{% endfor %}
}
upstream extstore {
{% if upstream_az == 'gray' %}
server 10.66.101.10:8094 max_fails=5 fail_timeout=30s;
{% else %}
{% for i in groups['java-extendstore'] %}
server {{ i }}:8094 max_fails=5 fail_timeout=30s;
{% endfor %}
{% endif%}
}
include vhosts/crm.conf;
include vhosts/extstore.conf;
include vhosts/shop.conf;
include vhosts/adminstore.yohobuy.conf;
}
... ...
server {
listen 80;
server_name adminstore.yohobuy.com adminstore.yohoops.org;
access_log /Data/logs/nginx/access_adminstore.yobobuy.com.log fenxi;
location / {
proxy_redirect off;
proxy_pass http://yohobuy-adminstore/;
proxy_set_header Host "adminstore.yohobuy.com";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "gzip";
client_max_body_size 900m;
proxy_read_timeout 600s;
client_body_buffer_size 512k;
}
}
... ...
server{
listen 80;
server_name crmapi.yoho.cn;
access_log /Data/logs/nginx/access_crmapi.log fenxi;
location /crm/AiQiSMSReceiveController {
deny all;
proxy_redirect off;
proxy_pass http://crm_pools/crm/AiQiSMSReceiveController;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $http_x_forwarded_for;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "gzip";
}
location /crm/MWSMSReceiveController {
allow 61.145.229.29;
allow 112.91.147.37;
allow 218.204.222.12;
allow 211.100.48.90;
allow 218.204.220.242;
deny all;
proxy_redirect off;
proxy_pass http://crm_pools/crm/MWSMSReceiveController;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $http_x_forwarded_for;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "gzip";
}
#location / {
# proxy_redirect off;
# proxy_read_timeout 600s;
# proxy_send_timeout 600s;
# proxy_pass http://crm_pools/crm;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $http_x_forwarded_for;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header Accept-Encoding "gzip";
#}
}
server{
listen 80;
server_name crm.yoho.cn crm2.yoho.cn;
access_log /Data/logs/nginx/access_crm.log fenxi;
location /crm/ {
allow 106.39.86.227;
allow 106.38.38.147;
allow 106.38.38.146;
allow 218.94.77.166;
allow 218.94.75.50;
allow 218.94.75.58;
allow 180.169.239.138;
deny all;
proxy_redirect off;
proxy_pass http://crm_pools/crm/;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $http_x_forwarded_for;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "gzip";
}
location / {
allow 106.39.86.227;
allow 106.38.38.147;
allow 106.38.38.146;
allow 218.94.77.166;
allow 218.94.75.50;
allow 218.94.75.58;
allow 180.169.239.138;
deny all;
proxy_redirect off;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_pass http://crm_pools/crm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $http_x_forwarded_for;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "gzip";
}
}
... ...
server {
listen 80;
server_name extstore.yohobuy.com extstore.test.yohobuy.com;
#charset koi8-r;
access_log /Data/logs/nginx/access_extstore.yohobuy.com.log fenxi;
location / {
proxy_redirect off;
proxy_pass http://extstore/extendstore/;
proxy_set_header Host "extstore.yohobuy.com";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "gzip";
}
}
... ...
server {
listen 80;
server_name o.yohobuy.com;
#charset koi8-r;
access_log /Data/logs/nginx/access_openstore.yohobuy.com.log fenxi;
location / {
proxy_redirect off;
proxy_pass http://portal-gateway/portal-gateway/qrcode/;
proxy_set_header Host "portal-gateway.yohobuy.com";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "gzip";
}
}
server {
listen 80;
server_name openstore.yohobuy.com ;
#charset koi8-r;
access_log /Data/logs/nginx/access_openstore.yohobuy.com.log fenxi;
location / {
proxy_redirect off;
proxy_pass http://portal-gateway/portal-gateway/wechat/;
proxy_set_header Host "portal-gateway.yohobuy.com";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "gzip";
}
}
server {
listen 80;
server_name instore.yohobuy.com;
#charset koi8-r;
access_log /Data/logs/nginx/access_instore.yohobuy.com.log fenxi;
location / {
proxy_redirect off;
proxy_pass http://portal-gateway/portal-gateway/api/;
proxy_set_header Host "instore.yohobuy.com";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "gzip";
}
}
server {
listen 80;
server_name api.store.yohoops.org;
#charset koi8-r;
access_log /Data/logs/nginx/access_api.store.yohoops.org.log fenxi;
location / {
proxy_redirect off;
proxy_pass http://portal-gateway/portal-gateway/erp/;
#proxy_pass http://yohobuy-platform-gray/platform/;
proxy_set_header Host "api.store.yohoops.org";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding "gzip";
}
}
... ...