野火IM后端應用
本工程為Demo工程,實際使用時需要把對應功能移植到您的應用服務中
編譯
mvn package
短信資源
應用使用的是騰訊雲短信功能,需要申請到appid/appkey/templateId這三個參數,並配置到tencent_sms.properties中去。用戶也可以自行更換為自己喜歡的短信提供商。在沒有短信供應商的情況下,為了測試可以使用superCode,設置好后,客戶端可以直接使用superCode進行登陸。上線時一定要注意刪掉superCode。
修改配置
本演示服務有4個配置文件在工程的config目錄下,分別是application.properties, im.properties, aliyun_sms.properties和tencent_sms.properties。請正確配置放到jar包所在的目錄下的config目錄下。
application.properties配置中的sms.verdor決定是使用那個短信服務商,1為騰訊短信,2為阿里雲短信
運行
在target目錄找到app-XXXX.jar,把jar包和放置配置文件的config目錄放到一起,然后執行下面命令:
java -jar app-XXXXX.jar
| # 配置應用服務器地址 | |
| upstream appserver { | |
| server 127.0.0.1:8888; | |
| } | |
| # 配置im服務地址 | |
| upstream imserver_cluster { | |
| server 192.168.2.5; | |
| server 192.168.2.11; | |
| server 192.168.2.15; | |
| } | |
| server { | |
| listen 80; | |
| listen 443; | |
| # 配置本配置生效的host,這個host是訪問web頁面的host | |
| server_name web.wildfirechat.cn; | |
| # 地址指向存放打包后的dist/src目錄 | |
| root /home/ubuntu/wildfirechat_web/src; | |
| # https相關配置,如果不啟用https,可以配置 | |
| ssl_certificate /etc/nginx/cert/web.pem; | |
| ssl_certificate_key /etc/nginx/cert/web.key; | |
| location /pc_session{ | |
| if ($request_method = 'OPTIONS') { | |
| add_header 'Access-Control-Allow-Origin' '*'; | |
| add_header 'Access-Control-Allow-Credentials' 'true'; | |
| add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; | |
| add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; | |
| add_header 'Access-Control-Max-Age' 86400; | |
| add_header 'Content-Type' 'text/plain charset=UTF-8'; | |
| add_header 'Content-Length' 0; | |
| return 204; break; | |
| } | |
| if ($request_method = 'POST') { | |
| add_header 'Access-Control-Allow-Origin' '*'; | |
| add_header 'Access-Control-Allow-Credentials' 'true'; | |
| add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; | |
| add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; | |
| } | |
| if ($request_method = 'GET') { | |
| add_header 'Access-Control-Allow-Origin' '*'; | |
| add_header 'Access-Control-Allow-Credentials' 'true'; | |
| add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; | |
| add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; | |
| } | |
| proxy_pass http://appserver; | |
| } | |
| location /route{ | |
| if ($request_method = 'OPTIONS') { | |
| add_header 'Access-Control-Allow-Origin' '*'; | |
| add_header 'Access-Control-Allow-Credentials' 'true'; | |
| add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; | |
| add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; | |
| add_header 'Access-Control-Max-Age' 86400; | |
| add_header 'Content-Type' 'text/plain charset=UTF-8'; | |
| add_header 'Content-Length' 0; | |
| return 204; break; | |
| } | |
| if ($request_method = 'POST') { | |
| add_header 'Access-Control-Allow-Origin' '*'; | |
| add_header 'Access-Control-Allow-Credentials' 'true'; | |
| add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; | |
| add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; | |
| } | |
| if ($request_method = 'GET') { | |
| add_header 'Access-Control-Allow-Origin' '*'; | |
| add_header 'Access-Control-Allow-Credentials' 'true'; | |
| add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; | |
| add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; | |
| } | |
| 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_pass http://imserver_cluster; | |
| } | |
| location /session{ | |
| proxy_pass http://appserver; | |
| } | |
| location /session_login{ | |
| if ($request_method = 'OPTIONS') { | |
| add_header 'Access-Control-Allow-Origin' '*'; | |
| add_header 'Access-Control-Allow-Credentials' 'true'; | |
| add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; | |
| add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; | |
| add_header 'Access-Control-Max-Age' 86400; | |
| add_header 'Content-Type' 'text/plain charset=UTF-8'; | |
| add_header 'Content-Length' 0; | |
| return 204; break; | |
| } | |
| if ($request_method = 'POST') { | |
| add_header 'Access-Control-Allow-Origin' '*'; | |
| add_header 'Access-Control-Allow-Credentials' 'true'; | |
| add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; | |
| add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; | |
| } | |
| if ($request_method = 'GET') { | |
| add_header 'Access-Control-Allow-Origin' '*'; | |
| add_header 'Access-Control-Allow-Credentials' 'true'; | |
| add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; | |
| add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; | |
| } | |
| proxy_pass http://appserver; | |
| } | |
| location / { | |
| index index.html; | |
| } | |
| } |
