Https and Golang
Posted 呼叫地瓜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Https and Golang相关的知识,希望对你有一定的参考价值。
Every Site on HTTPS
Caddy is a general-purpose HTTP/2 web server that serves HTTPS by default.
Download · Documentation · Community
Caddy is fast, easy to use, and makes you more productive.
Available for Windows, Mac, Linux, BSD, Solaris, and android.
Menu
Features
Install
Quick Start
Running in Production
Contributing
Donors
About the Project
Features
Easy configuration with the Caddyfile
Automatic HTTPS on by default (via Let's Encrypt)
HTTP/2 by default
Virtual hosting so multiple sites just work
Experimental QUIC support for those that like speed
TLS session ticket key rotation for more secure connections
Extensible with plugins because a convenient web server is a helpful one
Runs anywhere with no external dependencies (not even libc)
There's way more, too! See all features built into Caddy. On top of all those, Caddy does even more with plugins: choose which plugins you want at download.
Install
Caddy binaries have no dependencies and are available for every platform. Get Caddy any one of these ways:
Download page allows you to customize your build in the browser
Latest release for pre-built, vanilla binaries
Build
To build from source you need Git and Go (1.8 or newer). Follow these instruction for fast building:
Get source
go get github.com/mholt/caddy/caddy
and then rungo get github.com/caddyserver/builds
Now
cd
to$GOPATH/src/github.com/mholt/caddy/caddy
and rungo run build.go
Then make sure the caddy
binary is in your PATH.
Quick Start
To serve static files from the current working directory, run:
caddy
Caddy's default port is 2015, so open your browser to http://localhost:2015.
Go from 0 to HTTPS in 5 seconds
If the caddy
binary has permission to bind to low ports and your domain name's DNS records point to the machine you're on:
caddy -host example.com
This command serves static files from the current directory over HTTPS. Certificates are automatically obtained and renewed for you!
Customizing your site
To customize how your site is served, create a file named Caddyfile by your site and paste this into it:
localhost
push
browse
websocket /echo cat
ext .html
log /var/log/access.log
proxy /api 127.0.0.1:7005
header /api Access-Control-Allow-Origin *
When you run caddy
in that directory, it will automatically find and use that Caddyfile.
This simple file enables server push (via Link headers), allows directory browsing (for folders without an index file), hosts a WebSocket echo server at /echo, serves clean URLs, logs requests to an access log, proxies all API requests to a backend on port 7005, and adds the coveted Access-Control-Allow-Origin: *
header for all responses from the API.
Wow! Caddy can do a lot with just a few lines.
Doing more with Caddy
To host multiple sites and do more with the Caddyfile, please see the Caddyfile tutorial.
Sites with qualifying hostnames are served over HTTPS by default.
Caddy has a command line interface. Run caddy -h
to view basic help or see the CLI documentation for details.
Running in Production
Caddy is production-ready if you find it to be a good fit for your site and workflow.
Running as root: We advise against this. You can still listen on ports < 1024 on Linux using setcap like so: sudo setcap cap_net_bind_service=+ep ./caddy
The Caddy project does not officially maintain any system-specific integrations nor suggest how to administer your own system. But your download file includes unofficial resources contributed by the community that you may find helpful for running Caddy in production.
How you choose to run Caddy is up to you. Many users are satisfied with nohup caddy &
. Others use screen
. Users who need Caddy to come back up after reboots either do so in the script that caused the reboot, add a command to an init script, or configure a service with their OS.
If you have questions or concerns about Caddy' underlying crypto implementations, consult Go's crypto packages, starting with their documentation, then issues, then the code itself; as Caddy uses mainly those libraries.
Contributing
Join our forum where you can chat with other Caddy users and developers! To get familiar with the code base, try Caddy code search on Sourcegraph!
Please see our contributing guidelines for instructions. If you want to write a plugin, check out the developer wiki.
We use GitHub issues and pull requests only for discussing bug reports and the development of specific changes. We welcome all other topics on the forum!
If you want to contribute to the documentation, please submit pull requests to caddyserver/website.
Thanks for making Caddy -- and the Web -- better!
Donors
DigitalOcean is hosting the Caddy project.
DNSimple provides DNS services for Caddy's sites.
DNS Spy keeps an eye on Caddy's DNS properties.
We thank them for their services. If you want to help keep Caddy free, please become a sponsor!
About the Project
Caddy was born out of the need for a "batteries-included" web server that runs anywhere and doesn't have to take its configuration with it. Caddy took inspiration from spark, nginx, lighttpd, Websocketd and Vagrant, which provides a pleasant mixture of features from each of them.
The name "Caddy": The name of the software is "Caddy", not "Caddy Server" or "CaddyServer". Please call it "Caddy" or, if you wish to clarify, "the Caddy web server". See brand guidelines.
Author on Twitter: @mholt6
https://caddyserver.com/
The Most Beloved Server
Caddy and Let's Encrypt is pretty incredible. A 3-line config file yields a fully A-rated SSL site. Trivial! John Resig
Creator of jQuery
Link
I both love and hate how my website has a better TLS setup than my bank because of Caddy. Kevin Froman
Link
Recommended by Experts
Caddy is praised by researchers and industry experts for its security defaults and unparalleled usability.
USENIX 2017
"TLS must be enabled by default ... and the Caddy web server is a good and usable example..."
NY LUG 2016
"Caddy is impressive. This is what we want, setting up a secure website."
—Josh Aas
Executive Director, ISRG
ACM IMC 2016
"No popular server software does [session ticket key rotation], with the exception of the most recent release of Caddy."
FREE FOR PERSONAL USE COMMERCIAL LICENSES OPEN SOURCE
How to Use Caddy
1. Make a Caddyfile
The Caddyfile is a text file that configures Caddy. It's designed to be easy to type and hard to get wrong.
The first line of the Caddyfile is always the address(es) of the site to serve.
You can define as many sites as you want; Caddy supports virtual hosting and lots of other features!
matt.life # Your site's addressext .html # Clean URLserrors error.log { # Error log 404 error-404.html # Custom error page}# php backendfastcgi /blog localhost:9000 php# API load balancerproxy /api localhost:5001 localhost:5002
2. Run Caddy
All you have to do is run caddy
and voilà! Caddy automatically loads your Caddyfile if it's in the same folder. For production sites, HTTPS is on by default!
caddy Activating privacy features... done. http://matt.life https://matt.life_
3. Open your Browser
Type your site's address to see it in action. Live sites are redirected to HTTPS for you.
Caddy is great for building sites at home or work, and for serving sites in production. Try it out!
DOWNLOAD CADDY FEATURES
以上是关于Https and Golang的主要内容,如果未能解决你的问题,请参考以下文章
golang 片段7 for https://medium.com/@francesc/why-are-there-nil-channels-in-go-9877cc0b2308
golang 转到SSH服务器完整示例 - 在此处阅读更多内容https://blog.gopheracademy.com/go-and-ssh/