name: Nginx 部署

sort: 3

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. }