• nginx 部署

    nginx 部署

    Go 是一个独立的 HTTP 服务器,但是我们有些时候为了 nginx 可以帮我做很多工作,例如访问日志,cc 攻击,静态服务等,nginx 已经做的很成熟了,Go 只要专注于业务逻辑和功能就好,所以通过 nginx 配置代理就可以实现多应用同时部署,如下就是典型的两个应用共享 80 端口,通过不同的域名访问,反向代理到不同的应用。

    1. server {
    2. listen 80;
    3. server_name .a.com;
    4. charset utf-8;
    5. access_log /home/a.com.access.log;
    6. location /(css|js|fonts|img)/ {
    7. access_log off;
    8. expires 1d;
    9. root "/path/to/app_a/static";
    10. try_files $uri @backend;
    11. }
    12. location / {
    13. try_files /_not_exists_ @backend;
    14. }
    15. location @backend {
    16. proxy_set_header X-Forwarded-For $remote_addr;
    17. proxy_set_header Host $http_host;
    18. proxy_pass http://127.0.0.1:8080;
    19. }
    20. }
    21. server {
    22. listen 80;
    23. server_name .b.com;
    24. charset utf-8;
    25. access_log /home/b.com.access.log main;
    26. location /(css|js|fonts|img)/ {
    27. access_log off;
    28. expires 1d;
    29. root "/path/to/app_b/static";
    30. try_files $uri @backend;
    31. }
    32. location / {
    33. try_files /_not_exists_ @backend;
    34. }
    35. location @backend {
    36. proxy_set_header X-Forwarded-For $remote_addr;
    37. proxy_set_header Host $http_host;
    38. proxy_pass http://127.0.0.1:8081;
    39. }
    40. }